无效使用空值Access 2007

时间:2014-08-18 12:20:11

标签: null ms-access-2007

当我无效使用空值错误时,我正在执行此查询:

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)相同的错误!

提前致谢。

2 个答案:

答案 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将失败