Access (VBA)

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

 
(Windows 10 Pro : Access 2013)
複数コンボボックスの未選択時の処理
投稿日時: 21/02/10 23:34:27
投稿者: にしひろ

複数(AとB)の非連結コンボボックスでそれぞれに対応する抽出をしたいのですが、Aが未選択(Null)状態のときに、Aは全て、Bは選択したものの抽出はどうすればいいのでしょうか?どちらも未選択であれば、メッセージを出して、選択を促すようにしたいです。
  
下記のコードで、どちらも選択していれば、抽出はできています。
ご教授いただきたいです。
  
Private Sub コマンド31_Click()
   
 Me.Filter = " CHARGE = " & Me!コンボ24 & " AND SUPPLIER = " & Me!コンボ28 & ""
 Me.FilterOn = True
   
 End Sub

回答
投稿日時: 21/02/12 09:53:11
投稿者: sk

引用:
複数(AとB)の非連結コンボボックスでそれぞれに対応する抽出をしたいのですが、
Aが未選択(Null)状態のときに、Aは全て、Bは選択したものの抽出
どうすればいいのでしょうか?
どちらも未選択であれば、メッセージを出して、選択を促すようにしたいです。

引用:
Me.Filter = " CHARGE = " & Me!コンボ24 & " AND SUPPLIER = " & Me!コンボ28 & ""
Me.FilterOn = True

Dim strFilter As String
 
strFilter = ""
 
If IsNull(Me!コンボ24) = False Then
    strFilter = strFilter & _
                " AND [CHARGE] = " & Me!コンボ24
End If
    
If IsNull(Me!コンボ28) = False Then
    strFilter = strFilter & _
                " AND [SUPPLIER] = " & Me!コンボ28
End If
 
'フィルター条件が 1 つも指定されていない場合
If strFilter = "" Then
    MsgBox "フィルター条件が指定されていません。", vbExclamation, "入力エラー"
    'プロシージャを抜ける
    Exit Sub
End If
 
'先頭の " AND " を取り除く
strFilter = Mid(strFilter, 6)
    
Me.Filter = strFilter
Me.FilterOn = True
 
----------------------------------------------------------
 
以上のようなコードを記述なさればよろしいかと。

投稿日時: 21/02/15 11:13:41
投稿者: にしひろ

やりたいことが完璧にできました。
検索項目を増やしても、同様のコードの追加で、動かすことができました。
ありがとうございます。