none
Auswahl Kombinationsfeld löschen

    Allgemeine Diskussion

  • Hallo,

    ich habe immer das gleiche Problem wenn ich im Before Update Ereignis Abbrechen möchte und die Auswahl eines Kombinationsfeldes zurücksetzen möchte kommt die Meldung:

    Die Funktion... hindert Microsoft Office Access daran die Daten in dem Feld zu speichern

    Habe schon fast alles probiert

    Me!combi1 = ""

    Me!combi1.requery

    Me!combi1.Text = ""

    etc.

     

    Was mach ich falsch?

    Gruß Andreas

     

    PS: ich vergaß, Combi ist ungebunden, Datenherkunft eine Abfrage.
    Freitag, 17. Juni 2011 20:10

Alle Antworten

  • Hallo Andreas

    Andreas Vogt wrote:

    ich habe immer das gleiche Problem wenn ich im Before Update Ereignis
    Abbrechen möchte und die Auswahl eines Kombinationsfeldes zurücksetzen
    möchte kommt die Meldung:

    Die Funktion... hindert Microsoft Office Access daran die Daten in dem
    Feld zu speichern

    Habe schon fast alles probiert

    Me!combi1 = ""

    Me!combi1.requery

    Me!combi1.Text = ""

    Es wäre (und wir haben das hier sicher schon einige Male geschrieben) besser zu erläutern, was Du machen willst, nicht, wie Du es implementieren willst.

    Falls es hier um eine Eingabevalidierung oder Eingebe vervollständigung handelt:
    Das Before_Update Ereignis eines Controls ist ein denkbar schlechter Ort, um in Eingaben zugreifen. Besser geeignet sind das After_Update Ereignis des Controls oder das Before_Update Ereignis des Formulars.

    Ich ziehe es vor, dafür das Before_Update Ereignis des Formulars zu benutzen. Das ermäglicht, dass der Benutzer mal reinhaut und der Arbeitsfluss nicht dauernd unterbrochen wird. Wenn er dann speichern will, kontrolliere ich, ob alles ok ist. Die "guten" Benutzer wirden dann kaum mal eine Meldung sehen, weil sie die Daten vor dem Speichern so richtigstellen, dass diese auch passen. Die "schlechten" oder "unerfahrenen" werden halt dann und wann mal was falsches eingeben, später aber wieder korrigieren. So muss ich erst meckern, wenn er speichern will und der Benutzer kann seinen Arbeitsfluss selber kennenlernen und optimieren, bis alles passt.

    Gruss
    Henry

    Dienstag, 21. Juni 2011 02:53
  • Hallo Henry,

    ja es geht schließlich um die Validierung einer Auswahl im Kombinationsfeld.

    Ich habe allerdings mehrere Kombinationsfelder die abgefragt werden. Ich hab die Überrüfung jetzt im Before Update und das zurücksetzen im After Update realisiert.

    Gruß Andreas

    Dienstag, 21. Juni 2011 06:33
  • Hallo Andreas

    Andreas Vogt wrote:

    ja es geht schließlich um die Validierung einer Auswahl im
    Kombinationsfeld.

    Ich habe allerdings mehrere Kombinationsfelder die abgefragt werden. Ich
    hab die Überrüfung jetzt im Before Update und das zurücksetzen im After
    Update realisiert.

    Dann hättest Du auch gleich beides im AfterUpdate machen können. After Update auf Control-Ebene heisst ja nicht, dass die Daten nun weggeschrieben sind, nur dass die Eingabe im Control als abgeschlossen betrachtet werden darf. Es gibt IMP keinen Grund, die Überprüfung in das Before Update zu verlegen, oder übersehe ich etwas?

    Gruss
    Henry

    Mittwoch, 22. Juni 2011 04:42
  • Hallo Henry,

    mir ging es dabei eigentlich nur darum dass der Focus in dem Control bleibt falls abgebrochen wird. Das Form ist nicht an Datenquelle gebunden. Oder übersehe ich dabei vieleicht etwas?

    Gruß Andreas


    http://www.AccessBlog.de
    Mittwoch, 22. Juni 2011 05:56
  • Du schriebst im OP:

    "... hindert Microsoft Office Access daran die Daten in dem Feld zu speichern..."

    Diese Meldung sollte eigentlich nur kommen, wenn das Formular an eine Datenquelle gebunden ist. Und was es mit dem Focus auf sich haben könnte, was Du jetzt schreibst, weiss ich auch nicht so genau.
    Du kannst ja im Fehlerfall auch im AfterUpdate Ereignis den Focus wieder auf das Control zurücksetzen. (Me!DeinCombi.SetFocus, allenfalls sogar noch ein Me!DeinCombi.DropDown nachschieben)

    Gruss
    Henry

    Mittwoch, 22. Juni 2011 06:28