Bijwerken, invoegen en het ? teken in DBEXECUTE

Dit onderwerp beschrijft de update en invoeggedrag van DBEXECUTE en het gebruik van het ? teken.

Stel u hebt een lege SQL-tabel met de naam Items, met twee kolommen: ID en naam. ID is de primaire sleutel.

U hebt deze formule in een onbeveiligde cel:

=DBEXECUTE("configdb", "SELECT items.id,items.name FROM items WHERE ID=1","INSERT into items (ID,Name) VALUES (1,?)")

In de weergavemodus geeft u 1 op in de cel en drukt u op Enter.

Omdat de tabel leeg is en geen ID bevat met de waarde 1, wordt de instructie Invoegen uitgevoerd. De instructie Invoegen maakt de volgende rij in de tabel:

Rijnummer ID Naam
1 1 1

Door 1 in te voeren, hebt u de ID opgegeven. Het teken ? zorgt dat deze waarde kan worden ingevoerd in de kolom Naam.

U geeft nu 2 op in de cel. Omdat ID 1 aanwezig is, wordt de instructie Invoegen niet uitgevoerd. In plaats daarvan wordt de rij met ID 1 bijgewerkt zoals in de volgende tabel wordt weergegeven:

Rijnummer ID Naam
1 2 1

Omdat de instructie Invoegen niet wordt uitgevoerd, is de kolom Naam niet bijgewerkt.

U geeft nu 3 op in de cel. Omdat ID 1 niet aanwezig is, wordt de instructie Invoegen uitgevoerd en wordt een nieuwe rij toegevoegd:

Rijnummer ID Naam
1 1 3
2 2 1

De waarden 1 en 3 resulteren uit dit gedeelte van de formule: VALUES (1,?).

Als u nu 4 opgeeft, wordt de ID 1 opnieuw weergegeven en wordt de rij met ID 1 bijgewerkt.

Rijnummer ID Naam
1 2 1
2 4 3

Als u 5 opgeeft, wordt er een extra rij toegevoegd:

Rijnummer ID Naam
1 1 5
2 2 1
3 4 3