当我无效使用空值错误时,我正在执行此查询:
SELECT Lansweeper_jacopoBelloni.[Numero Inventario], CInt([Numero Inventario]) AS Espr1
FROM Lansweeper_jacopoBelloni INNER JOIN PC_CarelHQ_modificato ON CInt(Lansweeper_jacopoBelloni.[Numero Inventario])=PC_CarelHQ_modificato.[n inv];
在Lansweeper_jacopoBelloni表中,主键“Numero Inventario”是文本,所以我正在对它进行强制转换,因为在另一个表中它是一个整数(它是一个索引,所以没有小数的东西)。
我还有两个其他选择让它起作用。
i)SELECT Lansweeper_jacopoBelloni。[Numero Inventario],Val(Nz(Lansweeper_jacopoBelloni。[Numero Inventario],“”))AS Espr1 FROM Lansweeper_jacopoBelloni INNER JOIN PC_CarelHQ_modificato ON Val(Nz(Lansweeper_jacopoBelloni。[Numero Inventario]),“” ))= PC_CarelHQ_modificato。[n inv];
这让我错误地认为Val(..........)
中的参数数量错误ii)SELECT Lansweeper_jacopoBelloni。[Numero Inventario],Val(Nz(Lansweeper_jacopoBelloni。[Numero Inventario],0))AS Espr1 FROM Lansweeper_jacopoBelloni INNER JOIN PC_CarelHQ_modificato ON Val(Nz(Lansweeper_jacopoBelloni。[Numero Inventario]),0)) = PC_CarelHQ_modificato。[n inv];
这给了我与i)相同的错误!
提前致谢。
答案 0 :(得分:1)
错误消息告诉您问题所在。您要转换为整数然后用作连接字段的文本列是您的问题 - Lansweeper_jacopoBelloni。[Numero Inventario]
在此列上搜索Null,或在将其转换为int之前在查询中对其进行过滤。
答案 1 :(得分:0)
您可能需要在将其转换为Int。
之前在NumeroInventario上管理空值Try CInt(Nz(Numero Inventario, 0))
让我知道它是否解决了这个问题。
试试这个:
SELECT Lansweeper_jacopoBelloni。[Numero Inventario],Val(Nz([Numero Inventario],0))AS Espr1 来自Lansweeper_jacopoBelloni INNER JOIN PC_CarelHQ_modificato ON Val(Nz(Lansweeper_jacopoBelloni。[Numero Inventario]),0))= PC_CarelHQ_modificato。[n inv];
您需要管理空值并将其替换为0(确保您没有任何n_inv,其中0为值)此外,如果使用Val,则更好,因为如果收到空字符串,CInt将失败