ここから本文です

Access超初心者です。 検索システムを作成しており、「氏名」と「社員番号」で検...

ysd********さん

2020/7/314:01:43

Access超初心者です。
検索システムを作成しており、「氏名」と「社員番号」で検索できるようにしています。

使用者に「氏名」のみコンボボックスで選択をしてもらうようにしているのですが、データの種類が多すぎてとても選べません。
そのため、このコンボボックスにあいまい検索として、例えば「田中」と入力すると田中という文字を含むものが候補として出てくるようにしたいです。自動拡張をつけても、先頭にその文字がないと拾ってくれません。田中という文字が中間にあっても、候補が出てくるようにしたいのですが可能でしょうか。

氏名のコンボボックス:txt_simei

コンボボックスに表示させるデータは、重複があるのでクエリ「Q_氏名」で固有の値にし、昇順で並び替えをしています。そして、コンボボックスの値集合ソースに以下を入力。

SELECT [Q_氏名].氏名 FROM Q_氏名 ORDER BY [氏名];

よろしくお願いします。

閲覧数:
22
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

glo********さん

2020/7/508:57:47

コンボボックスでは出来ませんし、他のコントロール単体でも無理です。


あきらめるか、代理として考えられるのは
(考えられるということであり、仕様に合うかどうかは分かりません)
(A) テキストボックス + リストボックス
(B) テキストボックス + サブフォーム
(C) テキストボックス + ポップアップさせての検索フォーム
いずれにしても各種イベントでVBAで記述しまくらないと無理です。
めんどくさいです。

個人的には(C)が整合性を取りやすく構築できる気がします。
最終的に値を確定させるのに、ボックスで途中入力状態になってる値を上書きさせるのが面倒なので、それなら別フォームで検索させて値をメインフォームのにブッ込めばいいのが比較的簡単(それでも面倒)な理由。

ちなみに曖昧検索にするためのRecord(Row)SourceはVBA上では
"SELECT [Q_氏名].氏名 FROM Q_氏名 WHERE [氏名] Like '*" & Replace(Nz(Me!txt_simei,""),"'","''") & "*' ORDER BY [氏名];"
になると思われます。

  • 質問者

    ysd********さん

    2020/7/608:44:11

    ご回答ありがとうございます。
    コンボボックス等ではできないのですね。

    Cの方法に関して、テキストボックスの配置されたフォームと、検索用のフォームと2つあり、テキストボックスに入力したら、検索用のフォームが立ち上がり、選択されたものがテキストボックスに入るというイメージでしょうか?

  • その他の返信(2件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる