代码之家  ›  专栏  ›  技术社区  ›  Jacopo Belloni

空值Access 2007的使用无效

  •  0
  • Jacopo Belloni  · 技术社区  · 10 年前

    我在执行此查询时遇到了无效的空值使用错误:

    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) 选择Lansweeper_jacopoBelloni。[Numbero Inventario],Val(Nz(Lansweeper_jacopoBelloni.[Numero Inventario],“”))作为Espr1从Lansweepr_jacopoBellonic INNER加入PC_CarelHQ_modicato ON Val(N z(Lantweeper_jacopBelloni.[numbero Inventorio]),“””)=PC_Carel HQ_mmodicato。[n发票];

    这给我一个关于Val(…………..)中错误参数数量的错误

    ii)选择Lansweeper_jacopoBelloni。[Numbero Inventario],Val(Nz(Lansweeper_jacopoBelloni.[Numero Inventario],0))作为来自Lansweeper_jacopoBellonic INNER的Espr1加入PC_CarelHQ_modicato ON Val(N z(Lantweeper_jacopBelloni.[numbero Inventorio]),0)=PC_Carel HQ_mmodicato。[n发票];

    这给了我和我一样的错误)!

    提前感谢。

    2 回复  |  直到 10 年前
        1
  •  1
  •   cameront    10 年前

    错误消息告诉您问题所在。您要转换为整数并用作连接字段的文本列是您的问题所在—Lansweeper_jacopoBelloni。[数字发明]

    在此列上搜索Null,或在将其转换为int之前在查询中过滤掉。

        2
  •  0
  •   SeraphimFoA    10 年前

    您可能需要在NumberInvitario上管理一个空值,然后将其转换为Int。

    Try CInt(Nz(Numero Inventario, 0))
    

    如果它解决了问题,请告诉我。

    试试看:

    选择Lansweeper_jacopoBelloni。[Numbero Inventario],Val(Nz([Numero Inventaro],0))AS Espr1 从Lansweeper_jacopoBelloni INNER JOIN PC_CarelHQ_modicato ON Val(Nz(Lansweeper_jacopoBellone.[Numbero Inventario]),0))=PC_Carel HQ_mmodicato。[n发票];

    您需要管理空值并将其替换为0(确保您没有任何n_inv值为0)此外,最好使用Val,因为如果CInt收到空字符串,它将失败