作为一个类项目,我正在创建一个Access 2010数据库来跟踪库存。为了这个问题的目的,有两个相关的表,资产和行动,和一个相关的形式,更新资产。我的目标是每次有人更新资产表中的记录时,都要在Actions表中插入一个新记录。新的操作记录将包含保存时包含在当前记录中的字段的快照。
有一个名为AuditLog的宏附加到After事件。宏使用带有以下参数的RunSQL命令:
SQL语句:
INSERT INTO Actions (AssetTag, LocationID,Slot,Status,Timestamp,TechID) ;
SELECT(AssetTag,LocationID,Slot,Status,LastUpdated,TechID) FROM Assets WHERE
Assets!AssetTag = Me!AssetTag ;使用事务:是
但是,当我去保存记录时,我会得到以下错误:
INSERT INTO语句中的语法错误
宏名称: AuditLog
动作名称: RunSQL
参数:插入操作(AssetTag、LocationID、槽、状态、时间戳、TechID);从资产中选择(AssetTag、LocationID、时隙、状态、LastUpdated、TechID)!AssetTag= Me!AssetTag;是
错误编号: 2950
我已经添加了数据库文件夹,以访问“受信任位置列表”。访问绝对不是我的优点,所以任何帮助都将是非常感谢的。
发布于 2011-11-03 16:36:27
这也不是我的强项,但我敢打赌分号是表达式/语句的结尾,与Server一样,应该是一个复合语句(select...into)
因此,去掉第一个分号。
从资产资产中插入操作(AssetTag、LocationID、时隙、状态、时间戳、TechID)选择(AssetTag、LocationID、时隙、状态、LastUpdated、TechID)!AssetTag= Me!AssetTag;
发布于 2011-11-07 17:48:59
分号“完成”语句。本质上,您在那里所做的是在INSERT INSERT操作时切断语句(AssetTag、LocationID、时隙、状态、时间戳、TechID);<
为了将来的参考,您几乎不需要在access中使用分号。它可能会为你添加它,但为了避免这样的事情,只是不要把它放进去。
发布于 2011-11-07 18:16:10
正如其他人所指出的,分号是罪魁祸首。如果Access SQL语句将来出现问题,则可以将该语句粘贴到Access查询设计器中。这样做将让查询设计器为您定位问题(通过突出显示语法问题的代码)。
https://stackoverflow.com/questions/7998464
复制相似问题