2016-04-08 5 views
0

おそらく、この質問にはかなり基本的な答えがありますが、私は私の問題を解決しようとしている私の頭を引っ張っています。私は私のクエリは次のようになり、2007年アクセス2007 CIntクエリの問題

アクセスを使用しています:

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に" エラーに

を取得します。

私はいくつかの基本的な研究を行いましたが、最も一般的な問題は、私がリファレンスライブラリを紛失しているようです。 Howverは、リスト全体を見渡して、 "Missing"というタグが付いた参照がないので、それは他のものでなければなりません。また、有効になっているすべての参照ライブラリを無効にして再度有効にしてみると、それが役立つかどうかを確認することはできましたが、これまでのところはありません。

どのような考えですか?

+0

IDは通常、long int型なので、あなたは 'CLng'の代わりに'欲しいですCInt'。しかし、おそらく問題の原因にはならないでしょう。 – Andre

答えて

0

あなたはヌルのコードを持つことができる場合は、試してみてください。

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();