フィールド値を表示するためにテキストボックスを使用するMS Accessレポートを作成しようとしています。最初の値は別のテーブルのエントリよりも高くまたは低くなります。MS Access、式ビルダーを使用して1つのテーブルのフィールドと別のテーブルのDLookupを比較する
レポートには、 "テーブル1"のレコードソースと、フィールド "Value1"に数値を表示する "txt_Value1"というテキストボックスがあります。私は比較したいフィールド "PassValue"を持つ2番目のテーブル "Customer_Criteria"を持っています。私の表現ビルダーステートメントは次のとおりです。
IIf([txt_Value1]<(DLookUp("[PassValue]","[Customer_Criteria]","[Customer] = 'ABC'")),"TRUE","FALSE")
このステートメントは、正しい論理結果が何であるかにかかわらず、常にfalseを返します。私はそれをテストしてみた
、書き込み:
IIf(1<(DLookUp("[PassValue]","[Customer_Criteria]","[Customer] = 'ABC'")),"TRUE","FALSE")
そして、私は正しい結果を得ます。また、私が書く場合:
IIf([txt_Value1]< 1,"TRUE","FALSE")
私は正しい結果を得る。テキストボックス値とDlookupを比較するために私は何が欠けていますか?
'PassValue'はおそらくすでにintです。その場合、第2の「CLng」は必要ない。 'txt_Value1'がnullにならないように、そして/またはDLookupがnullを返すのを防ぐために、システム内に他にどのようなバリデーションが存在するかによっては(レコードのnull PassValueまたは条件に一致するレコードがない)、' Nz' 。最後に、 'txt_Value1'に入力されたものが数字であることを確認してください。 – SunKnight0