Microsoft Access 掲示板

SQLの実行方法 / 6

17 コメント
views
4 フォロー
6

あとこれも初歩的な質問ですが  "WHERE 納品書入り日 Is Null AND (" & Me.Filter & ");" のANDの後は()が必要なのですね? 勉強不足ですみません。

比較演算子には優先順位があり、ORよりANDの方が優先度が高いです。

ですので、FilterにOR演算子があった場合、意図せぬ結果になる場合があります。

例えば、Filterが A = 1 OR B = 2 の場合、()がないと、

納品書入り日 Is Null AND A = 1 OR B = 2
となり、これは
(納品書入り日 Is Null AND A = 1) OR B = 2
と解釈されます。

意図している下記とは結果が異なります。
納品書入り日 Is Null AND (A = 1 OR B = 2)

通報 ...