Back to list
DerGueni

vba-error-debugger

by DerGueni

HTML Formular Bearbeitung

0🍴 0📅 Jan 25, 2026

SKILL.md


name: VBA Error Debugger description: Debuggt VBA-Fehler in MS Access und fügt professionelles Error-Handling hinzu when_to_use: VBA Fehler, Runtime Error, Error 91, Error 3075, Access crasht, Debug, Fehlerbehandlung version: 1.0.0

VBA Error Debugger für MS Access

Häufige Access VBA Fehler

Error #BeschreibungLösung
91Object variable not setSet obj = ... fehlt
94Invalid use of NullNz() verwenden
3075Syntax error in querySQL prüfen, Anführungszeichen
3061Too few parametersFeldname falsch geschrieben
2501Action was cancelledNormal bei Cancel, ignorieren
3021No current recordIf Not rs.EOF prüfen
2046Macro/action not availableDoCmd in falscher Ansicht
3265Item not found in collectionFeldname existiert nicht

Error-Handling Template

Private Sub btnAction_Click()
On Error GoTo Err_Handler

    ' === CODE HIER ===
    
Exit_Handler:
    Exit Sub
    
Err_Handler:
    Select Case Err.Number
        Case 2501  ' Cancelled - ignorieren
            Resume Exit_Handler
        Case Else
            MsgBox "Fehler " & Err.Number & ": " & Err.Description, _
                   vbCritical, "Fehler in btnAction_Click"
    End Select
    Resume Exit_Handler
End Sub

Debug-Strategien

1. Immediate Window (Strg+G)

Debug.Print "Variable x = " & x
Debug.Print "RS Count: " & rs.RecordCount
? CurrentDb.TableDefs.Count

2. Breakpoints setzen

  • F9 auf Zeile → Breakpoint
  • F8 → Einzelschritt
  • F5 → Weiter bis nächster Breakpoint

3. Variablen überwachen

  • Debug → Add Watch
  • Locals-Fenster für alle lokalen Variablen

SQL-Fehler debuggen

' SQL vor Ausführung ausgeben
Dim strSQL As String
strSQL = "SELECT * FROM tblMitarbeiter WHERE ID = " & lngID
Debug.Print strSQL  ' <-- Im Immediate Window prüfen!
CurrentDb.Execute strSQL

Null-Werte sicher behandeln

' FALSCH:
strName = Me.txtName

' RICHTIG:
strName = Nz(Me.txtName, "")
lngID = Nz(Me.txtID, 0)

Recordset sicher verwenden

Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM tbl")

If Not rs.EOF And Not rs.BOF Then
    rs.MoveFirst
    Do While Not rs.EOF
        Debug.Print rs!Feldname
        rs.MoveNext
    Loop
End If

rs.Close
Set rs = Nothing

Logging-Funktion

Public Sub LogError(strProc As String, lngErr As Long, strDesc As String)
    Dim strPath As String
    strPath = CurrentProject.Path & "\ErrorLog.txt"
    
    Open strPath For Append As #1
    Print #1, Now() & " | " & strProc & " | Error " & lngErr & ": " & strDesc
    Close #1
End Sub

Dateipfade

  • VBA-Module: 01_VBA/
  • Access Frontend: 0_Consys_FE_Test.accdb

Score

Total Score

50/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon