- ベストアンサー
ACCESS VBAで複数項目検索にテキストボックスとコンボボックスを使用する方法
- ACCESS VBAを使用して複数項目検索を行いたい場合、テキストボックスとコンボボックスを活用することができます。txtPC番号、com所属部門、txt使用者のいずれかの条件が入力された場合に、該当するフォームのレコードを抽出する方法です。
- コンボボックスで選択した場合にうまく抽出できない場合、コードの一部に誤りがある可能性があります。具体的には、com所属部門の再クエリが適切に実行されていない可能性があります。コードを確認し、誤りを修正してください。
- ACCESS VBAを使用して複数項目検索を行いたい場合、テキストボックスとコンボボックスを適切に組み合わせて使用することが重要です。txtPC番号、com所属部門、txt使用者のいずれかの条件が入力された場合に、該当するレコードを抽出するためのフィルタリング処理を行いましょう。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
コンボボックスの使い方に間違いがあり、入力した値が各txtコントロール値になってない。連結列プロパティー等どうなっているか見直しします。 コンボボックスのときだけおかしいならこのコードは変えないで下さい。たぶん正しくて変える必要ありません。 もう1つボタンを用意しこちらにはコンボボックスの仕掛けで処理させると何がどう違うかわかりませんか?。 後、このボタンクリック以外で各txtコントロールをクリアしたりしてませんか。似た仕掛けを見たことあります。 3つ共値が無い時のロジックも入れた方が良いです。
その他の回答 (2)
- layy
- ベストアンサー率23% (292/1222)
所属部門で抜くときフィルタ設定しないで再クエリだけというのはどういう意図でしょうか。 条件変えて再クエリならまだわかります。 さらに、 ここがクエリなら3項目ともフィルタじゃなくてもクエリ側でなんか出来るようにも思います。
- sykt1217
- ベストアンサー率34% (277/798)
うまく抽出できないというのはどう「うまく抽出」できないのでしょう。 期待値がわかりませんし、現状どうなっているのかもわかりません。 もし 「コンボボックスの際だけif文の中に入らない」(「DoCmd.Requery "com所属部門"」を実行しない) ということであれば、ブレークポイントを敷いてのデバッグ時、com所属部門に値は入っていますか? そもそも・・ コンボボックスの初期値はどうなっていますか? またコントロールソースはベタ書きですか? 何かしかから引っ張ってきているのですか? 補足お願いします。
補足
アドバイスありがとうございます。 現状ではコードを書いて一番最初にコンボボックスで検索した部門が、 ほかの部門を選択して抽出ボタンを押しても出てきてしまうという 現象がおこってしまっています。 コンボボックスはプロパティ画面にて 値集合タイプ「テーブル・クエリー」 でテーブルの値を参照させています。
お礼
ありがとうございました。 一つ一つ作業していったところ、 無事抽出できるようになりました。 また、3つとも値がないときのif分も追加いたしました。 本当にありがとうございました。