Uppdatera, infoga och ?- tecknet i DBEXECUTE
?
- tecknet.Anta att du har en tom SQL-tabell med två kolumner: ID och benämning ID är primärnyckeln.
Du har följande formel i en oskyddad cell:
=DBEXECUTE("configdb", "SELECT items.id,items.name FROM items WHERE ID=1","INSERT into items (ID,Name) VALUES (1,?)")
I visningsläge anger du 1 i cellen och trycker på Retur.
Eftersom tabellen är tom och inte innehåller ett ID med värdet 1 körs satsen INSERT. Satsen INSERT skapar följande rad i tabellen:
Radnummer | ID | Namn |
---|---|---|
1 | 1 | 1 |
Genom att ange 1 har du angett ID:t. Tecknet ?
innebär att det här värdet anges i kolumnen Namn.
Du anger nu 2 i cellen. Eftersom ID 1 finns körs inte satsen INSERT. Istället uppdateras den rad som innehåller ID 1 enligt följande tabell:
Radnummer | ID | Namn |
---|---|---|
1 | 2 | 1 |
Eftersom satsen INSERT inte körs uppdateras inte namnkolumnen.
Nu anger du 3 i cellen. Eftersom ID 1 inte finns körs satsen INSERT och en ny rad läggs till:
Radnummer | ID | Namn |
---|---|---|
1 | 1 | 3 |
2 | 2 | 1 |
Värdena 1 och 3 resulterar från denna del av formeln: VÄRDEN (1,?)
.
Om du nu anger 4 uppdateras ID 1 igen och raden med ID 1 uppdateras.
Radnummer | ID | Namn |
---|---|---|
1 | 2 | 1 |
2 | 4 | 3 |
Om du anger 5 läggs ytterligare en rad till:
Radnummer | ID | Namn |
---|---|---|
1 | 1 | 5 |
2 | 2 | 1 |
3 | 4 | 3 |