※ ChatGPTを利用し、要約された質問です(原文:複数の抽出条件 AかつB、またはAかつCについて)
Access 2013でVBAを使用したレコードの抽出方法とは?
このQ&Aのポイント
Access 2013でVBAを使って複数の抽出条件を組み合わせてレコードを抽出する方法について説明します。
テーブル1にはメーカー名、製品名、購入日、ステータスのフィールドがあります。フォーム1のテキストボックスに入力された値をAND条件で抽出するコードが正常に動作しています。
4行目のステータスに条件Aかつ条件B、または条件Aかつ条件Cを組み合わせて抽出したい場合、strfilter変数に複数の条件式を追加することで実現できます。
ACCESS 2013 でVBAを使ったレコードの抽出を行いたいと考えています。
複数の抽出条件 AかつBまたはAかつCについて、行き詰っています。
テーブル1に、
メーカー名、製品名、購入日、ステータスの4つのフィールドを作成しました。
A社 ボールペン 2014/01/01 1
B社 万年筆 2014/01/02 2
C社 マジック 2014/02/03 4
D社 ボールペン 2014/03/08 5
A社 万年筆 2014/05/01 4
フォーム1に、メーカー名txt、製品名txt、購入日txt、
ステータスtxtのテキストボックスがあります。
メーカー名、製品名、購入日、ステータスを、テキストボックスに値が入力されていれば
全てAND条件で抽出するコードは書きあがっていて
正常に動作しています。
コードは次のような感じに書きました。
strfilter = strfilter & " AND メーカー名 Like '*" & Me.メーカー名txt & "*'"
strfilter = strfilter & " AND 製品名 Like '*" & Me.製品名txt & "*'"
strfilter = strfilter & " AND 購入日 = Me.購入日txt"
strfilter = strfilter & " AND ステータス = Me.ステータスtxt"
Forms.フォーム1.Filter = Mid(strfilter, 6)
Forms.F01301_item_Quick_List.FilterOn = True
4行目を1と3、2~4などのように抽出したいので
次のように試したところ
strfilter = strfilter & " AND ステータス = 1" OR "ステータス = 3"
現状、1行目から3行目に関係なく、4行目の条件に当てはまるものが
抽出されてしまいます。
おそらく、”1~3行目とステータス = 1” 又は ”ステータス = 3”の
条件に一致する全て、になっているんだろう、とは思ったのですが
よくよく見ると、上3行と関係ないものが抽出されてしまっています。
1行目から3行目の条件Aかつ、4行目の条件B(例えば1か2)、
1行目から3行目の条件Aかつ、4行目の条件C(例えば1か4)など
条件A or 条件B、条件A or 条件Cで
抽出する方法について、ご教授願います。
お礼
カッコとAND、ORの位置に苦戦していました。 教えて頂いた箇所の通りに書き換えて、上手く動作するようになりました。 ありがとうございました。