PDA

Vollständige Version anzeigen : Fehlermeldung individuell


medi
04.07.2006, 13:18
Hallo Forum,

Ein bekanntes Szenario:
Ein Zahlenfeld, z.B. Monat. Der, der eingibt schreibt einen Buchstaben und bekommt die Meldung:

Sie haben einen Wert eingegeben, der für dieses Feld nicht .... bla bla.

Diese Meldung ist dann mit OK zu quittieren, der Cursor steht dann hinter dem Buchstaben, man muss ihn nach rückwärts überschreiben und kann dann wieder fortfahren.

Gewünschtes Szenario:
Die Meldung mit dem unpassenden Wert, könnte selbst formuliert und damit spezifiziert werden und nach dem OK ist der gesamte Feldinhalt markiert, so dass man direkt weiterschreiben kann.

Geht das und wenn ja, wie.

Würde mich über Anregungen freuen.

medi

CptChaos
04.07.2006, 13:28
Die eigene Meldung solltest Du über die Feldeigenschaften (Gültigkeitsregel und Gültigkeitsmeldung) bewerkstelligen können.

Smaug
04.07.2006, 13:31
...und im Formular kann die in der Tabelle eingestellte Gültigkeitsregel elegant mit Hilfe des Formularereignisses "Bei Fehler" behandelt werden (schau mal hierzu in der Online-Hilfe von Access)

Roland04
04.07.2006, 13:33
markieren kannst du den text mit selLength - zuvor focus auf das feld schieben!

medi
04.07.2006, 14:31
Vielen Dank für die vielen Anregungen. Das mit der Gültigkeitsregel und der SelLength ist schon einmal ein guter Tipp.

Mit dem Ereignis "BeiFehler" komme ich im Moment nicht weiter. Ich habe mal zum Spaß eingegeben:

Private Sub Form_Error(DataErr As Integer, Response As Integer)
Fehlermeldung = "Da ist einFehler"
End Sub

Dadurch wird bei einem Fehler, das leere und damit unsichtbare Feld "Fehlermeldung" mit dem Text gefüllt. Das wäre schon mal ganz gut. Nur, die Meldung, dass ich einen "Wert eingegeben habe, der ... " erscheint trotzdem.

Was mache ich falsch?

medi

Anne Berg
04.07.2006, 21:05
Die Response-Option des Error-Ereignisses erlaubt verschiedene "Antworten", z.B. acDataErrContinue (?) - näheres siehe Access-Hilfe. Im Zweifelsfall Ereigniseigenschaft im Entwurf markieren und F1 drücken!

Mouse
05.07.2006, 08:26
Oder 'Response = 0' eingeben