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 = "Daten jetzt verarbeiten und 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 und sogar in Produkten von Corel integriert ist. Wie eben erwähnt, ist VBA in Microsoft Access sogar fast schon unverzichtbar. 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 mehr als verdoppeln. Und da VBA ja auch in anderen Anwendungen von Microsoft und 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 im Zusammenhang mit Access sinnvoll sind. Teilweise werden dafür 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.