Aktualisieren, Einfügen und ? -Zeichen in DBEXECUTE
?
beschrieben.Angenommen, Sie haben eine leere SQL-Tabelle mit zwei Spalten: ID und Name. ID ist der Primärschlüssel.
Sie haben folgende Formel in einer ungeschützten Zelle:
=DBEXECUTE("configdb", "SELECT items.id,items.name FROM items WHERE ID=1","INSERT into items (ID,Name) VALUES (1,?)")
Geben Sie im Ansichtsmodus in die Zelle den Wert 1 ein, und drücken Sie die Eingabetaste.
Da die Tabelle leer ist und keine ID mit dem Wert 1 enthält, wird die INSERT-Anweisung ausgeführt. Die INSERT-Anweisung erstellt folgende Zeile in der Tabelle:
Zeilennummer | ID | Name |
---|---|---|
1 | 1 | 1 |
Durch Eingabe von 1 haben Sie die ID angegeben. Das Zeichen ?
führt dazu, dass dieser Wert in die Spalte Name eingetragen wird.
Sie geben nun 2 in die Zelle ein. Da ID 1 vorhanden ist, wird die INSERT-Anweisung nicht ausgeführt. Stattdessen wird die Zeile mit ID 1 aktualisiert, wie in der folgenden Tabelle angezeigt wird:
Zeilennummer | ID | Name |
---|---|---|
1 | 2 | 1 |
Da die INSERT-Anweisung nicht ausgeführt wird, wird die Spalte Name nicht aktualisiert.
Geben Sie nun in der Zelle den Wert 3 an. Da ID 1 nicht vorhanden ist, wird die INSERT-Anweisung ausgeführt und eine neue Zeile hinzugefügt:
Zeilennummer | ID | Name |
---|---|---|
1 | 1 | 3 |
2 | 2 | 1 |
Die Werte 1 und 3 ergeben sich aus dem folgenden Teil der Formel: VALUES (1,?)
.
Wenn Sie nun 4 angeben, ist ID 1 erneut vorhanden und die Zeile mit ID 1 wird aktualisiert.
Zeilennummer | ID | Name |
---|---|---|
1 | 2 | 1 |
2 | 4 | 3 |
Wenn Sie 5 angeben, wird eine weitere Zeile hinzugefügt:
Zeilennummer | ID | Name |
---|---|---|
1 | 1 | 5 |
2 | 2 | 1 |
3 | 4 | 3 |