Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Fehlerbehandlung greift nicht

Begonnen von KonradR, Januar 25, 2025, 08:23:25

⏪ vorheriges - nächstes ⏩

KonradR

Hallo liebe Accessfreunde,

ich möchte den Fehler 3022 abfangen. Dazu habe ich beim Ereignis BEFORE-Update des betreffenden Formulars folgende Testprozedur eingefügt:
Private Sub Form_BeforeUpdate(Cancel As Integer)
    MsgBox Me.cboProdukt.Value
   
    On Error GoTo FehlerNummerPruefen
   
FehlerNummerPruefen:
        MsgBox "Hallo hier ist Fehler " & Err.Number
End Sub
Allerdings wird die Meldung "Hallo hier ist Fehler 0" angezeigt und dann tritt der Fehler doch auf. Wie kann ich ereichen, dass der Fehler 3022 angezeigt wird, wenn er auftritt?

knobbi38

Hallo Konrad,

das ist doch keine vollständige Fehlerbehandlung! Gehe einfach mal im Einzelschritt diesen Code durch, dann wirst du selber sofort auf dein Problem stoßen, was da falsch läuft.

Den Fehler 3022 dürftest du wahrscheinlich nur im Form_Error Ereignis abfangen können, da es sich um einen Verstoß gegen einen SQL Constraint handelt, z.B. einem eindeutigen Index auf einem Feld.

Gruß Knobbi38

https://learn.microsoft.com/de-de/office/vba/language/reference/user-interface-help/on-error-statement

KonradR

Zitat von: knobbi38 am Januar 25, 2025, 12:21:08Den Fehler 3022 dürftest du wahrscheinlich nur im Form_Error Ereignis abfangen können, da es sich um einen Verstoß gegen einen SQL Constraint handelt, z.B. einem eindeutigen Index auf einem Feld.
Danke. Das habe ich auch gerade herausgefunden und so gelöst:
Hallo liebe Accessfreunde,

ich habe noch ein bisschen recherschiert und eine Lösung gefunden. (Hätte ich vorher machen sollen).
Diese Lösung hier funktioniert:
Private Sub Form_Error(DataErr As Integer, Response As Integer)

    If DataErr = 3022 Then
        Response = acDataErrContinue
        MsgBox "Form_Error_Hallo hier ist Fehler " & DataErr
    End If

End Sub

Zitat von: knobbi38 am Januar 25, 2025, 12:21:08https://learn.microsoft.com/de-de/office/vba/language/reference/user-interface-help/on-error-statement
Danke. Da habe ich einiges  weggelassen. Das schaue ich mir noch mal genauer an.