Archiv verlassen und diese Seite im Standarddesign anzeigen : Access un die F1-Taste
Stranger
30.05.2002, 00:58
hi,
ich will in eimem Formular unter Access 2000 die F1 Taste 'belegen'.
d.h. wenn F1 gedrückt wird soll ein neues Formualr geöffnet werden.
Ich habe schon probiert bei Tastenvorschau auf Ja und Bei Taste in der Ereignisprozedur den ASCII-Code (bzw. vbKeyF1) abzufangen.
Aber es funktioniert nicht ich komme immer in die Access-Hilfe.:(
Bei anderen Tasten wie z.B 'a' funktioniert es nur nicht mit den F1-F12 Tasten.:mauer:
Wäre nett wenn mir jemand helfen könnte.:)
CU-Stranger
Hi!
Kann man das Menü von Access vielleicht so anpassen, dass man die Funktionstastenabfrage herausnimmt?
Gruss,
Mimo
Stranger
31.05.2002, 16:56
hi,
hab ich schon nachgesehen aber nichts gefunden !
Ich habe mich auch schon auf anderen Boards nach diesem Thema umgeschaut.Es wird dieselbe Lösung die ich schon alleine herausgefunden habe empfohlen.Bei mir funktioniert es jedoch immer noch nicht !:mauer:
Also ich wäre für weitere Hilfe sehr dankbar:)
CU-Stranger
Um was für eine Lösung handelt es sich denn?
Wenn alles nix hilft, sollte Hooking denn aber noch funktionieren. Nur wie man dass in Access reinbringt, weiss ich so spontan nicht. Aber das können wir denn ja gemeinsam probieren...
Gruss,
Mimo
Stranger
03.06.2002, 18:51
hi mimo,
bin etwas im stress deswegen kann es manchmal etwas dauern bis meine antwort kommt.
also mein lösungsansatz ist so:
bei der Eigenschaft KeyPressed im Formular auf Ereignisprozedur.
dann in der Ereignisprozedur folgendes :
if AsciiCode = vbKeyF1 then
zB. irgendwein DoCmd
endif
und natürlich die Formulareigenschaft KeyPreview auf yes gestellt.
Da dadurch der Tastendruck abgefangen wird befor er ab irgendein Steuerelement gesendet wird.
Achja was ist Hooking ??
CU-Stranger
Hiho!
Also, nicht mal in einem simplen VB-Formular funktioniert es, dass die so. "Shortcuts" an die Key-Events durchgereicht werden.
Mit Hooking meine ich in diesem Fall Message-Hooking, sich also in die Message-Kette eines Fensters "einhaken" und somit Ereignisse abfangen, an die man sonst gar nicht herankommt.
Von Mabry gibt's dazu ein geiles Freewarecontrol. Du musst dazu den Handle des zu überwachenenden Fensters ermitteln (aber das wäre - wenn überhaupt - das nächste 'prob' ;-).
Schau mal hier:
Message-Hooking (http://people.freenet.de/Mister_Moster)
Schau Dir doch einfach erst mal die Samples an. Wenn die Dir nix sagen, machen wir dann zusammen weiter! ;-)
Gruss,
Mimo
Stranger
04.06.2002, 18:24
so,
also das mit dem Code von mir Funktioniert schon mit allen anderen Tasten z.b. 'a' also keine Funktionstasten.
Ich schau mir mal das Hooking an und melde mich wieder wenn ich Pobleme habe.
also erstmal danke.
CU-Stranger
Du musst ja bestimmen, welche Windows-Messages an Dich weitergereicht werden sollen. Hierzu dürfte folgende notwendig sein:
Const WM_KEYDOWN = &H100
Sind die folgenden viell. auch noch interessant?
Const WM_KEYUP = &H101
Const WM_SYSKEYDOWN = &H104
Const WM_SYSKEYUP = &H105
Gruss,
Mimo
SeppelvTh
12.06.2002, 22:21
Hallo, Leute!
Ich bin der Neue, studiere im 2. Semester Informatik in Dortmund und arbeite nebenbei seit über 4 Jahren als Softwareentwickler. Dabei erstelle ich hauptsächlich Access-Anwendungen.
Nun zum Thema:
Das mit dem Abfangen der F-Tasten geht wesentlich einfacher, und zwar muss man nur ein Makro namens
- "Tastaturbelegung" (Access 97, wer's noch benutzt)
oder
- "AutoKeys" (Access XP bzw. 2002)
(Bei Access 2000 bin ich mir nicht sicher, probiert eins von beidem aus)
erstellen. Dann die Spalte Makronamen einblenden und als Name die gewünscht F-Taste mit geschwungenen Klammern eingeben, also z.B. "{F1}". Dann könnt ihr Makrobefehle eingeben oder halt auch durch die Aktion "AusführenCode" eine VBA-Funktion aufrufen.
Es ist nur so, dass diese Aktion dann in der gesamten Anwendung ausgeführt wird und nicht nur für ein einzelnes Formular gilt. Man kann aber evtl. noch in der auszuführenden Funktion überprüfen, welches Formular gerade geöffnet ist und dann entsprechend reagieren.
Hoffe, geholfen zu haben!
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.