更新查询中的类型转换失败

时间:2014-09-03 13:18:34

标签: sql type-conversion ms-access-2007

我对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。即使我为每个输入一个有效值,我也会遇到类型转换失败。我已经检查了两个表的数据类型,并且没有看到类型转换失败的原因 - 两者都设置为文本。

非常感谢任何见解!提前谢谢!

1 个答案:

答案 0 :(得分:0)

您尚未在查询中包含PrimerOrder表。应该是:

UPDATE PrimerOrderList INNER JOIN PrimerOrder 
ON PrimerOrderList.OrderCode = PrimerOrder.OrderCode
PrimerOrderList.InStock = PrimerOrder.InStock