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?
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 (https://learn.microsoft.com/de-de/office/vba/language/reference/user-interface-help/on-error-statement)
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.