Autokeys | Entwickler-Version vs. Anwender-Version

07/09/2008 - 21:34 von John Curio | Report spam
Hi allerseits,
Hi Henry,

ich würde gerne ein paar Tastenkombinationen abstellen, z.B. Strg+F4. Da ich
das nicht in jedem Formular machen möchte, würde ich gerne das
"Autokeys-Makro" nutzen. Möchte aber nur das Autokeys-Makro ausgeführt
haben, wenn ich nicht entwickle, d.h. die öffentliche Variable
"pbl_Entwickler_bol = true ist.
Vom Umbennenn des Makros (docmd.Rename "Unwichtig", acMacro, "Autokeys")
wurde mir abgeraten (danke dafür), da es dann ja für das gesamte Access
gilt.

Henry Habermacher hat mir dankenswerter Weise in einem früheren Beitrag
folgenden Tipp gegeben, bei welchem aber leider nicht mein Wissen ausreicht.
Seinen Vorschlag habe ich unten kommentiert angehàngt, aber um es einfacher
zu machen, habe ich mal seine Grundidee geschildert und welches technische
Grundproblem ich damit habe.

Ich würde gerne die Public Variable "pbl_Entwickler_bol", die ich schon beim
Laden der DB zugewiesen habe, unter "Bedingung" der Tastenkombinationen
abfragen. Leider scheint das Makro nur FormularFelder zu nehmen, aber keine
globalen Variablen. Wie kriege ich das Autokeys-Makro dazu, dass es meine
globale Variable "pbl_Entwickler_bol" kennt?

makro "Autokeys"
Makroname | Bedingung | Aktion
-
^p | pbl_Entwickler_bol=Falsch
leer
^{f4} | pbl_Entwickler_bol=Falsch
leer
%{f4} | pbl_Entwickler_bol=Falsch
leer


Herny Habermacher Zitat:


Ich selber würde etwas anderes machen: Mach ein Makro in Autokeys rein,
z.B.
Ctrl+R (falls das noch nichts anderes macht). Setze dort eine globale
Variable, die Du in einem Standard Modul definiert hast:



Wie bekomme ich das Makro dazu, eine globale Variable zu setzen? Warum muss
ich das mit der Tastenkombination "Ctrl+R" verbinden?


Declare blnAutokeysDisabled AS Boolean
Public Function switchAutokeys()
blnDisableAutokeys = Not(blnDisableAutokeys)
End Function
Damit hast Du eine Variable, welche Du nun im Autokeys Makro abfragen
kannst. Um diese abzufragen, braucht Du eine Funktion:
Public Function isAutokeysEnabled()
is AutokeysEnabled = Not blnAutokeysDisabled
End Function



Warum brauche ich soviele Variablen? reicht nicht meine eine globale
Variabel "pbl_Entwickler_bol" aus?


Nun kannst Du beim Autokeys Makro eine Bedingung vor jedes Makro hàngen,
welche nichts anderes macht, als diese Funktion aufzurufen und die
Tastenkombination nur dann umhàngt, wenn dieses True zurückliefert. Im
False
Fall aber dann den original Befehl aufruft.



Danke für Deine Grundidee.

Gruss
Johannes
 

Lesen sie die antworten

#1 Peter Doering
07/09/2008 - 23:32 | Warnen spam
Hallo,

John Curio wrote:

ich würde gerne ein paar Tastenkombinationen abstellen, z.B. Strg+F4. Da ich
das nicht in jedem Formular machen möchte, würde ich gerne das
"Autokeys-Makro" nutzen. Möchte aber nur das Autokeys-Makro ausgeführt
haben, wenn ich nicht entwickle, d.h. die öffentliche Variable
"pbl_Entwickler_bol = true ist.
Vom Umbennenn des Makros (docmd.Rename "Unwichtig", acMacro, "Autokeys")
wurde mir abgeraten (danke dafür), da es dann ja für das gesamte Access
gilt.
[...]
Ich würde gerne die Public Variable "pbl_Entwickler_bol", die ich schon beim
Laden der DB zugewiesen habe, unter "Bedingung" der Tastenkombinationen
abfragen. Leider scheint das Makro nur FormularFelder zu nehmen, aber keine
globalen Variablen. Wie kriege ich das Autokeys-Makro dazu, dass es meine
globale Variable "pbl_Entwickler_bol" kennt?



Du kannst stattdessen eine Funktion verwenden, die den Wert der globalen
Variablen zurueckgibt, siehe www.donkarl.com?FAQ3.15

Gruss - Peter

Anmeldung zur 11. AEK unter www.donkarl.com/?AEK
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen