0

検索クエリのこの式では結果が得られません。

codecode2は検索フォームのコンボ ボックス、CS_Codeはテーブルの列です。

[CS_Code]=([Forms]![Search Form]![code] Or
[Forms]![Search Form]![code2]) Or
( [Forms]![Search Form]![code] Is Null Or
  [Forms]![Search Form]![code2] Is Null )

CS_codeが等しいcodeか、テーブルからエントリ (検索結果) を取得しようとしています。code2

4

2 に答える 2

2

比較を繰り返す必要があります。

 WHERE ([CS_Code]=([Forms]![Search Form]![code] 
        Or [CS_Code]=[Forms]![Search Form]![code2]) 
 Or ([Forms]![Search Form]![code] Is Null
        Or [Forms]![Search Form]![code2] Is Null)
于 2012-04-23T13:36:58.823 に答える
0

IsNull 関数を使用してこれを短縮できます。

WHERE IsNull(([Forms]![Search Form]![code],[CS_Code]) = [CS_Code]

他のフィールドについても同様です。コンボ ボックスが null の場合、これはテーブル フィールド値を返します。これは常にそれ自体と等しくなります。

複数のコンボ ボックスに対してこれを行っている場合は、一歩下がって、何をしようとしているのかを確認する時期かもしれません。1 つの可能性は、フォーム上のすべてのコンボ ボックスをループする VBA ルーチンを作成することです。

于 2012-04-23T14:09:33.520 に答える