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ÀnkungBeschreibungWorkaround
Kein DirektfensterKein Debug.Print sichtbarLogging in Tabelle oder Textdatei
Keine EntwicklungswerkzeugeKeine Haltepunkte, kein WatchLogging + strukturierte Fehlerausgabe
Keine MenĂŒleiste / Ribbon-AnpassungNur einfache BenutzeroberflĂ€cheBenutzerdefiniertes Ribbon vorgeben
Kein Zugriff auf VBA-EditorKeine Code-EinblickeGute Dokumentation + saubere Fehlerstruktur
Kein Datei-Öffnen ĂŒber UIKein DateiauswahldialogApplication.FileDialog mit FehlerprĂŒfung
Kein Makro-EditorÄnderungen an Makros nicht möglichAlles auf VBA umstellen und zentral verwalten

Mein Setup fĂŒr Runtime-Anwendungen

MaßnahmeUmsetzung
FehlererkennungĂŒberall On Error GoTo Fehler:
Loggingeigene Tabelle Fehlerlog
NutzerbenachrichtigungMsgBox mit neutraler Info
EntwicklerhinweisE-Mail-Versand optional
UpdatesDeployment ĂŒber Frontend-Updater
Testseigene .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.

Categories:

Tags:

No responses yet

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert