Microsoft Access 掲示板

複数項目の検索画面を一画面で検索したい

11 コメント
views
4 フォロー

うまく表現できないのですが
検索画面に 検索項目が3個(例えばA・B・C)あります
その項目ごとに検索ボタンを設置して検索したいです
◆検索画面に検索目的ごとの検索ボタンを設置して
一画面で、3項目の目的ごとに検索したい
検索条件は複数条件は考えておりません
その場合のVBAを教えていただけませんか
現在は、目的ごとに検索画面を立ち上げて検索しております
目的ごと3画面を作っております

mov8
作成: 2022/03/25 (金) 11:33:48
通報 ...
1

現在は、目的ごとに検索画面を立ち上げて検索しております
目的ごと3画面を作っております

これはVBAで実装してますか。
もしそうなら、そのVBAを提示してください。

2

現在は【検索目的】ごとに、検索画面を作成しております
見よう見まねで作動いたしておりますが
【検索目的】を変更する場合に
現在の画面を閉じて、別な画面を立ち上げております

Private Sub メニューを閉じる_Click()
  DoCmd.Quit acQuitPrompt

End Sub

Private Sub Form_Current()

End Sub

Private Sub 解除ボタン_Click()
 Me.FilterOn = False
 Me.検索.Value = ""
End Sub

Private Sub 検索ボタン_Click()

 Me.Filter = "行先 like'" & 検索 & "'"
 Me.FilterOn = True

End Sub

3

そのコードでうまく行っているなら、それぞれのフィールド用の検索テキストボックス、コマンドボタンを配置して、
提示のVBAコードをそれぞれのコマンドボタンに設定すればいいだけだと思いますが、
どこまでできて、どのへんで躓いていますか。

とりあえずやってみて、躓いたらその時点でのコードを提示してください。

4

ありがとうございました。ギブアップです
いろいろ書籍をみましても、一画面で複数項目の項目ごとの検索方法がありませんでしたので
SOSをしましたが、再度イチから出直してみます。ありがとうございました

5

テーブル構成、フォーム設計、検索条件などの詳細が不明なのが下記と仮定して回答します。

検索対象フィールドは A, B, C の3つで、すべてテキスト型とします。

上記のフィールドを含むテーブルをレコードソースとする帳票フォームで検索結果を表示させるとします。

帳票フォームのフォームヘッダーに検索値入力用テキストボックス3つ、検索(抽出)実行コマンドボタン3つを配置して下記のような名前にします。
txtA, txtB, txtC, cmdA, cmdB, cmdC
さらに抽出解除用ボタンを配置して名前を cmd解除 とします。

コマンドボタンクリック時のイベントプロシージャを下記のように記述します。

Private Sub cmdA_Click()
    Me.Filter = "A like '" & Me.txtA & "'"
    Me.FilterOn = True
End Sub

Private Sub cmdB_Click()
    Me.Filter = "B like '" & Me.txtB & "'"
    Me.FilterOn = True
End Sub

Private Sub cmdC_Click()
    Me.Filter = "C like '" & Me.txtC & "'"
    Me.FilterOn = True
End Sub

Private Sub cmd解除_Click()
    Me.FilterOn = False
    Me.txtA.Value = ""
    Me.txtB.Value = ""
    Me.txtC.Value = ""
End Sub
6
名前なし 2022/03/27 (日) 18:00:43 02bca@cc45c

ありがとうございます
VBAは、コピーしながら作成してきましたので
複数の検索画面がうまく作成できるかどうか
挑戦してみます。時間がかかると思いますが
結果報告いたします
本当にありがとうございます。

7
hiroton 2022/03/28 (月) 07:52:43 6df6c@f966d

画面という言い方がいまいちだけど単にサブフォームとして3つ並べればいいだけなのでは?

8

今年76歳になる超初心者です
いろいろとありがとうございます
これまで『帳票フォーム』の経験がなく
『単票フォーム』で作成、『分割フォーム』で検索をいたしておりました
『帳票フォーム』は経験がありませんでしたので
いろいろと戸惑いがありましたが

新規で『txtA, txtB, txtC, cmdA, cmdB, cmdC』の名称でテーブルを作成して
テストいたしましたところ、3検索項目の検索に成功いたしました
ありがとうございます

ただし、自分がイメージしていた検索結果が『分割フォーム』の表示とは違いますので
今回お教えいただいた検索結果から単票フォームへの接続方法を勉強してみます

>>画面という言い方がいまいちだけど
今後は『フォーム』と表現します

>>サブフォームとして3つ並べればいいだけなのでは
お恥ずかしいですが『サブフォーム』も未経験です
勉強いたします。

9
hiroton 2022/03/30 (水) 16:48:47 8401c@f966d

完成形のイメージが分からなかったので「そうではない」という返答を期待して「サブフォーム」を話題にしたんですが、

3検索項目の検索に成功いたしました

ということなんで忘れてもらっていいですよ

10

新規で『txtA, txtB, txtC, cmdA, cmdB, cmdC』の名称でテーブルを作成して
テストいたしましたところ、3検索項目の検索に成功いたしました

テキストボックスとコマンドボタンをフォーム上に配置するというのが私の回答です。
テーブルを作成するという話はどこにもありません。

うまく話が通じていないようです。Accessの基本や用語がよく理解されていないように思います。

とりあえずうまく行っているようなのて、私の回答もここまでにしときます。

まずは、入門書か入門サイトで基本事項と用語を学習されることをお勧めします。

11

ちなみに、分割フォームだとしても、No5 の回答と同じ方法で実現できます。