我将重新使用Access SQL,而且似乎停留在一个简单的步骤上。我只是想用来自两个表的数据将事务插入到日志表中。 WHERE子句基于从两个表中提取的窗体上的两个组合框。不知何故,我的SELECT语句找不到任何记录。
到目前为止,只有3张桌子。两个源表Suppliers和TransType和一个日志表Transactions。我到处搜索了基本帮助,但是没有找到这个具体案例。我猜我有语法问题或数据类型问题,但是我已经尽力检查了两者,没有发现任何问题。
INSERT INTO Transactions ( PrevScore, NewScore, SupplierCode, TransTime )
SELECT Suppliers.Score, TransType.Points, Suppliers.SupplierCode, Now() AS Expr1
FROM TransType, Suppliers
WHERE (((Suppliers.SupplierName)=[Forms]![frmRecordEvent]![txtSupName]) AND ((TransType.Type)=[Forms]![frmRecordEvent]![txtTrans]));
当我直接从查询中运行代码或通过以下方式通过表单上的按钮运行代码时:
DoCmd.OpenQuery(“ qryInsertTransaction”)
我收到消息“您将要追加0行”。我只是不明白当数据直接以表格的形式绑定到源时如何找到0行...
PS。这两个字段都不是PK的字段,即使我将其更改为PK也不起作用。
更新:由于建议查看Column属性。我最终更改了WHERE语句,以引用它们各自表的PK,尽管我发现文档说第一列为0,第二列为1,但我将Bound Column设置为1。
INSERT INTO Transactions ( PrevScore, NewScore, SupplierCode, TransTime )
SELECT Suppliers.Score, TransType.Points, Suppliers.SupplierCode, Now() AS Expr1
FROM TransType, Suppliers
WHERE (((Suppliers.SupplierCode)=Forms!frmRecordEvent!txtSupName) And ((TransType.ID)=Forms!frmRecordEvent!txtTrans));