HINWEIS
BEISPIEL
BEISPIEL
Das Current-Ereignis wird früher als in obiger Ereignisreihenfolge ausgelöst, wenn innerhalb des Load-Event-
Handlers RecordSource zugewiesen wird!
In einem (ungebundenen) Textfeld wird der Bruttowert angezeigt.
Private Sub Form_Current()
Text1.Value = Me!Netto * (1 + MWSt)
End Sub
Event-Handler
Für die jedem Ereignis zugeordnete Ereignisbehandlungsroutine (Event-Handler) stellt Access einen vorge-
fertigten Prozedurrumpf zur Verfügung. Dieser wird erzeugt, wenn Sie im Visual Basic-Fenster oben links
das entsprechende Objekt (Form) auswählen und anschließend im rechten Kombinationsfeld auf das ge-
wünschte Ereignis klicken.
Der Prozedurbezeichner besteht aus dem Namen des Objekts und dem davon durch einen Unterstrich (_)
abgetrennten Namen des Ereignisses. Auch wenn keine Übergabeparameter existieren, ist das (leere) Klam-
merpaar der Parameterliste anzugeben.
Der folgende Event-Handler reagiert auf das
Load
-Ereignis und weist der
RecordSource
-Property des Formu-
lars (
Datenherkunft
-Eigenschaft) die Tabelle
Auto
der aktuellen Datenbank zu.
Private Sub Form_Load()
Me.RecordSource = "Auto"
End Sub
Bemerkungen
Zweckmäßigerweise werden, wie im obigen Beispiel, alle für ein Formular-Modul notwendigen Initiali-
sierungen im Open- oder Load-Ereignis vorgenommen.
Viele Formular-Ereignisse treten auch bei Berichten (Reports) und Steuerelementen mit gleicher oder
ähnlicher Bedeutung auf.
Etwas schwierig ist bei Formularen die Unterscheidung der Ereignisse Activate und GotFocus sowie
Deactivate und LostFocus. Wenn Sie zwischen zwei geöffneten Formularen wechseln, tritt für das erste
Formular das Deactivate- und für das zweite Formular das Activate-Ereignis ein. Nur wenn das Formu-
lar keine sichtbaren aktivierten Steuerelemente enthält, tritt für das erste Formular vor Deactivate das
Ereignis LostFocus und für das zweite Formular vor Activate das Ereignis GotFocus ein.
Tastatur- und Maus-Ereignisse
Diese Events werden durch Benutzereingaben hervorgerufen.
141
Das Form-Objekt
BEISPIEL
Kapitel 3: Formulare und Steuerelemente
Ereignisroutine (Event-Handler) Ereigniseigenschaft (deutsch)
KeyDown(KeyCode As Integer, Shift As Integer) Bei Taste Ab
KeyPress(KeyAscii As Integer) Bei Taste
KeyUp(KeyCode As Integer, Shift As Integer) Bei Taste Auf
Click() Beim Klicken
DblClick(Cancel As Integer) Beim Doppelklicken
MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Bei Maustaste Ab
MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Bei Mausbewegung
MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Bei Maustaste Auf
MouseWheel (Page As Boolean, Count As Long) Bei Bewegen des Mausrades
Tabelle 3.8 Die wichtigsten Tastatur- und Maus-Ereignisse
KeyCode, KeyAscii und KeyPreview
Der KeyCode-Parameter im KeyUp- und KeyDown-Ereignis liefert die gedrückte Taste und ist eine Hexa-
dezimalkonstante, welche auf die so genannten »Virtuellen Tastaturcodes« von Windows verweist. Im
Unterschied dazu kann beim KeyPress-Event der ASCII- bzw. ANSI-Code des eingegebenen Zeichens zur
Auswertung herangezogen werden.
Wenn Sie die Formular-Eigenschaft KeyPreview auf True einstellen, werden Tastatureingaben zunächst vom
Formular empfangen und erst dann an das aktive Steuerelement weitergeleitet. Bei False (Standardein-
stellung) empfängt nur das aktive Steuerelement das Ereignis.
Das nachfolgende Beispiel bezieht sich auf die
KeyPreview
-Eigenschaft. Wenn Sie z.B. im
Load
-Event:
Me.KeyPreview = True
setzen und folgenden Event-Handler für das
KeyDown
-Ereignis schreiben:
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = &H71 Then MsgBox "F2-Taste gedrückt!"
End Sub
so erscheint nach dem Drücken der
F2
-Taste ein Meldungsfeld (&H71 ist der Code der
F2
-Taste).
Shift und Button
Alle Mausereignisse liefern neben den aktuellen Koordinaten X und Y (Single-Werte) auch noch die Para-
meter Shift und Button.
Shift wird in der Praxis relativ selten ausgewertet und erfasst den Status bestimmter Tasten, die auf der
Tastatur gleichzeitig mit dem Mausereignis gedrückt werden (siehe KeyDown, KeyUp, KeyPress). Button
kennzeichnet die gedrückte Maustaste:
142
HINWEIS
BEISPIEL
BEISPIEL
BEISPIEL
Abbildung 3.5 Werte für den Button-Parameter
Beachten Sie, dass die Mausereignisse für das Formular nicht ausgelöst werden, wenn Sie auf den Detail-
bereich klicken.
Der folgende Event-Handler für ein
MouseMove
-Ereignis erzeugt dann fortlaufende Pieptöne, wenn Sie bei
gedrückter rechter Maustaste auf das Formular (unterhalb der Trennlinie) klicken und die Maus bewegen.
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then Beep
End Sub
SendKeys
Diese Anweisung simuliert Tastatureingaben durch den Bediener, daher ist es zweckmäßig, sie bereits an
dieser Stelle im Zusammenhang mit Tastaturereignissen zu erwähnen. Das Argument von SendKeys ist eine
Zeichenkette. Jede Taste wird dabei durch mindestens ein Zeichen repräsentiert.
Das Pluszeichen (+), Caret-Zeichen (^) und Prozentzeichen (%) sind für die
-,
Strg
- und
Alt
-Taste vor-
gesehen. Sondertasten sind in geschweifte Klammern einzuschließen (Übersicht siehe Anhang D).
Die Anweisung:
SendKeys "%{F4}"
sendet die Tastenfolge
Alt
+
F4
an das aktive Fenster und bewirkt damit ein Schließen der Applikation.
Optional kann man den so genannten »Wartemodus« als Argument anfügen. Ist der Wert False (Vorein-
stellung), setzt die Prozedur die Ausführung fort, unmittelbar nachdem die Tastenfolge gesendet wurde. Bei
True muss die Tastenfolge verarbeitet werden, bevor die Prozedur die Ausführung fortsetzen kann.
Häufig soll sich die »Tastatureingabe« nicht auf das aktuelle Formular, sondern auf das aktive Steuer-
element beziehen. Dann muss dieses Steuerelement vorher den Fokus erhalten.
Die Sequenz:
Text0.SetFocus
SendKeys "12345", True
füllt das Textfeld
Text0
mit den Ziffern
12345
und setzt danach die Ausführung fort.
143
Das Form-Objekt

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.