UPDATE Anweisung in Base Makro

Hallo Listenleser und Listenschreiber,

ich habe angefangen mich in die Makroprogrammierung für meine Base-Datenbank einzuarbeiten.
Öffnen und Auslesen von Daten funktioniert scheinbar so wie ich es will.
Beim UPDATE der Tabelle 'Personen' habe ich aber ein Problem. Ich denke es hängt mit der korrekten
Schreibweise der UPDATE-Anweisung zusammen. Aber leider finde ich nirgends so detailliert, wie ich
bei SET die Spalten aneinanderreihe. Und mit den ganzen " und CHR(34) kommt man ja schnell mal
durcheinander.
Also hier mein Problembereich:

SQL-Anweisung im Makro

*Sql = "UPDATE " + CHR(34)+"Personen"+CHR(34) + " SET " + CHR(34)+"PLZ"+CHR(34) + _
     " = "+ sPLZ + ", " + CHR(34)+"Ort"+CHR(34) + " = " + sOrt + ", " + CHR(34)+"Bundesland"+CHR(34) + _
     " = " + sBundesland + " WHERE " + CHR(34)+"P_ID"+CHR(34) + " = "+ID_Personen*

Ausgabe mit MsgBox Sql
*UPDATE "Personen" SET "PLZ" = 97851, "Ort" = Rothenfels, "Bundesland" = Bayern WHERE "P_ID" = 4*

dann bei der Ausführung der Anweisung

*AbfrageErgebnis_1 = SQL_Anweisung.executeQuery(Sql)*

kommt der ...

BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.sdbc.SQLException
Message: Column not found: ROTHENFELS.

Bin im Moment ratlos und dankbar für jede hilfreiche Antwort.

Gruß Lutz

Hallo Lutz,

SQL-Anweisung im Makro

*Sql = "UPDATE " + CHR(34)+"Personen"+CHR(34) + " SET " +
CHR(34)+"PLZ"+CHR(34) + _
     " = "+ sPLZ + ", " + CHR(34)+"Ort"+CHR(34) + " = " + sOrt + ", " +
CHR(34)+"Bundesland"+CHR(34) + _
     " = " + sBundesland + " WHERE " + CHR(34)+"P_ID"+CHR(34) + " =
"+ID_Personen*

Ausgabe mit MsgBox Sql
*UPDATE "Personen" SET "PLZ" = 97851, "Ort" = Rothenfels, "Bundesland" =
Bayern WHERE "P_ID" = 4*

So darf die Anweisung nicht aussehen. Bei Zahlen mag das noch angehen,
Text aber immer in Hochkommata setzen. Am sichersten ist das bei allen
Variablen, die Du einsetzt. Die Datenbank kümmert sich dann darum, dass
daraus Zahlen, Texte, Datumswerte usw. erstellt werden.

Ich habe im folgenden Code auch CHR(13) zugunsten der Verdoppelung der
Anführungszeichen raus geschmissen: