Access: Tastenkombinationen in VBA erstellen
Hallo,
Ich habe einen Button der mit einem Makro belegt ist.
Button: "Drucken"
Makro: Drucken-------DruckenFormular1
Ich möchte in VBA einen Code schreiben der dieses Makro ausführt wenn ich die Tastenkombination Strg + D drücke.
Dafür bin ich auf die Eigenschaften des Formulars, auf "Bei Taste ....." und habe folgende Code geschrieben:
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyCtrl and vbKeyAscii = vbKeyD Then
DoCmd.RunMacro "Drucken.DruckenFormular1"
End If
End Sub
leider passsierte gar nichts als ich strg + d drückte.
Ich möchte noch mehrere Tastenkombinationen belegen und weiß nicht was die Tasten in VBA bedeuten (z.B. Enter = vbKeyReturn...) könnte mir jemand sagen wo ich eine Auflistung der Tasten bekomme??
Vielen Dank im Vorraus
Antwort schreiben
Antwort 1 von RalfH vom 12.01.2019, 10:39 Options
Hallo Robsenponte,
Das mit der Kombination weiss ich leider auch nicht,
wenn Dir aber die Taste D reicht, dann sollte das so gehen.
Bei Eigenschaften des Button: "Drucken", gehst Du auf
Beschriftung und setzt vor dem Wort "Drucken" ein kaufmännisches & also : &Drucken
Gruß Ralf
Antwort 2 von Robsenponte vom 15.01.2019, 08:06 Options
Vielen Dank Ralf,
Ich habe mittlerweile etwas anderes herausgefunden.
Mit diesem Code klappt es:
´Bei Str + D Drucken´
Private Sub Text0_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyD And Shift = 2 Then
DoCmd.RunMacro "Drucken.DruckenQuetschEinzeln"
KeyCode = 0
Shift = 0
End If
End Sub
Mit diesem Code wird bei Strg + D das Makro "Drucken.DruckenQuetschEinzeln" ausgeführt. Das einzige Problem ist, dass man dieses Makro für jedes Steuerelement eintippen muss, da man ja in Access ein Formular nicht dauermarkieren kann.
Was noch nicht klappt ist, wenn man Str + D + A benutzen will. Ich habe das Makro so verändert:
Private Sub Text0_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyD And vbKeyA [/b]And Shift = 2 Then
DoCmd.RunMacro "Drucken.DruckenQuetschEinzeln"
KeyCode = 0
Shift = 0
End If
End Sub
Das Makro wird aber bei Str + D ausgefüht.
Falls Du oder jemand anderes für dieses Problem eine Lösung findet lasst es mich bitte Wissen.
Mit freundlichen Grüßen
Robsenponte
Antwort 3 von RalfH vom 15.01.2019, 10:38 Options
Guten Morgen,
Wofür brauchst Du denn die 3er Kombination ?
Was wird bei dem Makro gedruckt, der Datensatz, ein Teil des Datensatzes ?
GRuß Ralf
Antwort 4 von Robsenponte vom 15.01.2019, 10:58 Options
Das Erste makro das gestartet werden soll, druckt einen einzelnen Datensatz (Strg + D), das nächste Makro mit Strg + d+ a soll alle Datensätze drucken.
Dafür habe ich in Access das Makro "Drucken.DruckenAlle" aber leider klappt das mit diesem Code nicht:
Private Sub Text0_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyD And vbKeyA And Shift = 2 Then
DoCmd.RunMacro "Drucken.DruckenQuetschEinzeln"
KeyCode = 0
Shift = 0
End If
End Sub
Ich könnte Strg + z.B. F verwenden aber ich wollte die Kombinationen logisch gestalten (Strg + D) = Drucken Einzeln und (Strg + D + A) = Drucken alles. Das A sol für alles stehen
Antwort 5 von RalfH vom 15.01.2019, 11:36 Options
Schonmal den Befehlschaltflächen-Assistenten zu Hilfe genommen ?
Antwort 6 von Robsenponte vom 15.01.2019, 11:49 Options
Ja, für die Datensatznavigation fürs Drucken..., aber wie soll mir der Assi bei den Tastenkombinationen helfen?
Ich habe einen Button der die Makros ausführt, das ist ja nicht sonderlich schwer. Ich möchte aber sozusagen den Button (oder dessen Makro) per Tastenkombination starten um das Programm schöner zu gestalten.
Antwort 7 von RalfH vom 17.01.2019, 10:30 Options
Hallo Robsenponte,
Da kann ich Dir nicht weiterhelfen, allerdings denke ich mir, das durch die erste Kombination ja schon ein Ereignis Eintritt, und somit die 3 Kombination garnicht so wie Du das möchtest funktioniert.
Es sei denn, man drückt die Tasten in einer anderen Reihen folge und das wäre nicht mehr so komfortabel.
Gruß Ralf
Antwort 8 von Robsenponte vom 17.01.2019, 10:47 Options
Danke Ralf
Ich lass es so wies ist
Antwort 9 von Robsenponte vom 18.01.2019, 10:39 Options
Hallo Forum User,
Falls doch jemand eine Lösung des Problemes kennt, würde es mich trotzdem interresieren und ich fraue mich auf jede Antwort!
Mfg
Robsenponte