画像のようにコンボ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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
ACCESSのフォーム上で複数検索したい項目がある場合どうすればいいですか?
Access(アクセス)
-
フォームに複数の検索機能をつける方法
Access(アクセス)
-
-
4
Accessクエリ 複数フィールドを対象に空白の場合は全件表示したい
Access(アクセス)
-
5
ACCESS検索★ある文字を複数のフィールドの中から検索したい
その他(コンピューター・テクノロジー)
-
6
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
7
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
8
Accessフォームでの複数条件検索
Excel(エクセル)
-
9
アクセスで特定のレコードのみのレポートを印刷したいのですが。
Access(アクセス)
-
10
accessvba 複数条件でFilterをしたい
Access(アクセス)
-
11
ACCESSのクエリで抽出条件「または」は9個までしかかけませんよね…
Access(アクセス)
-
12
ACCESS 「パラメータの入力」を消したい!!
Access(アクセス)
-
13
Access サブフォームでの選択行の取得
その他(データベース)
-
14
Access フォームで条件抽出したものを印刷プレビューしたい
Access(アクセス)
-
15
access マクロでのフィルタの解除の方法
Access(アクセス)
-
16
access2019 チェックボックスと連動したクエリ抽出条件について
Access(アクセス)
-
17
アクセスでテーブルの変更内容をフォームに反映させるには?
その他(データベース)
-
18
「フォームを作成できませんでした」
Access(アクセス)
-
19
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
20
Accessを開きなおすとテキストボックスの値がエラー#Name?になる
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コンボとセットの違い
-
Access コンボボックスの値を...
-
アクセスのコンボボックスの重...
-
Access 複数条件検索の設定が上...
-
人生が開けない夜みたいなんですが
-
ラテン語で「闇」を意味する単...
-
「ぱーりない」「パーリナイ」...
-
北アフリカ系ハーフです。17歳...
-
推しの子という話題のアニメを...
-
闇バイトの応募はおとり捜査で...
-
海老と猿… どちらが闇深いですか?
-
「ためにです」っていう表現も...
-
「光と闇」の「中間の世界」とは?
-
無職転生より面白いなろう小説...
-
梶井基次郎の「闇の絵巻」という...
-
「闇すぎる」の意味わかる方い...
-
入り口と出口の間には、何があ...
-
転生しなずに天国にずっといれ...
-
水樹奈々 【ETERNAL BLAZE】 ...
-
アメリカのパーティー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access コンボボックスの値を...
-
Access 複数条件検索の設定が上...
-
コンボとセットの違い
-
コンボボックスの値が変更され...
-
アクセスのコンボボックスの重...
-
Access パラメータークエリ VBA...
-
Nullについて
-
「コンボ」の意味教えてください
-
accessの連結コンボについて
-
ACCESSのコンボボックスの連動...
-
アクセス コンボボックス VBA
-
ControlTypeの切り替えはデザイ...
-
ACCESSコンポボックス
-
しょーもない質問ですが…
-
CD-RWドライブで、CD-...
-
VBAで検索した結果をコンボボッ...
-
ラテン語で「闇」を意味する単...
-
「ぱーりない」「パーリナイ」...
-
闇バイトの応募はおとり捜査で...
-
家系が途絶える事は悪い事か
おすすめ情報