访问2007 CInt查询问题

时间:2016-04-08 19:56:32

标签: sql ms-access

这个问题可能有一个非常基本的答案,但是我试着解决我的问题。我正在使用Access 2007。

我的查询如下所示:

SELECT Pricing.*
FROM OrderReceipt_be 
INNER JOIN Pricing ON CInt(OrderReceipt_be.[Pricing Table Option Code]) = Pricing.ID 
WHERE OrderReceipt_be.[PO_Number] = PONumber();

无论出于何种原因,[PO_Number]字段将作为文本存储在我的密钥上,这是一个long int。这就是我尝试将其转换为整数的原因。

但是,当我运行查询时,我收到错误

  

"编译错误。在查询表达式CInt中(OrderReceipt_be。[定价   表选项代码])= Pricing.ID"。

我做了一些基础研究,似乎最常见的问题是我错过了参考图书馆。但是,经过整个列表,我没有看到任何标记为"缺少"所以它一定是别的东西。我也尝试过禁用和重新启用所有启用的参考库,看看是否有帮助,但到目前为止还没有。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果您的代码 Null ,请尝试:

SELECT Pricing.*
FROM OrderReceipt_be 
INNER JOIN Pricing ON Val(Nz(OrderReceipt_be.[Pricing Table Option Code])) = Pricing.ID 
WHERE OrderReceipt_be.[PO_Number] = PONumber();

或尝试反向转换:

SELECT Pricing.*
FROM OrderReceipt_be 
INNER JOIN Pricing ON OrderReceipt_be.[Pricing Table Option Code] = CStr(Pricing.ID) 
WHERE OrderReceipt_be.[PO_Number] = PONumber();