- ベストアンサー
ACCESSで困ってます
ACCESS2000でお聞きしたいことがあります. フォームのテキストボックスから、初めの数文字を入力するだけで それに適合したデータのみをIEのオートコンプリート機能のように 下部にずらっと表示させ、そこから選択させるなんてことは 可能でしょうか? コンボボックスで選択する方法をとっていたのですが、 データが増えてきたため表示されるデータが多すぎるのです。 どなたかアドバイスいただけたら助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
テキストボックスのコントロールソースに、クエリーのフィールドを指定します。 クエリーがなければ、テーブルの全フィールドを表示するクエリーを作りましょう。 そのクエリーの表示したいフィールドの抽出条件欄へ、 Like [検索したい文字を入力] & "*" と入力します。(区切りは、半角スペースです。) クエリーに Q宛名検索 等の名前を付けて保存します。 フォームのプロパティでコントロールソースに、そのクエリーを指定します。 これでフォームを開こうとすると、検索したい文字を入力 というパラメーター入力を求めるインプットボックスがでます。 ここで、山田 と入力すると、山田さんがすべて表示されます。 これが、住所であれば、 Like "*" & [検索したい文字を入力] & "*" と、式を入力し、京都 を入力すると、東京都や、京都市を含む一覧が表示されます。 クエリーは選択クエリーで作ります。
その他の回答 (2)
- Nii
- ベストアンサー率48% (79/162)
オートコンプリート機能のように、該当しないデータは表示しないという事でしたら無理ですが、表示される順番がバラバラという事でしたら、昇順に並べるように指定するだけで、目的を達成すると思われますが。 データ量が多く、インデックスが設定されて居ない場合は、動作が重いので、あまりお奨めしませんが。
- coco1
- ベストアンサー率25% (323/1260)
こんばんは。 テキストボックスで下にずらーっと、というのは不可能です。テキストボックスにはそもそもリスト表示の機能はありません。 そこはやはりコンボボックスの出番です。で、コンボボックスにインクリメンタリサーチのコードを書けば一文字入力するたびにリストが絞り込まれるようなのは実現可能です。 もともと、コンボボックスのソースがキーで整列されている場合、始めの数文字が英数字の場合、その英数字を入力すると一致するソースだけしか表示されないような仕様ではありませんでしたか? 2バイト文字の場合は入力→確定の作業が必要ですが、変更時イベントを工夫することで、可能になります。 また、コンボボックスと別にテキストボックスを一つ配置し、テキストボックスに頭文字などを入力して、コンボボックスにフォーカスが移ったときに頭文字が一致するソースのみを表示する、という方式の方が簡単かも知れません。