
画像のようにコンボ1、コンボ2、テキストボックス3という検索フォームフォームを作りました。
コンボ1は会社の部署、コンボ2は所属課、テキスト3は備考、メモ欄です。
検索開始をクリックしたら選択されている項目のみでレコードを表示させたいです。
パターンは、
コンボ1コンボ2テキスト3全て完全一致の検索。
コンボ1は選択、コンボ2は未選択、テキスト3は検索範囲を絞るワードを入れる、検索。
コンボ1、2が選択でテキスト3は空白で検索
最後にテキスト3のみで検索。
4パターンを作れと指示があり、本を読みながら検索フォームまで何とか漕ぎ着けた初心者です。
完全一致はマクロビルダーを使って出来たのですが、他のパターンがand検索にならず困っています。
マクロビルダーではこれらの事をするのは難しいでしょうか?

No.1ベストアンサー
- 回答日時:
こんにちは。
なかなか回答付かないですね、、
自信ありませんけど回答してみます。ご質問の内容自体はそれ程難しいことではないです。
ただ、さらりと書いていらっしゃいますが、マクロビルダーでこれを考えるのは大変です。できるとは思いますけど、その手順を説明するのがしんどいです。
よって、コンボボックスへデータ追加等の基本的な部分はできている前提で、VBA の回答をします。考え方は応用できると思います。
1.>レコードを表示させたいです。
・・どこに?
とりあえず、[検索フォーム結果] というサブフォームを作って、そこに表示させます。
2.検索条件について
4パターンあるとのことですが、恐らく考え過ぎです。シンプルに考えてみます。
まず、テキスト3が「備考」であるなら、テキストボックスに完全一致する検索語を入力するって大変じゃないですか?
部分一致検索(ワイルドカードによる)で問題ないと思います。
テキスト3が空の時は、ワイルドカードで挟んでしまえば良いだけ。
そこを押さえたら後は、
1)ComboBox1 に入力値があれば AND で条件を追加する
2)ComboBox2 に入力値があれば AND で条件を追加する
でご希望の結果を表示させる SQL が完成します。
検索ボタンの名前が btnSearchとしたら、そのクリック時に[イベントプロシージャ]、次のようなコードを書き込みます。なお、
cbo部署 → ComboBox1
cbo所属課 → ComboBox2
txt備考 → TextBox1
の様にご自身のコンロール名に置き換えて下さいね。
Private Sub btnSearch_Click()
'/Guard
If IsNull(cbo部署) * IsNull(cbo所属課) * IsNull(txt備考) Then
MsgBox "検索条件を入力して下さい", vbInformation
Exit Sub
End If
Dim dep As String: dep = Nz(cbo部署.Value)
Dim sec As String: sec = Nz(cbo所属課.Value)
Dim mem As String: mem = Nz(txt備考.Value)
Dim sql As String
sql = ""
sql = sql & "SELECT *"
sql = sql & " FROM [テーブル1]"
sql = sql & " WHERE [備考] LIKE '*" & mem & "*'"
If Len(dep) Then sql = sql & " AND [部署] ='" & dep & "'"
If Len(sec) Then sql = sql & " AND [所属課] ='" & sec & "'"
sql = sql & ";"
With Me.検索フォーム結果.Form
.RecordSource = sql
.Requery
End With
End Sub
ありがとうございます!!
ちゃんと検索できるようになりました。
KenKen_SP様の言う通り難しく考えすぎていたんですね…すべてのパターンで考えなければならないと思っていました。
頼るものが本しかなかったので本当に助かりました。
SQLというのも初めて知ったので、教えていただいたコードを意味を調べてみてとても勉強になりました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) Accessフォーム 一部のレコードだけを抽出する方法について 1 2022/06/28 18:45
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- 迷惑メール・スパム gmailの過去のメールを一括削除する方法について 3 2023/04/19 05:27
- エッセイ・随筆 尋常小学校唱歌『さくら さくら』の解釈について以下のものは成立しますか?普通じゃおもろない? 7 2023/02/26 16:52
- Access(アクセス) Accessでセレクタをダブルクリックで別フォームで詳細表示 3 2022/12/20 10:36
- au(KDDI) Android Gmail で検索して消す方法 1 2022/11/10 16:10
- Excel(エクセル) Excel フィルタ後のコピー貼付けと可視セルの関係について 3 2023/02/07 16:42
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
このQ&Aを見た人はこんなQ&Aも見ています
-
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
ACCESS検索★ある文字を複数のフィールドの中から検索したい
その他(コンピューター・テクノロジー)
-
ACCESSのフォーム上で複数検索したい項目がある場合どうすればいいですか?
Access(アクセス)
-
-
4
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
5
複数条件検索について
Access(アクセス)
-
6
Accessフォームでの複数条件検索
Excel(エクセル)
-
7
access 検索フォームで検索が出来ない(コードについて)
その他(データベース)
-
8
フォームに複数の検索機能をつける方法
Access(アクセス)
-
9
「フォームを作成できませんでした」
Access(アクセス)
-
10
ACCESSのフォームからデータの追加ができない
その他(データベース)
-
11
accessvba 複数条件でFilterをしたい
Access(アクセス)
-
12
access マクロでのフィルタの解除の方法
Access(アクセス)
-
13
Accessクエリ 複数フィールドを対象に空白の場合は全件表示したい
Access(アクセス)
-
14
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
15
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
16
アクセスVBAのMe!と[ ]
Access(アクセス)
-
17
Access2010 「演算子がありません」エラー
その他(データベース)
-
18
ACCESS フォームをそのまま印刷について
その他(データベース)
-
19
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
20
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サブフォームにあるコンボボッ...
-
Access コンボボックスの値を...
-
コンボとセットの違い
-
Access 複数条件検索の設定が上...
-
セカンドアルバムくらいまでが...
-
こんなメッセージが届いたので...
-
ラテン語で「闇」を意味する単...
-
眠剤について教えてください。...
-
麻原彰晃について 空中浮揚は勿...
-
なぜタブーなのか?
-
水ミル
-
光と闇
-
入り口と出口の間には、何があ...
-
中二女子です。授業中眠くなっ...
-
クレヨンしんちゃん オラの映画...
-
ヒロアカのオールマイトは何で...
-
「闇すぎる」の意味わかる方い...
-
絽の着物に博多帯
-
最高のパフォーマンスとは 足を...
-
霊界を信じる方に。霊が転生し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access コンボボックスの値を...
-
Access 複数条件検索の設定が上...
-
コンボとセットの違い
-
アクセスのコンボボックスの重...
-
コンボボックスの値が変更され...
-
VBAで検索した結果をコンボボッ...
-
しょーもない質問ですが…
-
access vba コンボボックス 読...
-
サブフォームにあるコンボボッ...
-
Access パラメータークエリ VBA...
-
コンボドライブとSuperDrive
-
「コンボ(ドライブ)」の由来、...
-
「コンボ」の意味教えてください
-
ControlTypeの切り替えはデザイ...
-
Accessの選択クエリの選択を切...
-
ACCESSのコンボボックスの連動...
-
↓Twitterで流行ってるこれって...
-
(アクセス)フォームからのメ...
-
Nullについて
-
眠剤について教えてください。...
おすすめ情報