お世話になります。
accessで下記の質問を立てましたが、解決できなかったので再度質問いたします。
(http://oshiete.goo.ne.jp/qa/6890851.html)
下記に説明をしています、分かりにくいかもしれません。。
どうぞご指導をお願い致します。
◆DBの構成◆
1)テーブル名:名簿(フィールドは下記の通り)
ID,名前1、名前2(担当者名)、ふりがな、住所、電話、住所1、住所2(マンション名等)、備考等)
2)フォーム名:検索フォーム
デザインビューで初めから作成して、テキストボックスを1つ作っています。
名前は『キーワード検索ボックス1』です。
またテキストボックスの下に検索をしてヒットした名簿を表示するサブフォームを入れています。
3)サブフォームのクエリ
・元データ
⇒名簿のテーブル。全フィールドを挿入して作成。
メインフォーム内のサブフォーム名は『(sub)キーワード検索』
・抽出条件
⇒フィールドの『名前1』、『名前2』、『ふりがな』、『住所1』、『住所2』、『備考』の抽出条件欄に
1行ごとずらして、『Like & "*" & [Forms]![検索フォーム]![キーワード検索ボックス1] & "*"
とした。
・マクロ
⇒メインフォームのテキストボックスの隣に検索という名前をつけたボタンを配置。
マクロは再クエリでコントロール名を『(sub)キーワード検索』とした。
ボタンのプロパティのイベントタブでクリック時に上記のマクロが実行されるように登録した。
◆やりたい事◆
accessで会社の顧客名簿を作成しました。
今の状態は1個のキーワードだと検索結果がサブフォームに表示されます。
それを、2段階で絞りこんでいく方法を探しています。
テキストボックスをもう一個作り、2個のキーワードで絞りこみたいです。
まず、1個のキーワードで『名前1』、『名前2』、『ふりがな』、『住所1』、『住所2』、『備考』のフィールドを検索してヒットしたものをサブフォームで表示させる。さらにそこから、また任意のキーワードを
『キーワード検索ボックス2』に入力してボタンをクリックすると、同じサブフォーム(または別のフォームに)絞りこみ検索結果が表示されるようにしたい。またVBAは苦手なので、クエリで解決をしたいです。
◆出来たこと、出来なかった事◆
・質問NO(6890851)で指導を頂いた、chuparkさんのある一つのフィールドに
『Like "*" & [Forms]![検索フォーム]![名前検索1] & "*" And Like "*" & [Forms]![検索フォーム]![名前検索2] & "*"』と入れると、そのフィールドに対しては2個のキーワードがヒットするとサブフォームに表示される事が出来た。
⇒これだと1つのフィールドに対してなので、やりたい事ではない。
1つのフィールドだけでなく、検索したいフィールド全てに対してまず1個のキーワードで
検索されたものを表示させ、そこから更にキーワードを検索して表示させたい。
・クエリに新しいフィールドを作りました。そこは全てのフィールドを『&』で結び、
抽出条件にchuparkさんの条件を入れてました。
⇒これだと一度に2個のキーワードを検索してしまう。1回目と2回目を比較もしたいので、一度ではなく、段階を踏んで検索が出来ない。また、フォーム自体を開いた時にサブフォームが真っ白になり
メッセージも出て見辛い。。(どんなメッセージが忘れました…)
以上
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
No1、No2です。
質問で3)サブフォームのクエリ
・元データ
⇒名簿のテーブル。全フィールドを挿入して作成。
メインフォーム内のサブフォーム名は『(sub)キーワード検索』
・抽出条件
⇒フィールドの『名前1』、『名前2』、『ふりがな』、『住所1』、『住所2』、『備考』の抽出条件欄に
1行ごとずらして、『Like & "*" & [Forms]![検索フォーム]![キーワード検索ボックス1] & "*"
とした。
ということなので、No1の(1)は同じ事なのでそのままクエリを使ってください。
No.3
- 回答日時:
>◆やりたい事◆
> accessで会社の顧客名簿を作成しました。
> 今の状態は1個のキーワードだと検索結果がサブフォームに表示されます。
> それを、2段階で絞りこんでいく方法を探しています。
> テキストボックスをもう一個作り、2個のキーワードで絞りこみたいです。
> まず、1個のキーワードで『名前1』、『名前2』、『ふりがな』、『住所1』、『住所2』、『備
>考』のフィールドを検索してヒットしたものをサブフォームで表示させる。さらにそこから、
>また任意のキーワードを
>『キーワード検索ボックス2』に入力してボタンをクリックすると、同じサブフォーム(また
>は別のフォームに)絞りこみ検索結果が表示されるようにしたい。
ご希望の事は、クエリを2重にして作成すればVBAを使わなくても、クエリと再クエリのマクロだけで可能です。
サブフォームのレコードソースのクエリ名が記載されていないので、仮に「Q_検索」としておきます。
この「Q_検索」のコピーを作成し名前を「Q_検索2」に変更し、デザインビューで、以下を修正変更して保存します。
1.テーブルの表示から、「Q_検索」を追加し、デザインビュー下側のデザイングリッドのテーブルの名称を全て、「名簿」から「Q検索」に変更します。
2.デザイングリッドの抽出条件の、
Like "*" & [Forms]![検索フォーム]![キーワード検索ボックス1] & "*"
の[キーワード検索ボックス1]の部分を全て[キーワード検索ボックス2]に変更します。
3.デザインビュー上側のフィールドリストエリアから、「名簿」テーブルを削除します。
次に、サブフォームをデザインビューで開き、レコードソースを「Q_検索」から[Q_検索2]に変更して保存します。
以上で目的の抽出が可能だと思います。
No.2
- 回答日時:
もうついでだから、少し便利に?
ボタンを二つ追加します。
名前 標題
cmdすべて表示 すべて表示
cmd検索開始 検索開始
上記を設定したら、フォームの
コード表に以下を貼り付け保存してください。
「クエリ名」はサブフォームのレコードソース
になるクエリです。実際に合わせて変更してください。
Private Sub cmdすべて表示_Click()
Me.埋め込み0.Form.RecordSource = "名簿"
Me.埋め込み0.Form.Requery
End Sub
Private Sub cmd検索開始_Click()
Me.埋め込み0.Form.RecordSource = "クエリ名"
Me.埋め込み0.Form.Requery
End Sub
使い方は、「すべて表示」をクリックすると
サブフォームのレコードソースが「名簿」に置き換わり、
サブフォームに全データが表示されます。
「検索開始」をクリックするとサブフォームの
レコードソースがクエリに置き換わり、検索
できるようになります。
必要なら設定してみてください。
なお、サブフォームのレコードソースは
初期値はクエリのままでいいです。
No.1
- 回答日時:
いろいろ考えてみましたが、やはりVBAを使わないと
簡単にはいきそうもありません。VBAといっても
それほど大変なことではないので一応方法を
あげておきます。
(1)
クエリの抽出条件に
Nz([Forms]![検索フォーム]![キーワード検索ボックス1])
を入れていきます。そのとき上記を
フィールド|名前1 |名前2 |ふりがな
テーブル | | |
並び替え | | |
表示 | | |
抽出条件 |入れる | |
または | |入れる |
| | |入れる
のように重ならないようにいれていってください。
クエリのSQL文ではOrでつながっていきます。
(2)
フォームにボタンを三つ設定します。
それぞれプロパティで、名前、標題を
名前 標題
cmd抽出1 抽出1
cmd抽出2 抽出2
cmdフィルタ解除 フィルタ解除
のように設定してください。
(3)
以下をメインフォームのコード表に貼り付け
保存してください。
なお、以下のコード中で
「埋め込み0」
とありますが、これはサブフォームを表示しているコントロール名で
サブフォームそのものの名前ではありません。初期値は「埋め込み0」
のような名前で登録されます。
Private Sub cmd抽出1_Click()
Me.埋め込み0.Form.Requery
End Sub
Private Sub cmd抽出2_Click()
Dim str As String
Dim strFilter As String
str = Me!キーワード検索ボックス2
strFilter = " 名前1 Like '*" & str & "*' Or 名前2 Like '*" & str & "*' Or ふりがな Like '*" & str & "*' Or 住所1 Like '*" & str & "*' Or 住所2 Like '*" & str & "*' Or 備考 Like '*" & str & "*'"
Me.埋め込み0.Form.Filter = strFilter
Me.埋め込み0.Form.FilterOn = True
End Sub
Private Sub cmdフィルタ解除_Click()
Me.埋め込み0.Form.FilterOn = False
End Sub
(4)
使い方は、
テキストボックスにデータを入れ、ボタンをクリックしていきます。
抽出2まで済むと、フィルタ解除のボタンをクリックすると、
抽出1のデータが表示されます。抽出2のボタンをクリックすると
再び抽出2のデータが表示されます。
わからないところがあれば補足してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
コンビニでおにぎりを買うときのスタメンはどの具?
コンビニでおにぎりを買うとき、何の具材を選ぶことが多いですか?
-
人生でいちばんスベッた瞬間
誰しも、笑いをとろうとして失敗した経験があると思います。
-
【お題】斜め上を行くスキー場にありがちなこと
運営も客も一流を通り越して斜め上を行くスキー場にありがちなことを教えて下さい。
-
Access 2段階のクエリの作り方
Access(アクセス)
-
access マクロでのフィルタの解除の方法
Access(アクセス)
-
ACCESSのフォームからデータの追加ができない
その他(データベース)
-
-
4
アクセスのフィールド表示を2段にする方法・抽出の方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSでVBAから選択クエリの抽...
-
フォームからクエリの抽出期間...
-
AccessでIDを入力したら他の項...
-
クエリーの結果をフォームに表...
-
ACCESSで、EXCELのような、sumi...
-
Accessでフィルタの実行アクシ...
-
パラメータ入力。
-
サブフォームを利用したクエリ...
-
AccessのフォームをExcelに出力
-
アクセス2007 フォームでフィ...
-
AccessでログインIDを抽出条件...
-
【Access2000】月末の日付を条...
-
クエリ実行結果0件の場合のフ...
-
エクセルで、抽出したデータだ...
-
Access サブフォームでの選択行...
-
X-Ripperというフリーウェアに...
-
ExcelのComboboxでマウスのスク...
-
Accessのコンボボックスでリス...
-
Accessでレコードの複製
-
Accessのコンボボックスの値が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSでVBAから選択クエリの抽...
-
AccessでIDを入力したら他の項...
-
クエリ実行結果0件の場合のフ...
-
ACCESSで、EXCELのような、sumi...
-
Accessでフィルタの実行アクシ...
-
アクセスのフォームに連番を表...
-
ACCESS2003のグループ化のエラ...
-
サブフォームを利用したクエリ...
-
VarChar型をINT型に変換するには
-
ACCESS2007 マクロ クエリのパ...
-
ACCESS フォームで抽出したデー...
-
Accessクエリの抽出条件にフォ...
-
フォームからクエリの抽出期間...
-
アクセス2007 フォームでフィ...
-
ACCESSで、フォームで抽出した...
-
Access2016埋め込みマクロでの...
-
access クエリでIIF文で抽出条...
-
ACCESS クエリのデザインビュ...
-
Accessのパラメータクエリ作成...
-
クエリーの結果をフォームに表...
おすすめ情報