von Toxitom » Di, 26.09.2006 08:30
Hey Sarotti,
Du musst zunächst das System intern verstehen: Ein Formular erzeugt intern einen ResultSet auf der Basis einer SQL Abfrage. Dieser Resultset enthält nun alle Daten. Das Formular wiederum hat Kontrollelemente, die den Inhalt eines Feldes des Resultsets darstellen, quasi als Kopie.
Die Methode updateRow() speichert die Daten der aktuellen Reihe (Datensatz) des Resultsets zurück in die Datenbank. In dem Schritt wird die Reihe aber nicht "ubgeglichen und upgedatet" mit den in den Kontrollfeldern angezeigten Werten.
Hast du diese also geändert, wurde der Resultset noch lange nicht geändert - und die alten Daten werden gespeichert.
Was du machen kannst:
Nicht nur die Anzeige der Textfelder per Makro ändern, sondern auch die Inhalte des Resultsets, dann sollte es eigentlich funktionieren.
Also, einfach eine Zeile ergänzen, nämlich da :
Code: Alles auswählen
if sText(n)<>"" then
sTextFeld.text=sText(n)
oText(n).text=""
oForm.updateString(1+ n, sText(n)) 'Resultset wird verändert
end if
das "1+n" musst du natürlich anpasen auf die passende Splate
Viele Grüße
Thomas
Hey Sarotti,
Du musst zunächst das System intern verstehen: Ein Formular erzeugt intern einen ResultSet auf der Basis einer SQL Abfrage. Dieser Resultset enthält nun alle Daten. Das Formular wiederum hat Kontrollelemente, die den Inhalt eines Feldes des Resultsets darstellen, quasi als Kopie.
Die Methode updateRow() speichert die Daten der aktuellen Reihe (Datensatz) des Resultsets zurück in die Datenbank. In dem Schritt wird die Reihe aber nicht "ubgeglichen und upgedatet" mit den in den Kontrollfeldern angezeigten Werten.
Hast du diese also geändert, wurde der Resultset noch lange nicht geändert - und die alten Daten werden gespeichert.
Was du machen kannst:
Nicht nur die Anzeige der Textfelder per Makro ändern, sondern auch die Inhalte des Resultsets, dann sollte es eigentlich funktionieren.
Also, einfach eine Zeile ergänzen, nämlich da :
[code]if sText(n)<>"" then
sTextFeld.text=sText(n)
oText(n).text=""
oForm.updateString(1+ n, sText(n)) 'Resultset wird verändert
end if [/code]
das "1+n" musst du natürlich anpasen auf die passende Splate :-)
Viele Grüße
Thomas