Access speichert deine Module binär in der .accdb-Datei. Das heißt: kein Git,
kein Diff, kein vernünftiges Code-Review — und wenn die Datei kaputtgeht, ist der
Code mit weg. Zwei versteckte Access-Befehle lösen das Problem: SaveAsText und
LoadFromText. Sie machen aus einem Modul eine ganz normale Textdatei und wieder
zurück.
SaveAsText: Modul → Textdatei
Application.SaveAsText exportiert ein beliebiges Objekt als Text. Für ein
Standardmodul sieht das so aus:
Application.SaveAsText acModule, "Modul1", "C:\vba\Modul1.bas"
Der erste Parameter ist der Objekttyp. Die wichtigsten:
| Konstante | Objekt |
|---|---|
acModule | Standard- und Klassenmodul |
acForm | Formular (inkl. Code dahinter) |
acReport | Bericht |
acMacro | Makro |
LoadFromText: Textdatei → Modul
Der Rückweg ersetzt (oder erstellt) das Objekt aus der Textdatei:
Application.LoadFromText acModule, "Modul1", "C:\vba\Modul1.bas"
Achtung:
LoadFromTextüberschreibt das gleichnamige Objekt ohne Rückfrage. Arbeite auf einer Kopie der Datenbank, bis der Ablauf sitzt.
Alle Module auf einmal exportieren
Von Hand jedes Modul einzeln zu exportieren ist mühsam. Diese Prozedur läuft über alle Standardmodule und schreibt sie in einen Ordner:
Public Sub ExportiereAlleModule(ByVal ziel As String)
Dim comp As Object ' VBComponent
Dim exportiert As Long
For Each comp In Application.VBE.ActiveVBProject.VBComponents
' 1 = vbext_ct_StdModule, 2 = vbext_ct_ClassModule
If comp.Type = 1 Or comp.Type = 2 Then
Application.SaveAsText acModule, comp.Name, _
ziel & "\" & comp.Name & ".bas"
exportiert = exportiert + 1
End If
Next comp
Debug.Print exportiert & " Modul(e) exportiert nach " & ziel
End Sub
Aufruf im Direktfenster (Strg+G):
ExportiereAlleModule "C:\vba"
Damit der Zugriff auf Application.VBE funktioniert, muss in Access einmalig
Zugriff auf das VBA-Projektobjektmodell vertrauen aktiviert sein
(Datei → Optionen → Trust Center → Einstellungen → Makroeinstellungen).
Warum sich das lohnt
Sobald deine Module als .bas-Dateien vorliegen, steht dir die ganze Welt offen:
- Git — jede Änderung nachvollziehbar, nichts geht verloren.
- Diffs & Code-Reviews — sehen, was sich geändert hat, Zeile für Zeile.
- Echte Editoren — mit ordentlicher Suche, Refactoring und KI-Unterstützung arbeiten, statt im engen VBA-Editor.
Der typische Kreislauf sieht dann so aus:
Access ──SaveAsText──▶ Modul1.bas ──▶ Editor / Git / Review
│
Access ◀──LoadFromText── Modul1.bas ◀──────┘
Zusammengefasst
SaveAsTextschreibt ein Modul als Textdatei,LoadFromTextliest es zurück.LoadFromTextüberschreibt ohne Nachfrage — immer auf einer Kopie testen.- Eine kleine Schleife über
VBComponentsexportiert das ganze Projekt auf einmal. - Als Textdateien lassen sich Module versionieren, diffen und mit echten Werkzeugen bearbeiten.