Discussion:
Dynamisches Setzen der Hilfekontext-ID und der Hilfedatei?!
(zu alt für eine Antwort)
Jens Mertens
2005-12-30 08:22:07 UTC
Permalink
Hi NG,

ich würde in meiner Access-Anwendung gerne dynamisch von jedem Formulare
(genau: beim Starten der Anwendung) die EIgenschaft "Hilfekontext-ID" und
"Hilfedatei" setzen. Über welchen VBA-Code kann ich diese beiden Properties
setzen? (Es wäre schon ziemlich lästig, wenn ich bei 30 Formularen händisch
Änderungen vornehmen muss, wenn sich der Pfad zur Hilfedatei ändert..)

Freue mich über jeden Tipp!

Gruss, Jens

P.S. Kennt jemand eine Möglichkeit, eine Hilfe-Datei (CHM-File) so zu
verändern, dass man Sie auch von einem Netzwerklaufwerk öffnen kann? Durch
einen IE-Patch von MS (jedenfalls so meine Infos) lassen sich Hilfe-Dateien
nur korrekt anzeigen, wenn sie von einem lokalen Laufwerk geöffnet werden
;-(
Jürgen Volke
2005-12-30 08:46:55 UTC
Permalink
Hallo Jens
Post by Jens Mertens
ich würde in meiner Access-Anwendung gerne dynamisch von jedem
Formulare (genau: beim Starten der Anwendung) die EIgenschaft
"Hilfekontext-ID" und "Hilfedatei" setzen. Über welchen VBA-Code kann
ich diese beiden Properties setzen? (Es wäre schon ziemlich lästig,
wenn ich bei 30 Formularen händisch Änderungen vornehmen muss, wenn
sich der Pfad zur Hilfedatei ändert..)
warum legst du die Hilfedatei nicht dort hin wo die Anwendung aufgerufen wird?

ansonsten etwa so:

docmd.OpenForm "DeinFormular", acDesign,,,,acHidden
set frm=Forms("DeinFormular")
frm.HelpFile = "NeueHilfeDatei"
docmd.close acForm, "DeinFormular", acSaveYes

HTH Jürgen
Jens Mertens
2005-12-30 10:29:23 UTC
Permalink
Hi Jürgen,

besten dank, es klappt nun (Code siehe unten.) Ich würde nun allerdings
gerne prüfen, ob die Hilfedatei wirklich im gleichen Ordner wie die Acces-DB
vorhanden ist und ggf. ne Fehlermeldung werfen, wie kann ich das prüfen?

Gruß und guten Rutsch, Jens

Public Sub gSubHilfeIDvonAllenFormularenSetzen()
On Error Resume Next

gStrHilfedatei = "Online-Hilfe.chm"

Call gSubHilfeIDvonEinemFormularSetzen("_Startformular", 100)
Call gSubHilfeIDvonEinemFormularSetzen("Formular xyz", 110)
[...]

End Sub

Private Sub gSubHilfeIDvonEinemFormularSetzen(lStrFormularName As String,
lIntHelpContextID As Integer)

DoCmd.OpenForm lStrFormularName, acDesign, , , , acHidden
Set frm = Forms(lStrFormularName)
frm.HelpFile = gStrHilfedatei
frm.HelpContextId = lIntHelpContextID
DoCmd.Close acForm, lStrFormularName, acSaveYes

End Sub
Post by Jürgen Volke
Hallo Jens
Post by Jens Mertens
ich würde in meiner Access-Anwendung gerne dynamisch von jedem
Formulare (genau: beim Starten der Anwendung) die EIgenschaft
"Hilfekontext-ID" und "Hilfedatei" setzen. Über welchen VBA-Code kann
ich diese beiden Properties setzen? (Es wäre schon ziemlich lästig,
wenn ich bei 30 Formularen händisch Änderungen vornehmen muss, wenn
sich der Pfad zur Hilfedatei ändert..)
warum legst du die Hilfedatei nicht dort hin wo die Anwendung aufgerufen wird?
docmd.OpenForm "DeinFormular", acDesign,,,,acHidden
set frm=Forms("DeinFormular")
frm.HelpFile = "NeueHilfeDatei"
docmd.close acForm, "DeinFormular", acSaveYes
HTH Jürgen
Jens Mertens
2005-12-30 10:38:52 UTC
Permalink
Gefunden:

gStrHilfedatei = "Online-Hilfe.chm"

If Not lFctFileExists(Left(CurrentDb.Name, Len(CurrentDb.Name) -
Len(Dir(CurrentDb.Name))) & "\" & gStrHilfedatei) Then
MsgBox "Hilfedatei existiert nicht!"
End if
Post by Jens Mertens
Hi Jürgen,
besten dank, es klappt nun (Code siehe unten.) Ich würde nun allerdings
gerne prüfen, ob die Hilfedatei wirklich im gleichen Ordner wie die
Acces-DB vorhanden ist und ggf. ne Fehlermeldung werfen, wie kann ich das
prüfen?
Gruß und guten Rutsch, Jens
Public Sub gSubHilfeIDvonAllenFormularenSetzen()
On Error Resume Next
gStrHilfedatei = "Online-Hilfe.chm"
Call gSubHilfeIDvonEinemFormularSetzen("_Startformular", 100)
Call gSubHilfeIDvonEinemFormularSetzen("Formular xyz", 110)
[...]
End Sub
Private Sub gSubHilfeIDvonEinemFormularSetzen(lStrFormularName As String,
lIntHelpContextID As Integer)
DoCmd.OpenForm lStrFormularName, acDesign, , , , acHidden
Set frm = Forms(lStrFormularName)
frm.HelpFile = gStrHilfedatei
frm.HelpContextId = lIntHelpContextID
DoCmd.Close acForm, lStrFormularName, acSaveYes
End Sub
Post by Jürgen Volke
Hallo Jens
Post by Jens Mertens
ich würde in meiner Access-Anwendung gerne dynamisch von jedem
Formulare (genau: beim Starten der Anwendung) die EIgenschaft
"Hilfekontext-ID" und "Hilfedatei" setzen. Über welchen VBA-Code kann
ich diese beiden Properties setzen? (Es wäre schon ziemlich lästig,
wenn ich bei 30 Formularen händisch Änderungen vornehmen muss, wenn
sich der Pfad zur Hilfedatei ändert..)
warum legst du die Hilfedatei nicht dort hin wo die Anwendung aufgerufen wird?
docmd.OpenForm "DeinFormular", acDesign,,,,acHidden
set frm=Forms("DeinFormular")
frm.HelpFile = "NeueHilfeDatei"
docmd.close acForm, "DeinFormular", acSaveYes
HTH Jürgen
Gunter Avenius
2005-12-30 09:50:51 UTC
Permalink
Hallo Jens Mertens,
Post by Jens Mertens
ich würde in meiner Access-Anwendung gerne dynamisch von jedem
Formulare (genau: beim Starten der Anwendung) die EIgenschaft
"Hilfekontext-ID" und "Hilfedatei" setzen. Über welchen VBA-Code
kann ich diese beiden Properties setzen? (Es wäre schon ziemlich
lästig, wenn ich bei 30 Formularen händisch Änderungen vornehmen
muss, wenn sich der Pfad zur Hilfedatei ändert..)
Im Formular [Ereignisprozedur] "Beim Öffnen":
Me.HelpFile = getHelpPfad
Me.HelpContextId = 1

In einem Standardmodul:

Public Function getHelpPfad() As String
getHelpPfad = DBPfad & "Onlinehilfe\DeinHilfe.hlp"
End Function

Function DBPfad() As String
DBPfad = Left(CurrentDb.Name, Len(CurrentDb.Name) -
Len(Dir(CurrentDb.Name)))
End Function
--
Gruß
Gunter
_________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com
Loading...