Microsoft Access 2010:使用SQL更新语句中的文本框中的数据

时间:2012-03-08 14:40:04

标签: sql ms-access where ms-access-2010

是否可以在SQL语句中的表单上调用存储在文本框中的数据?我在按钮的SaveRecord操作之后在RunSQL操作中放置了以下语句。

UPDATE (Material 
INNER JOIN [Transaction] ON Material.Material = Transaction.Material)
INNER JOIN Ordered ON Transaction.[No] = Ordered.[No]
WHERE [Forms]![Order Material]![textBox_No] = Transaction.[No]
SET Material.[On Order] = [On Order]+[Amount];

我正在尝试将存储在文本框( textBox_No )中的数据拉到我的表单(订单材料)上,并将其与更新查询提取的结果进行比较。如果* textBox_No *中的数据等于 Transaction No 字段,我只想更新 On Order

当我单击我的按钮时,表单中输入的数据会正确更新,但是当SQL语句运行时,它会给我一个语法错误。

研究

我试图找到更新查询的语法指南,但Microsoft的网站仅提供the select query type的示例。我确实找到了我认为对pulling data out of a text box on a form有用的指南,但是该指南适用于比我使用的更旧版本的Microsoft Access。本指南是我[Forms]![Order Material]![textBox_No]我试图用来从文本框中提取数据的地方。

1 个答案:

答案 0 :(得分:2)

WHERE子句必须在SET子句之后。此外,“交易”是reserved word所以它必须全部用方括号括起来。

UPDATE (Material 
INNER JOIN [Transaction] ON Material.Material = [Transaction].Material)
INNER JOIN Ordered ON [Transaction].[No] = Ordered.[No]
SET Material.[On Order] = [On Order]+[Amount]
WHERE [Forms]![Order Material]![textBox_No] = [Transaction].[No];

避免使用保留字命名表和字段是一种很好的做法(通常只会让生活更轻松)。请参阅上面的链接以获取保留字的完整列表。