Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Inhalt eines Kommentarfelds im Formular wird nicht aktualisiert - zu simpel?

Begonnen von ironpete, Mai 05, 2014, 18:14:03

⏪ vorheriges - nächstes ⏩

ironpete

Servus,

in einem Formular gibt es neben ein paar Komboboxen ein Kommentarfeld txt_Kommentar. Dieses txt_Kommentar ist gebunden an eine schlichte tbl_Kommentar mit den Spalten K_ID und Kommentar.

Der user soll die Komboboxen auswählen, einen Kommentar hinterlassen und auf den Knopf "Speichern" klicken, der eine Anfügeabfrage auslöst.  Das Kommentarfeld wird immer als letztes ausgefüllt und danach der "Speichern" Knopf gedrückt. Alle Komboboxen und das txt_Kommentar werden danach auf NULL gesetzt.

Problem: Ich muss immer 2 Mal auf "Speichern" klicken, damit der Kommentar in die tbl_Kommentare geschrieben wird. Beim ersten Klick ist immer noch der alte Kommentar in der tbl_Kommentare. Wenn ich zuerst das txt_Kommentar und danach die Komboboxen ausfülle, wird tbl_Kommentare gleich aktualisiert. Das gleiche wenn ich txt_Kommentar als letztes ausfülle, vor dem speichern aber noch in eine Kombobox klicke.

Ich nehme an, mir fehlt ein Ereignis, das nach dem Ausfüllen gestartet werden muss und die tlb_Kommentare noch vor dem speichern aktualisiert. Ich habe folgende Ereignisse ausprobiert:

Private Sub txt_Kommentar_AfterUpdate()
Me.Requery
End Sub

Private Sub txt_Kommentar_Exit(Cancel As Integer)
Me.Requery
End Sub


hat aber nicht geholfen. Ist "me.requery" vielleicht falsch?

MzKlMu

Hallo,
ich verstehe das gerade nicht. Me.Requery funktioniert nur mit einem gebundenen Formular, ein gebundenes Formular benötigt aber weder einen Speichern Button noch ein Anfügeabfrage, da reicht ein einfacher Datensatzwechsel oder das Schließen des Formulars.
Mir scheint, Du programmierst etwas was man nicht benötigt.
Ebenso scheint es mir unlogisch, dass die Kommentartabelle nur aus 2 Feldern besteht.
Es kann doch nicht sein, dass der Kommentar keinen Bezug zu einer anderen Tabelle hat, oder wie muss man das verstehen.
Gruß Klaus

database

zHallo,

ZitatIch muss immer 2 Mal auf "Speichern" klicken, damit der Kommentar in die tbl_Kommentare geschrieben wird.

In Verbindung mit der nächsten Aussage ...

ZitatWenn ich zuerst das txt_Kommentar und danach die Komboboxen ausfülle, wird tbl_Kommentare gleich aktualisiert

... und dem darauffolgendem Satz sollte dir da nicht schon was dämmern?  ;)

Hmmm... der Datensatz wird dann in die Tabelle geschrieben, wenn er verlassen wird ... und das passiert, wenn du das einzige gebunde Feld (schließe das aus deinen Schilderungen) deines Fomulars verlässt - wenn dieses Feld den Focus verloren hat.

MzKlMu hat darauf ebenfalls schon hingewiesen:  " da reicht ein einfacher Datensatzwechsel oder das Schließen des Formulars"








ironpete

Erklärung:
Im Startformular wähle ich über zwei Kombifelder Werk und Maschine aus. Dann werden in einem UF Detaildaten dazu angezeigt (Kommen aus tbl_Rohdaten). Dort wähle ich einen Datensatz aus.
Danach wähle ich im Startformular in 3 Kombifeldern (gebunden jeweils an eine separate tbl) Attribute aus und möchte noch einen Kommentar im Feld txt_Kommentar abgeben.

Wenn das erledigt ist, klicke ich auf einen Speichern Knopf, der eine Anfügeabfrage auslöst.
Die Datenzeile (also die Rohdaten) aus dem UF, die Auswahlen aus den Kombifeldern und der Kommentar werden in eine tbl_history angefügt. Im Anschluss wird die Datenzeile per Löschabfrage aus den Rohdaten gelöscht und das UF aktualisiert.

Danach wähle ich wieder einen Datenzeile im UF, wähle die Kombifelder und trage einen neuen Kommentar ins txt_Kommentar. Der alte Kommentar in der tbl_Kommentare wird überschrieben.

Mir hat es schon gedämmert, dass der Kommentar erst bei Verlassen weggeschrieben wird. Ich habe deswegen ein me.requery bei "exit" Ereignis versucht, hat aber nicht geholfen. Vielleicht ist das requery auch falsch, bin eher Anfänger.

Das Formular werde ich nicht schließen und den Datensatz wechseln kann ich auch erst, wenn ich den gerade ausgwählten samt Kombifeldauswahlen und Kommentar in die tbl_history weggeschrieben habe (was ja durch Drücken des speichern Knopfs ausgelöst wird).

Hoffe das war verständlich. Habt ihr trotzdem eine Idee, wie ich es machen könnte, dass das Kommentarfeld noch vor Auslösen der Anfügeabfrage weggeschrieben wird?

ironpete

Yeah, ich hab's  ;D

Private Sub txt_Kommentar_LostFocus()
Me.Dirty = False
End Sub

Danke für eure Zeit und Mühen!