Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Access 2016)
Access ボタンに複数条件を指定して抽出
投稿日時: 20/09/24 13:52:30
投稿者: miho0818K

分割フォームに抽出ボタンを作成しようとしています。
抽出条件はVBAで記述しています。
 
抽出条件が1つの場合は問題なく動作するのですが、
抽出条件が複数になると上手くいきません。
修正箇所をご教授よろしくお願いいたします。
 
↓↓実行したいこと↓↓
 
<ボタン1>
 ・[部署ID]が1のみを抽出
<ボタン2>
 ・[部署ID]が2と3を抽出
 
 
↓↓現在の記述↓↓
 
Private Sub ボタン1_Click()
 Me.Filter = "[部署ID] = 1"
 Me.FilterOn = True
End Sub
 
Private Sub ボタン2_Click()
    Me.Filter = "[部署ID] = 2 AND [部署ID] = 3"
    Me.FilterOn = True
End Sub
 
 
↓↓状況↓↓
 
<ボタン1>は問題なく動作しますが
<ボタン2>がエラーになります。
 
<ボタン2>の修正箇所を教えてください。
よろしくお願いいたします!

回答
投稿日時: 20/09/24 14:08:09
投稿者: Suzu

引用:
<ボタン2>
 ・[部署ID]が2と3を抽出
言い直すと
  【部署ID が 2】 または 【部署ID が 3】
 
 
対して
引用:
Me.Filter = "[部署ID] = 2 AND [部署ID] = 3"
言い直すと
  【部署ID が 2】 かつ 【部署ID が3】
 
判りますでしょうか?

投稿日時: 20/09/24 14:12:14
投稿者: miho0818K

Suzu さんの引用:
引用:
<ボタン2>
 ・[部署ID]が2と3を抽出
言い直すと
  【部署ID が 2】 または 【部署ID が 3】
 
 
対して
引用:
Me.Filter = "[部署ID] = 2 AND [部署ID] = 3"
言い直すと
  【部署ID が 2】 かつ 【部署ID が3】
 
判りますでしょうか?

 
 
 
早速ありがとうございます。
 
「かつ」です。
 
AND条件として抽出したいと思っています。

回答
投稿日時: 20/09/24 14:25:30
投稿者: Suzu

「2」 かつ 「3」 という事は、
 そのフィールドの値として、「2」と「3」が 同時に入っているレコードを抽出しなさい という事です。
 
フィールドは、1つの値しか持つことができませんよね?
ですから、2つの値を持つレコード自体存在し得ないのではありませんか?
 
 
※今更ですが、念のため。
  質問分では「エラーになる」とおっしゃっていますが、
  「エラー」になる のではなく、「希望通りの抽出が行われない」 という事ですよね?

投稿日時: 20/09/24 14:46:03
投稿者: miho0818K

引用:
「2」 かつ 「3」 という事は、
 そのフィールドの値として、「2」と「3」が 同時に入っているレコードを抽出しなさい という事です。
  
フィールドは、1つの値しか持つことができませんよね?
ですから、2つの値を持つレコード自体存在し得ないのではありませんか?

 
仰る通りです。
 
ご指摘いただき間違いに気づきました。
ANDではなくORで指定しなければいけなかったのですね。
 
引用:
Private Sub ボタン2_Click()
    Me.Filter = "[部署ID] = 2 OR [部署ID] = 3"
    Me.FilterOn = True
End Sub

 
OR で設定すると、目的の結果を得ることが出来ました。
最初の思い込みから単純なところで迷宮入りしていました。
 
引用:
※今更ですが、念のため。
  質問分では「エラーになる」とおっしゃっていますが、
  「エラー」になる のではなく、「希望通りの抽出が行われない」 という事ですよね?

 
仰る通りです。
 
迅速かつ的確にアドバイスいただきありがとうございます。
 
解決済みにさせて頂きます。