Durch einige Insert/Update-Abfragen auf eine Anwendung heute arbeiten und stieß auf ein Ergebnis, das ich nicht erwartet hatte.Warum kann ich den Feldnamen nicht als Parameter in einer Access-Parameterabfrage verwenden?
Abfragen
Mein Einsatz Abfragen ähnlich aussehen, dies zu:
PARAMETERS nm TEXT(10), st TEXT(2);
INSERT INTO park(pname, pstate)
VALUES([nm],[st]);
Und ihre Begleiter Updates wie diese waren:
PARAMETERS id LONG, nm TEXT(10), st TEXT(2);
UPDATE park
SET
pname = [nm], pstate = [st]
WHERE
ID = [id];
Der Tisch sie ähnlich war dies waren die Aktualisierung :
park
ID LONG | pname TEXT(10) | pstate TEXT(2)
unerwartetes Ergebnis
Arbeiten durch die Abfragen zu schreiben, die ich getestet jeweils gegen die Datenbank ausgeführt wird und die Testwerte für die verschiedenen Parameter bereitstellt. Nach der Einfügeabfrage würde ich das Update testen, indem ich den neu eingefügten Datensatz aktualisiere.
In den meisten Fällen waren die Tabellen leer, so dass das Update den einzelnen Datensatz einfach aktualisieren würde.
jedoch, sobald ich das Update auf einer vorher befüllte Tabelle lief, fand ich die Abfrage ALLE Datensätze, nicht nur denjenigen, dessen ID durch den Parameter zur Verfügung gestellt zu aktualisieren wurde versucht wurde. Die Frage ist Warum ??