自动生成的 SQL 代码抛出类型不匹配

Automatically generated SQL code throws type mismatch

我的问题是我想在 Ms-Access 2010 中进行追加查询。我试图在查询设计器中实现它,但它抛出错误:

Type mismatch in expression

查看下面生成的代码:

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'、'DefectReason' 属性是字符串。

可能是什么问题?

提前致谢。

看起来不错。最好的建议是将它分成更小的部分。

http://importblogkit.com/2015/05/how-do-you-eat-an-elephant/ .

试试这个:

删除 insert 部分。只需尝试 select 以确保连接正常工作。如果失败,问题出在连接字段上

然后,再次放入 insert,但不要放入 SELECT 中的 table 字段,而是使用默认值。 '' 用于字符串,0 用于数字,并为列名设置正确的别名。这样你就可以确保你的数据带来了正确的数据类型。如果失败,则其中一个字段实际上不是字符串或数字。像古斯塔夫建议可能 DATE

如果可行,则每次尝试放置一个 table 字段,直到找到导致问题的那个字段。可能某个字段不支持 null 或接收到的值大于所支持的值。

问题是 Yield table 没有列出的属性。我认为如果列出的某些输出属性未包含在输出 table 中,Access 会自动创建缺少的新属性。我错了。输出 table 必须包含属性(行),不能以这种方式向其中插入新属性。