Module

In einer Accessanwendung will man oft bestimmte Dinge „auf Knopfdruck“ automatisiert ablaufen lassen. So kann es beispielsweise sinnvoll sein, in einem Formular einen Button zu haben, der eine oder gleich mehrere Aktionsabfragen startet, danach auch noch einen Bericht ausdruckt und zu guter Letzt ein oder mehrere Formulare schließt. Zur Sicherheit soll vielleicht vorher noch eine Meldung an den User erfolgen; „Die Daten jetzt wirklich verarbeiten und den Abschlussbericht drucken?". All das ist kein Problem mit VBA.

Private Sub cmdButton_Click()
Dim db As DAO.Database
Dim strFrage As String

strFrage = "Die Daten jetzt wirklich verarbeiten und den Abschlussbericht drucken?"
If MsgBox(strFrage, vbYesNo) = vbYes Then
    Set db = CurrentDb
    db.Execute "qryDatenVerarbeiten"
    DoCmd.OpenReport "rptAbschlussbericht"
    DoCmd.Close acForm, Me.Name
    Set db = Nothing
End If

End Sub

VBA ist eine eigenständige, leistungsfähige Programmiersprache, die in fast allen Produkten von Microsoft Office integriert und, wie eben erwähnt, in Microsoft Access fast schon unverzichtbar ist. So unverzichtbar, dass in der Navigationsleiste einer Accessanwendung die Module unter Module sogar angezeigt werden - im Gegensatz zu anderen Officeanwendungen, wo VBA eher versteckt wird.

Schon eine einfache Einführung in VBA würde allerdings den Umfang des Access-Tutorials fast verdoppeln. Und da VBA ja auch in anderen Anwendungen von Microsoft (und auch teilweise von Corel) integriert ist, gibt es mit dem VBA-Tutorial gleich ein eigenständiges Tutorial dafür. Im Folgenden finden sich lediglich einige VBA-Module, die speziell für Access sinnvoll sind. Teilweise werden VBA-Kenntnisse vorausgesetzt.

Und auch, wenn inzwischen Einiges davon ziemlich angestaubt oder veraltet ist: Man kann noch immer die knowhow.mdb (Version3.1) empfehlen, in der Klaus Oberdalhoff zahlreiche unterschiedliche Funktionen, Ideen und Lösungen zusammengetragen hat. Die Veröffentlichung im Rahmen des Access-Tutorials hat er freundlicherweise gestattet.