Betrachten wir ein parameterized query mit MS Access' mit QueryDefs, um die Datentypen Ihrer binded-Werte genau anzugeben und Verkettung und Quote-Wrapping zu vermeiden, wodurch Code schwer zu pflegen ist. Passen Sie die folgenden Typen nach Bedarf in PARAMETERS
(in Access SQL konform) an.
SQL(speichern als MS Access gespeicherte Abfrage nur einmal)
PARAMETERS [txtreceipt_id_PARAM] LONG, [txttdate_PARAM] DATE,
[txttotal_cost_PARAM] DOUBLE, [txttotal_disc_PARAM] DOUBLE;
UPDATE [Transaction]
SET receipt_id = [txtreceipt_id_PARAM],
tdate = [txttdate_PARAM],
total_cost = [txttotal_cost_PARAM],
total_disc = [txttotal_disc_PARAM]
WHERE receipt_id = [txtreceipt_id_PARAM];
VBA(dynamisch Werte binden Platzhalter für den Parameter)
Dim qdef as QueryDef
Set qdef = CurrentDb.QueryDefs("mySavedQuery")
qdef![txtreceipt_id_PARAM] = txtreceipt_id
qdef![txttdate_PARAM] = txttdate
qdef![txttotal_cost_PARAM] = txttotal_cost
qdef![txttotal_disc_PARAM] = txttotal_disc
qdef.Execute dbFailOnError
Set qdef = Nothing
Können Sie die zeigen, vollständiger Syntaxfehler? –
Benötigen Sie zusätzliche Angebote? Starten Sie mit CurrentDb.Execute "UPDATE Transaction SET receipt_id =" & txtreceipt_id und fügen Sie die anderen Felder einzeln hinzu. –