[Eine Seite zurück] [Übersicht] [Eine Seite vor]

Benutzung auf eigene Gefahr !
Keine Garantie für garnichts !

Übersichtlichere Datensatznavigation in Formularen

Sprache / Programm: Access ab Version 97
Beschreibung

Normalerweise legt Access mit jeder Schaltfläche unübersichtlichen Code im Formularmodul an. Wer in vielen Formularen immer wieder die gleichen Schaltflächen unterbringen will, kann mit dieser Methode viel Zeit sparen und gleichzeitig das Formularmodul abspecken.

Die Funktion wird in einem Standardmodul gespeichert und dient dazu, den unübersichtlichen und umfangreichen Code für Datensatzoperationen aus Formularen herauszuziehen. Dazu wird der Ereigniseigenschaft 'Beim Klicken' einer Schaltfläche die Funktion '=DatenSatzOperation(xxx)' zugewiesen, wobei xxx eine Long-Integer-Zahl ist, welche die Art der Datensatzoperation kennzeichnet.

VBA-Quelltext
Public Function DatenSatzOperation(Funktion As Long)
    On Error Resume Next
    DoCmd.RunCommand Funktion
End Function
Argumente der Funktion/Prozedur

Funktion
Art der Aktion

Die übergebenen Konstanten vom Typ 'Long Integer' entsprechen den Aktionskonstanten der Methode 'DoCmd.RunCommand'

Liste der Konstanten

WertArt der Aktion
67Schaltfläche 'Gehe zu erstem Datensatz'
66Schaltfläche 'Gehe zu vorherigem Datensatz'
65Schaltfläche 'Gehe zu nächstem Datensatz
68Schaltfläche 'Gehe zu letztem Datensatz'
28Schaltfläche 'Gehe zu neuem Datensatz'
292Schaltfläche 'Rückgängig: Datensatz'
223Schaltfläche 'Löschen: Datensatz'
30Schaltfläche 'Datensatz suchen'
58Schaltfläche 'Objekt schließen'
3Schaltfläche 'ACCESS beenden'
Anwendungsbeispiel(e)...

Normalerweise würde der Schaltflächen-Assistent von  Access der Ereigniseigenschaft 'Beim Klicken' den Wert '[Ereignisprozedur]' zuweisen.

Alternativ kann man einer Schaltfläche die Funktion 'Gehe zu nächstem Datensatz' mit dieser Funktion zuweisen. Dazu wird der Ereigniseigenschaft 'Beim Klicken' folgende Funktion zugewiesen:

=DatenSatzOperation(65)

Hinweis

Die Konstanten gehören zur Funktion DoCmd.RunCommand und können leicht ermittelt werden:

  1. Neues Makro erstellen

  2. Neue Aktion 'AusführenBefehl' hinzufügen

  3. Den gewünschten Befehl auswählen

  4. Schritte 2 und 3 wiederholen, bis das Makro alle interessanten Befehle enthält

  5. Makro speichern

  6. Mit 'Datei' 'SpeichernUnter' das Makro als Modul Speichern

  7. Die Befehle DoCmd.RunCommand mit der Funktion Ersetzen durch Debug.Print ersetzen

  8. Funktion starten

  9. Konstanten im Testfenster auslesen

Zu kompliziert ? OK, dann anders:

In ein Modul gehen, den Objektkatalog aufrufen, als Bibliothek nur 'Access' auswählen, unter Klassen 'AcCommand' auswählen und auf die gewünschte Konstante klicken und unten den Zahlenwert ablesen.

Anwendungsgebiete, Fehler und Warnungen

Microsoft weist darauf hin, dass Konstanten wie 'acCmdRecordsGoToFirst' auch in zukünftigen Versionen beibehalten werden, daher sollte man sie im Code statt des Zahlenwertes (hier: 67) verwenden. Auf die Zahlenäquivalente (hier: 67) soll man sich -laut Microsoft- ausdrücklich nicht verlassen. Aber was soll's, MS-Produkte produzieren so viele Fehler, da kommt's auf Fehler durch angekündigte Änderungen auch nicht mehr an ...