かなり前にまとめた VBA/SQL コードを使用する Access UDA があり、最近、特定のクエリを調整して 2 つの基準を除外するように依頼されました。単純に SQL AND OR ステートメントを追加できると思っていましたが、この単純な修正を機能させるためにかなりの苦労をしてきました。
私の元のコード:
SELECT * FROM [Master List]
WHERE ([Master List].IB)='" & strIBTO & "' AND ([Master List].[Type])<>'N'"
これは、Type = "N" を含まない特定の渡された変数 "strIBTO" の結果を正しく返します。
基本的に、クエリから別のタイプも除外することが求められているため、コードを変更しました。
SELECT * FROM [Master List]
WHERE ([Master List].IB)='" & strIBTO & "' AND ([Master List].[Type])<>'N' OR ([Master List].[Type])<>'T'"
「N」と「T」の両方を含む結果を取得しているため、Access が AND ステートメント全体を破棄しているようです。AND ステートメント全体とその内部を括弧で囲んでさまざまな順列を試しましたが、正しい結果が得られません。
VBA SQL は MySQL と AND/OR の入れ子が異なりますか? 私は何を間違っていますか?