Seite 1 von 1

Beim Datensatzspeichern wird erste Zelle gelöscht

Verfasst: Di, 08.04.2014 11:38
von Marla
Hallo an alle!
Ich habe:
-Windows 7 Home Premium 64 Bit
-MySQL (V. 5.1) Datenbank
-MySQL Connector 1.0.1
-und eigentlich benutze Base aus LibreOffice 4.0.6.2 als grafische Oberfläche für Datenbank
-2jährige Erfahrung damit (von Anfang und Erstellung bis Support)
Ich habe folgendes Problem:
ich habe so wunderbares (wie immer) Makros geschrieben mit:

Code: Alles auswählen

sSQLStr = "UPDATE ""table1"" SET ""col2"" = '" + dTest + "' WHERE ""col1"" = '" + iNum + "'"
oSql.executeUpdate (sSQLStr)
Makros steht hinter dem Listenfeld und bei "Modifiziert" Ereignis passiert. Im Hintergrund laufen zwei Tabellen in zwei glechberechtigte Formulare. Mithilfe von noch paar andere Makros wähle ich ein Datensatz aus table2, nehme Wert dTest, wähle in andrem Formular/Listenfeld aus table1 Wert iNum und ich möchte gerne dass in table1(col1 ist hier PrimaryKey) in der Zeile, wo iNum steht, in col2 Wert dTest geschrieben wird. SQL Statement fuktioniert - habe separate getestet, macht alles Prima. Beim Debug in Makros macht er auch alles Prima, aber anschließend drücke ich auf Datensatz speichern in Navigationsleiste - Formular und dann in table1 in erste Zelle (nicht Zeile, nur Zelle mit PK) erscheint "0" statt Nummer.

Re: Beim Datensatzspeichern wird erste Zelle gelöscht

Verfasst: Di, 08.04.2014 22:31
von RobertG
Hallo Marla,

wenn ich das richtig verstanden habe soll das Makro in einen bereits vorhandenen Datensatz etwas eintragen. Der Primärschlüssel ist eine Zahl.
Welchen Text bekommst Du, wenn Du im Makro
msgbox sSQLStr
ablaufen lässt. Steht da etwas anderes als '0' für iNum?
Wird nachher tatsächlich col2 dort gespeichert, wo es hin soll?
Drückst Du auf "Datensatz speichern", obwohl die entsprechenden Werte nicht in dem Formular stehen? Wenn eine Änderung in der Datenbank am Formular vorbei vorgenommen wurde, dann muss das Formular davon erfahren. Du musst also einen reload des Formulars durchführen oder die Felder im Formular entsprechend ändern. Das geht mit so etwas wie
oFeld1.BoundField.updateInt(iNum)
oFeld2.BoundField.updateString(dTest)

Gruß

Robert

Re: Beim Datensatzspeichern wird erste Zelle gelöscht

Verfasst: Mo, 14.04.2014 16:39
von Marla
RobertG,

vielen vielen Dank für deine Hilfe und Antwort!
Ich habe noch beim Export der existierenden Tabelle bei mir Fehler gefunden, also - falsche Datentyp eingelegt, deswegen konnte ich keine richtige Beziehung zwischen Tabellen herstellen und musste Umwege suchen.

Marla