我的问题是我想在Ms-Access 2010中添加追加查询。我试图在查询设计器中实现它,但它会抛出错误:
表达式中的类型不匹配
请参阅下面生成的代码:
INSERT INTO Yield ( ProcessName, Sor, Lot,
ProcessCode, Outgoing, DefectReason, DefectQty, ModifyQty )
SELECT Process.[ProcessName], Sor.[Sor], Qty.[Lot], Qty.[ProcessCode],
Qty.[Outgoing Date], Qty.[Defect Reason], Qty.[Defect Qty], Qty.[Modify_Qty]
FROM (Sor INNER JOIN ProcessCode ON Sor.[SorID] = ProcessCode.[SorID])
INNER JOIN (Process INNER JOIN Qty ON Process.[ProcessID] = Qty.[ProcessID])
ON ProcessCode.[ProcessID] = Process.[ProcessID];
表格和属性都已存在。 ID号是索引,数量是数字,' ProcessName'' Sor'' Lot'' ProcessCode',&# 39; DefectReason'属性是字符串。
可能是什么问题?
提前致谢。
答案 0 :(得分:1)
看起来不错。最好的建议是将它分成小块。
http://importblogkit.com/2015/05/how-do-you-eat-an-elephant/。
试试这个:
删除insert
部分。只需尝试select
即可确保加入正常。如果失败则问题出在连接字段
然后,再次放置insert
,而不是使用SELECT
中的表字段使用默认值。 ''
表示字符串,0
表示数字,并为列名添加正确的别名。这样您就可以确保数据带来正确的数据类型。如果失败则其中一个字段实际上不是字符串或数字。像gustav建议可能是DATE
如果该工作然后尝试每次放置一个表字段,直到找到导致问题的那个。也许一个字段不支持null或者接收的值大于支持的值。
答案 1 :(得分:0)
问题是Yield表没有列出的属性。我认为如果输出表中没有包含某些列出的输出属性,Access会自动创建缺少的新属性。我错了。输出表必须包含属性(行),新属性不能以这种方式插入其中。