valume91
Goto Top

VBA Code beim drücken von Tastenkombination ausführen

Wie kann ich einen bestimmten Code in VBA beim betätigen von z.B. "Alt"+"f" ausführen lassen?

Hallo Zusammen

Ich möchte den Usern die Möglichkeit bieten, einen bestimmten Filter in Access per Tastenkombination (z.B. "Alt" + "f") setzen
zu können.
Wie kann ich die betätigte Tastenkombination abfragen?

Google hat mir leider nicht weiter geholfen.
Wir arbeiten mit Access 2010.

MfG Valume

Content-ID: 179769

Url: https://administrator.de/contentid/179769

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

83928
83928 30.01.2012 um 14:02:29 Uhr
Goto Top
Hi,

schau Dir mal die Ereignisse "KeyUp" und Key Down an. Da ist bestimmt was dabei für Dich.


Beispiel
Private Sub Text0_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 70 And Shift = 4 Then MsgBox "ALT+f"  
End Sub
Valume91
Valume91 30.01.2012 um 15:36:10 Uhr
Goto Top
Hi abaaba

Ja das schaut schonmal gut aus. Aber irgendwas mache ich wohl falsch.
Ich habe mal deinen Code genommen und für das ganze Formular gültig gemacht.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 70 And Shift = 4 Then MsgBox "ALT+f"  
End Sub
Funktioniert allerdings nicht. Wie kommst du eigentlich auf die Zahlen 70 und 4?
Ich habe ausserdem das Beispiel vom msdn probiert.
Hat bei mir auch nicht geklappt.

Was mache ich falsch?

Gruss Valume
Logan000
Logan000 30.01.2012 um 16:11:46 Uhr
Goto Top
Moin Moin

Wie kommst du eigentlich auf die Zahlen 70 und 4?
http://msdn.microsoft.com/de-de/library/0z084th3%28VS.80%29.aspx

Funktioniert allerdings nicht.
Eigentlich schon. Allerdings nur wenn das jeweilige Objekt auch den Focus hat.
Daher dürfte das für deine Zwecke eher ungeeignet sein.

Versuchs lieber so: http://office.microsoft.com/de-ch/access-help/ausfuhren-von-access-makr ...

Gruß L.
83928
83928 30.01.2012 um 16:13:12 Uhr
Goto Top
Zitat von @Valume91:
Hi abaaba

Ja das schaut schonmal gut aus. Aber irgendwas mache ich wohl falsch.
Ich habe mal deinen Code genommen und für das ganze Formular gültig gemacht.
Funktioniert allerdings nicht.

Das KeyDown-Ereignis tritt bei Formularen nicht immer in Kraft. Aber genaueres, oder auch woran es liegt kann ich Dir leider nicht sagen.

Wie kommst du eigentlich auf die Zahlen 70 und 4?

Durch ausprobieren ;)
Aber in Deinem Link steht ja auch, wie man ohne ausprobieren an die Daten kommt:

<quote>
KeyCode A key code, such as vbKeyF1 (the F1 key) or vbKeyHome (the HOME key). To specify key codes, use the intrinsic constants shown in the Object Browser. You can prevent an object from receiving a keystroke by setting KeyCode to 0.

Shift The state of the SHIFT, CTRL, and ALT keys at the time of the event. If you need to test for the Shift argument, you can use one of the following intrinsic constants as bit masks:
Constant Description
acShiftMask The bit mask for the SHIFT key.
acCtrlMask The bit mask for the CTRL key.
acAltMask The bit mask for the ALT key.
</Quote>
Das heist die "KeyCodes" findest Du im ObjektKatalog (F2 in der Entwicklungsumgebung) und "Shift" ist eine der 3 o.g. Konstanten.


Ich habe ausserdem das Beispiel vom msdn probiert.
Hat bei mir auch nicht geklappt.

Was mache ich falsch?

<Quote>
To try the example, add the following event procedure to a form containing a text box named KeyHandler.
</Quote>
Ich wette das Du die Zeile ignoriert hast. ;)
Gruss Valume

83928
83928 30.01.2012 um 16:15:54 Uhr
Goto Top

Eindeutlich die bessere Möglichkeit ;)