PDA

Vollständige Version anzeigen : Fehlermeldungen abfangen


oli k
21.06.2001, 13:50
Hallo,

ich hab folgendes Problem: Ich möchte Warnmeldungen und Fehlermeldungen in Formularen unterdrücken wie z.B.: "Das Feld x darf keinen Null-Wert enthalten, da die required Eigenschaft für dieses Feld true hat." Das Format des Felds ist hh:nn, also Stunden:Minuten. Ich habe im Forum schon ähnliches gefunden, das funktioniert mit diesem Format aber nicht.
Ausserdem möchte ich folgende Fehlermeldung abfangen und eine eigene einsetzen: " Der Datensatz kann nicht hinzugefügt werden, da ein Datensatz in der tabelle x in Beziehung stehen muss", d.h. man verletzt die regeln der referentiellen Integrität.

kann mir jemand weiterhelfen, da ich schon alles mögliche über Fehler abfangen gefunden habe, aber nichts, was mir weiterhilft. vielleicht etwas in der Art Stammverzeichnis aller Fehler, und wie man sie abfängt.

vielen dank im Voraus für Eure Hilfe,

oli

Daniello
21.06.2001, 13:52
Schau dir das Err-Object in Visual Basic an...

Daniel

Morli
21.06.2001, 13:57
Hallo Oli,

diese Fehler treten doch immer bei irgend einer Aktion auf, die du ausgeführt hast.
Z.B. Nach Aktualisieren oder Beim Verlassen, u.s.w.

Bei diesen Ereignissen kannst Du dann im Code die Fehler abfangen und z.B. mit
If Err.Number = xxxx then
msgbox "Sie haben eine vekehrte Eingabe getätigt!"
End If

Wobei xxxx die Nummer Deines Laufzeitfehlers!

Gruß

Rainer :)

Manuela Kulpa
21.06.2001, 17:01
<font face="Verdana" size="2">Hallo Oli!

Überprüfe diese Fehler im Error-Ereignis des Formular's (Bei Fehler). Durch Ausführen einer Ereignisprozedur bei Eintreten des Ereignisses Error kannst du eine Fehlermeldung von Microsoft Access abfangen und stattdessen eine benutzerdefinierte Meldung anzeigen, die für deine Anwendung geeigneter ist. Dies gilt nicht für Laufzeitfehler in Visual Basic.

Wenn ich davon ausgehen kann, dass du den Fehler 3314 meinst (Das Feld X kann keinen Null-Wert enthalten, da die Required-Eigenschaft für dieses Feld den Wert True hat. Geben Sie in das Feld einen Wert ein.), dann könntest du folgendermassen vorgehen:

Stelle die Eigenschaft Bei Fehler in deinem Formular auf [Ereignisprozedur] ein und klicken dann auf die Aufbauen-Schaltfläche. Setzte folgendes in der Prozedur Form_Error ein.</font>

<FONT SIZE=1 FACE=Courier New><FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Sub</FONT> Form_<FONT COLOR=#000080>Error</FONT>(DataErr <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>, Response <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>)

Select Case DataErr
<FONT COLOR=#008000>' Fehler Required-Eigenschaft</FONT>
Case <FONT COLOR=#000080>Is</FONT> = 3314
<FONT COLOR=#008000>' Ignorieren des Fehlers und Fortsetzen ohne</FONT>
<FONT COLOR=#008000>' Anzeige der Microsoft Access-Standardfehlermeldung.</FONT>
Response = acDataErrContinue
MsgBox "Hey, du weisst doch, dass das Feld" _
& "nicht leer bleiben darf!", vbInformation, "Du Nase"
<FONT COLOR=#008000>'Für weitere Fehler die du abfangen möchtest</FONT>
<FONT COLOR=#008000>'Case is = XXX</FONT>

<FONT COLOR=#008000>'Case Else</FONT>
<FONT COLOR=#008000>'Hier könnte ein Aufruf für eine Fehlerbehandlungsroutine sein</FONT>
<FONT COLOR=#000080>End</FONT> Select

<FONT COLOR=#008000>'Falls du nicht genau weisst, welche Fehlernummer es ist</FONT>
<FONT COLOR=#000080>Debug.Print</FONT> DataErr

<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>Sub</FONT></FONT>

<font face="Verdana" size="2">HTH</font>

oli k
22.06.2001, 12:22
Vielen Dank Manuela,

das hat mir sehr geholfen. Meine frage ist nun noch:

Gibt es eine Liste mit allen Fehlern, nicht die Laufzeitfehler, sondern die Datenfehler, wie z.B. Fehler Nummer 3314. Ich finde nirgens eine Liste in der ACC Hilfe und auch nirgens im Internet und keinen Code zum provozieren solcher Fehler.

Vielen Dank für Eure Hilfe.

oli

Birgit Dannenberg
22.06.2001, 12:27
Hallo!

Einfaches Eintippen der Nummer 3314 in der Suchmaske der OH führt direkt zu einer entspr. Auflistung. :eek:

Gruss Birgit