none
A2010: Schlüsselverletzung beim Schliessen des Formulars über das Fenster-Kreuzchen

    Frage

  • Hallo Leute

     

    Ein Access 2010-Formular enthält neben normalen Textfeldern auch 4 Comboboxen (Schlüsselfelder). Beim Schliessen des Formulars über den Button läuft in jeder Situation alles normal. Beim abbrechen habe ich auch vorsichtshalber ein 'if me.dirty then me.undo' eingebaut.

     

    Wenn der Benutzer nun einen neuen Datensatz anlegen will, das Formular dann aber doch ohne Eingabe über das Kreuzchen im Fensterkopf schliesst, kommt eine Fehlermeldung wegen Schlüsselverletzung. Diese habe ich in 'Form_Err' nun unterdrückt (DatErr = 3101 und danach 2169). Man könnte ja das Systemmenu einfach deaktivieren und gut ist weil ja über die Buttons alles funktioniert.

     

    Bloss möchte ich herausfinden, was ich dagegen tun kann weil diese und die oben erwähnte Lösungen nur ein Flicks sind. Ich vermute, dass der Fehler dadurch kommt, weil in den Schlüsselfeldern nichts drin steht. Ich habe bisher keine Möglichkeit gefunden, vor der Fehlermeldung einzugreifen.

     

    Hat jemand eine Idee?

     

    Dankeschön und Gruss

    Nitrox4444

    Montag, 8. Juli 2013 10:15

Antworten

  • Hallo Thomas,

    vielen Dank, das Ereignis hatte ich übersehen. Damit kann man den Fehler tatsächlich rechtzeitig abfangen.

    Allerdings konnte ich das Problem mittlerweile auch direkt beheben. In der Form_Current-Ereignisprozedur hatte ich eine Zuweisung gemacht, die natürlich auch bei neuen Datensätzen gilt. Dadurch wurde der neue Datensatz angelegt und somit fehlten ihm einige Informationen in den Schlüsselfeldern.

    Schönen Gruss

    Nitrox444

    • Als Antwort markiert Nitrox444 Samstag, 13. Juli 2013 12:31
    Dienstag, 9. Juli 2013 21:48

Alle Antworten

  • Wenn der Benutzer nun einen neuen Datensatz anlegen will, das Formular dann aber doch ohne Eingabe über das Kreuzchen im Fensterkopf schliesst, kommt eine Fehlermeldung wegen Schlüsselverletzung. Diese habe ich in 'Form_Err' nun unterdrückt (DatErr = 3101 und danach 2169). Man könnte ja das Systemmenu einfach deaktivieren und gut ist weil ja über die Buttons alles funktioniert.

    Bloss möchte ich herausfinden, was ich dagegen tun kann weil diese und die oben erwähnte Lösungen nur ein Flicks sind. Ich vermute, dass der Fehler dadurch kommt, weil in den Schlüsselfeldern nichts drin steht. Ich habe bisher keine Möglichkeit gefunden, vor der Fehlermeldung einzugreifen.

    Hallo!

    Wenn Du auf das X klickst, versucht Access den neu angelegten Datensatz zu speichern. Dabei wird das Before-Update-Ereignis aufgerufen. Hier könntet Du Code einfügen, der den User fragt, ob er die Eingabe vervollständigen oder den Datensatz verwerfen will.

    HTH


    Thomas@Team-Moelle.de

    Blog: Blog.Team-Moeller.de

    Homepage: www.Team-Moeller.de


    • Bearbeitet Thomas Möller MVP Montag, 8. Juli 2013 16:06 Formatierung
    • Als Antwort markiert Nitrox444 Dienstag, 9. Juli 2013 21:49
    • Tag als Antwort aufgehoben Nitrox444 Dienstag, 9. Juli 2013 21:51
    Montag, 8. Juli 2013 16:05
  • Hallo Thomas,

    vielen Dank, das Ereignis hatte ich übersehen. Damit kann man den Fehler tatsächlich rechtzeitig abfangen.

    Allerdings konnte ich das Problem mittlerweile auch direkt beheben. In der Form_Current-Ereignisprozedur hatte ich eine Zuweisung gemacht, die natürlich auch bei neuen Datensätzen gilt. Dadurch wurde der neue Datensatz angelegt und somit fehlten ihm einige Informationen in den Schlüsselfeldern.

    Schönen Gruss

    Nitrox444

    • Als Antwort markiert Nitrox444 Samstag, 13. Juli 2013 12:31
    Dienstag, 9. Juli 2013 21:48