ACCESS VBA で複数項目検索にテキストボックスとコンボボックスを使用したい
txtPC番号というテキストボックス、
com所属部門というコンボボックス、
txt使用者というテキストボックスの
どれかひとつの条件が入力されたときに
該当するフォームのレコードを抽出できるようにしたいのですが、
コンボボックスで選択した場合のみうまく抽出できません。
コードのどの部分に誤りがあるのでしょうか?
ご指摘願えませんでしょうか?
よろしくお願いいたします。
Private Sub cmd01_Click()
Me.FilterOn = False
If Me!txtPC番号 <> "" Then
Me.Filter = "[PC番号]like '*" & Me!txtPC番号 & "*'"
ElseIf Me!com所属部門 <> "" Then
DoCmd.Requery "com所属部門"
ElseIf Me!txt使用者 <> "" Then
Me.Filter = "[使用者]like '*" & Me!txt使用者 & "*'"
End If
Me.FilterOn = True
End Sub
No.2ベストアンサー
- 回答日時:
コンボボックスの使い方に間違いがあり、入力した値が各txtコントロール値になってない。
連結列プロパティー等どうなっているか見直しします。コンボボックスのときだけおかしいならこのコードは変えないで下さい。たぶん正しくて変える必要ありません。
もう1つボタンを用意しこちらにはコンボボックスの仕掛けで処理させると何がどう違うかわかりませんか?。
後、このボタンクリック以外で各txtコントロールをクリアしたりしてませんか。似た仕掛けを見たことあります。
3つ共値が無い時のロジックも入れた方が良いです。
ありがとうございました。
一つ一つ作業していったところ、
無事抽出できるようになりました。
また、3つとも値がないときのif分も追加いたしました。
本当にありがとうございました。
No.3
- 回答日時:
所属部門で抜くときフィルタ設定しないで再クエリだけというのはどういう意図でしょうか。
条件変えて再クエリならまだわかります。
さらに、
ここがクエリなら3項目ともフィルタじゃなくてもクエリ側でなんか出来るようにも思います。
No.1
- 回答日時:
うまく抽出できないというのはどう「うまく抽出」できないのでしょう。
期待値がわかりませんし、現状どうなっているのかもわかりません。
もし
「コンボボックスの際だけif文の中に入らない」(「DoCmd.Requery "com所属部門"」を実行しない)
ということであれば、ブレークポイントを敷いてのデバッグ時、com所属部門に値は入っていますか?
そもそも・・
コンボボックスの初期値はどうなっていますか?
またコントロールソースはベタ書きですか?
何かしかから引っ張ってきているのですか?
補足お願いします。
この回答への補足
アドバイスありがとうございます。
現状ではコードを書いて一番最初にコンボボックスで検索した部門が、
ほかの部門を選択して抽出ボタンを押しても出てきてしまうという
現象がおこってしまっています。
コンボボックスはプロパティ画面にて
値集合タイプ「テーブル・クエリー」
でテーブルの値を参照させています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Access(アクセス) Access DLookup vbaで条件を2件設定したい場合どうすればよいでですか? 現在 If( 1 2023/06/28 14:28
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
条件に応じてコンボボックスの...
-
コンボボックス 選択後のカー...
-
ドロップダウンリスト
-
Dcount関数が表示されない。
-
Access レポート印刷するときに...
-
YahooのIDがロックされてしまい...
-
データベースのINT型項目にNULL...
-
passwordが入れられません・・・・
-
エクセルをACCESSのレポ...
-
レコードを保存するコード ア...
-
アクセスでテキストボックスの...
-
サブフォームに対してGoToRecor...
-
ACCESSでコントロールソースの変更
-
ACCESS フォームをそのまま印刷...
-
アクセスで数値型のフィールド...
-
Accessのフォームで開く時のウ...
-
フィルタ後のフォームの件数の...
-
年月日を持つテーブルから年月...
-
クエリで出来た表にチェックボ...
-
【ACCESS】フォーム名/コントロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コンボボックス 選択後のカー...
-
条件に応じてコンボボックスの...
-
access 検索結果をテキストボッ...
-
Dcount関数が表示されない。
-
ActiveXコントロールのコンボボ...
-
VBA コンボボックスの重複削除
-
CrystalDiskinfoの使い方!HDD/...
-
ユーザーフォーム上にあるコン...
-
Accessのコンボボックス内項目...
-
Accessで、コンボボックスから...
-
Accessで家計簿を作っているの...
-
エクセルVBA コンボボックスで...
-
アクセス2000で2回目の検索がで...
-
ACCESS2003のコンボボックスで...
-
Access 2016 のプロパティ(プル...
-
フォームのプロパティを設定し...
-
エクセルVBAユーザーフォー...
-
ACCESS VBA で複数項目検索にテ...
-
ユーザーフォームを使ってのマクロ
-
YahooのIDがロックされてしまい...
おすすめ情報