Wenn Du nichts siehst, kannst Du nichts lösen
Die Access Runtime ist schlank â aber stumm.
Keine direkte Anzeige von Debug-Meldungen.
Kein Direktfenster. Kein Haltepunkt. Keine Entwicklungswerkzeuge.
Das macht die Fehlersuche schwer.
Aber nicht unmöglich.
Ich zeig Dir, wie ich Runtime-Fehler trotzdem sichtbar mache.
Problem: Runtime meldet sich nur mit âEin Fehler ist aufgetretenâ
Mehr nicht. Kein Fehlercode. Kein Stack. Kein Hinweis.
Wenn Du keine eigene Fehlerbehandlung hast, siehst Du: nichts.
Deshalb brauchst Du:
- saubere Fehlerbehandlung in jedem relevanten Codeblock
- Logging an zentraler Stelle
- RĂŒckmeldung an den Benutzer, ohne ihn zu ĂŒberfordern
Beispiel: Fehlerbehandlung mit zentralem Logger
Public Sub BeispielAktion()
On Error GoTo Fehler
' Code der schiefgehen kann
DoCmd.OpenQuery "qry_UpdateDaten"
Exit Sub
Fehler:
Call FehlerLoggen("BeispielAktion", Err.Number, Err.Description)
MsgBox "Es ist ein Fehler aufgetreten. Bitte IT kontaktieren.", vbExclamation
End Sub
Und dazu eine zentrale Prozedur:
Public Sub FehlerLoggen(Vorgang As String, Fehlernummer As Long, Beschreibung As String)
Dim db As DAO.Database
Set db = CurrentDb
db.Execute "INSERT INTO Fehlerlog (Zeitpunkt, Vorgang, Fehlernummer, Beschreibung, Benutzer) " & _
"VALUES (Now(), '" & Vorgang & "', " & Fehlernummer & ", '" & Replace(Beschreibung, "'", "''") & "', '" & Environ("USERNAME") & "')"
End Sub
So landen Fehler im Log â inklusive Uhrzeit und Benutzer.
Hilft enorm bei der Nachverfolgung.
Erweiterung: Fehlerdetails per E-Mail an Entwickler
Optional mit CDO.Message
oder Outlook-Versand.
Nicht bei jedem kleinen Fehler, aber z.âŻB. bei Err.Number > 1000
.
If Fehlernummer > 1000 Then
Call FehlerMailSenden(Vorgang, Fehlernummer, Beschreibung)
End If
Runtime-Testumgebung aufbauen
Ich empfehle, bei jedem Projekt eine dedizierte Runtime-Testmaschine.
Oder ein Access-Frontend, das per Umschalter in den âRuntime-Modusâ springt (also keine Debug-Fenster, keine Navigationsleiste, kein Ribbon).
Tabelle: Runtime-EinschrÀnkungen und Workarounds
EinschrÀnkung | Beschreibung | Workaround |
---|---|---|
Kein Direktfenster | Kein Debug.Print sichtbar | Logging in Tabelle oder Textdatei |
Keine Entwicklungswerkzeuge | Keine Haltepunkte, kein Watch | Logging + strukturierte Fehlerausgabe |
Keine MenĂŒleiste / Ribbon-Anpassung | Nur einfache BenutzeroberflĂ€che | Benutzerdefiniertes Ribbon vorgeben |
Kein Zugriff auf VBA-Editor | Keine Code-Einblicke | Gute Dokumentation + saubere Fehlerstruktur |
Kein Datei-Ăffnen ĂŒber UI | Kein Dateiauswahldialog | Application.FileDialog mit FehlerprĂŒfung |
Kein Makro-Editor | Ănderungen an Makros nicht möglich | Alles auf VBA umstellen und zentral verwalten |
Mein Setup fĂŒr Runtime-Anwendungen
MaĂnahme | Umsetzung |
---|---|
Fehlererkennung | ĂŒberall On Error GoTo Fehler: |
Logging | eigene Tabelle Fehlerlog |
Nutzerbenachrichtigung | MsgBox mit neutraler Info |
Entwicklerhinweis | E-Mail-Versand optional |
Updates | Deployment ĂŒber Frontend-Updater |
Tests | eigene .accde auf Runtime-Maschine |
Mein Kommentar zur Access Runtime
Die Runtime ist kein Entwicklerfreund â
aber auch kein Gegner.
Wenn Duâs richtig angehst, bekommst Du auch in der Runtime alles raus, was Du brauchst.
Nur eben nicht automatisch. Du musst es Dir bauen.
Sauber. Strukturiert.
Wieâs sich gehört.
No responses yet