Hallo,
ich habe ein Endlosformular. In diesem Formular gibt es Checkboxen. Wird eine Checkbox vom User angeklickt / angehakt, so wird im Hintergrund der Datensatz via SQL akualisiert: (UPDATE AngebotAuftrag_Inhalte SET dat_Kontrolle2 = DATE(),Vertr_Kontrolle2 =1 WHERE ID_Inhalte=16078).
Das nächste Feld ist ein Textfeld. Hier muss der User eingaben machen. Wenn der User dort seine Eingabe tätigen möchte erscheint sofort folgende Hinweismeldung:
"Die Daten wurden geändert.
Ein anderer Benutzer hat diesen Datensatz und die von ihm vorgenommenen Änderungen gespreichert, bevor Sie versucht haben, Ihre Änderungen zu speichern.
Bearbeiten Sie den Datensatz erneut."
Ich habe nun schon im VBA Code bevor der SQL Code ausgeführt wird die Anweisung docmd.runcommand accmdsaverecord erfasst. Das gleiche auch direkt nach Ausführung des SQL Codes wie auch bei den Ereignissen "vor Änderung" und "bei Fokuserhalt" des nächsten Steuerelements.
Die Meldung erscheint immer noch.
Was kann ich tun, um die Meldung zu verhindern?
Hallo,
ist das Formular gebunden oder ungebunden ?
Wenn es gebunden ist, ist die Aktualisierung per VBA/SQL doppelt gemoppelt und führt zum genannten Fehler.
Ziel ist es, dass im Datensatz vermerkt werden soll, wer Änderungen vorgenommen hat. Gibt es einen Lösungsansatz?
Die zu ändernden Tabellenfelder habe ich nicht im Formular. Muss ich diese in diesem Fall zwingend aufnehmen und die Felder mit me.Steuerelement = ... füllen?
Hallo,
nimm die beiden Felder in das Form (Datenherkunft) auf und setze sie ggfls. auf unsichtbar.
Im AfterUpdate- (oder Click-) Ereignis des KKs:
Sub KK_Click()
Me!dat_Kontrolle2 = Date
Me!Vertr_Kontrolle2 =1
End Sub
Die Felder gehören mit in die Datenherkunft des Formulars, müssen ab nicht an ein Steuerelement gebunden sein.
allet klar. Ich danke Euch.