我对Access很新,所以这让我有点疯狂。
我正在创建库存数据库,并希望计算库存中的商品数量以更新订购表单。收到的项目被分配了订单代码,我想计算在主表格中找到的每个订单代码的实例数量。我有一个make table查询,这样做很好:
SELECT PrimerList.PrimerName
, First(Primer_Master.FR) AS FR
, Primer_Master.OrderCode
, Count(Primer_Master.OrderCode) AS InStock
INTO PrimerOrder
FROM PrimerList
LEFT JOIN Primer_Master ON PrimerList.ID = Primer_Master.PrimerName
GROUP BY PrimerList.PrimerName
, Primer_Master.OrderCode
, Primer_Master.PrimerName
, Primer_Master.FR
, Primer_Master.Finished
HAVING ((([Primer_Master]![Finished])=No));
我想使用PrimerOrder更新订单列表表PrimerOrderList,其中包含所有不同的订单代码,更新具有匹配OrderCode的记录的InStock值:
UPDATE PrimerOrderList
SET PrimerOrderList.InStock = PrimerOrder.InStock
WHERE (((PrimerOrderList.OrderCode)=[PrimerOrder].[OrderCode]));
但是,当我尝试运行它时,我会获得弹出的参数框,询问PrimerOrder.OrderCode和PrimerOrderList.OrderCode。即使我为每个输入一个有效值,我也会遇到类型转换失败。我已经检查了两个表的数据类型,并且没有看到类型转换失败的原因 - 两者都设置为文本。
非常感谢任何见解!提前谢谢!
答案 0 :(得分:0)
您尚未在查询中包含PrimerOrder表。应该是:
UPDATE PrimerOrderList INNER JOIN PrimerOrder
ON PrimerOrderList.OrderCode = PrimerOrder.OrderCode
PrimerOrderList.InStock = PrimerOrder.InStock