Makros sind Einstieg, nicht Endstation
Access-Makros sind eine Art grafisches VBA-Light.
Du klickst Aktionen zusammen. Kein Code nötig.
Gut für einfache Dinge. Nicht für komplexe Logik.
Trotzdem nützlich, z. B. beim:
- Öffnen von Formularen
- Ausführen von Abfragen
- Setzen von Werten
- Steuerung beim Start
Du kannst mit Makros starten – und später auf VBA umsteigen.
Beispiel: Einfaches Makro zum Formular öffnen
- Neues Makro erstellen
- Aktion:
Formular öffnen
- Formularname:
frmKunden
- Ansicht:
Einzelformular
- Filter: leer
- Modus: Normal
Speichern als mcrÖffneKundenformular
Dann im Menü, Button oder AutoExec verwenden.
Makros als Startpunkt: AutoExec
Makro mit Namen AutoExec
wird beim Öffnen der Datenbank automatisch ausgeführt.
Typische Aktionen:
- Startformular öffnen
- TempVars setzen
- Prüfungen durchführen
Beispiel:
- Aktion:
TempVarSetzen
- Name:
Benutzer
- Ausdruck:
=Environ("USERNAME")
Danach:
- Aktion:
Formular öffnen
→frmDashboard
Bedingte Ausführung im Makro
Makros können auch If
-Bedingungen:
If [Benutzerrolle]="Admin" Then
Formular öffnen → frmAdmin
Else
Formular öffnen → frmUser
End If
In der Makro-Oberfläche:
Aktion „Wenn“, darunter die gewünschte Aktion, ggf. mit „Sonst“.
Makros konvertieren zu VBA (wenn’s ernst wird)
Rechtsklick auf ein Makro → „In VBA konvertieren“
Access erzeugt eine neue Funktion im Modul modConvertedMacros
.
Beispiel:
Function mcrÖffneKundenformular()
DoCmd.OpenForm "frmKunden", acNormal
End Function
Ab da kannst Du erweitern: Fehlerbehandlung, Parameter, Logging.
VBA statt Makro: Flexibler und kontrollierbarer
Makros sind schnell gebaut, aber begrenzt.
Typische Umstellungen:
If CurrentUser = "admin" Then
DoCmd.OpenForm "frmAdmin"
Else
DoCmd.OpenForm "frmUser"
End If
Oder:
DoCmd.OpenForm "frmKunden", , , "Land='DE'"
Mix möglich: Makro ruft VBA auf
Makro-Aktion: AusführenCode
Ausdruck: =StartePrüfung()
Dann im Modul:
Public Function StartePrüfung()
MsgBox "Datenbank geprüft"
End Function
So kannst Du schrittweise von Makro auf VBA umstellen.
Best Practices für Makros
- Keine Logik in Makros – nur Abläufe
- Bei mehr als 5 Aktionen: umsteigen auf VBA
- Makros klar benennen:
mcrÖffneDashboard
,mcrStarteImport
- Kommentare nutzen – auch in Makros möglich
- Makrofehler explizit abfangen oder visualisieren
Wann Makros reichen
- Navigation
- Autostart
- Einfache Datenimport-Jobs
- Demo-Zwecke oder Benutzersteuerung
Wann Du besser gleich auf VBA gehst
- Wenn Du Daten prüfst
- Wenn Du Berechnungen brauchst
- Wenn Du mit API/Webzugriffen arbeitest
- Wenn Du Schleifen, Fehlerprüfung oder Logging brauchst
Also Entwickler:
Makros in Access sind schnell gemacht.
Aber bei komplexeren Anforderungen sind sie eher Stolperstein als Hilfe.
Du kannst sie nutzen – aber besser nur als Einstieg oder Trigger.
No responses yet