• ベストアンサー

Access 数十件のデータからの入力を簡単にしたい

いつもお世話になっております。 Accessで施設利用状況の管理を行っています。 予約があると「利用テーブル」に「利用者」や「利用会議室」「人数」等を入力します。 「利用者」フィールドは「利用者マスター」とリレーションを組んであり、「利用者マスター」に登録してある数十件から選ぶ形をとっているのですが、登録してある中から該当者を見つけるのに苦労しています。 別フィールドを設け、「あ」「か」というような頭文字を入力した時、その登録者から絞り込んでいけるようにしたいのですが、どうすればよいか教えて下さい。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>別フィールドを設け・・頭文字を入力した時その登録者から絞り込んでいけるようにしたいのですが 利用者マスターにふりがなのフィールドを作りフォームの利用者のコントロールをコンボボックスにして値集合ソースに利用者マスターを設定しふりがなで昇順にソートする。 コンボボックスは表示は2列にしてふりがな・利用者の順にすればコンボボックスを開き先頭文字を入力していくとコンボ内のレコードが移動して表示してくれます。 別の方法として 頭文字を表示するコンボボックスとそのコンボボックスの値を使って利用者のコンボボックスやリストボックスに絞込みをかけることも出来ます。 これは頭文字コンボボックスは「あ」~「ん」までの文字を設定しておき利用者のコンボボックスの値集合ソースのふりがなに抽出条件を =Me![頭文字コンボボックス] または =[Forms]![フォーム名]![頭文字コンボボックス] のように抽出条件をつけておき頭文字コンボボックスの更新後処理のイベントで Me![利用者コンボボックス].Requery として頭文字コンボボックスの値を使って利用者コンボボックスのレコードを抽出した状態に出来ます。

hasmiya
質問者

補足

いつも丁寧で正確なアドバイスありがとうございます。 アドバイスいただいた方法を試してみました。 2つの方法がありますが、使い勝手を考え後述の方法(コンボボックス利用の方法)でいきたいと思います。 アドバイス通り設定しているのですが、アドバイス欄の下から7行目あたりがうまくいきません。 抽出条件に =Me![頭文字コンボボックス] と入力すると =[Me]![頭文字コンボボックス] になり、フォームを表示させるとパラメータ入力画面が出てきます。 =[Forms]![フォーム名]![頭文字コンボボックス]だとエラーが出ます。 何がダメなのでしょうか?教えて下さい。

その他の回答 (3)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.4

>=[Forms]![フォーム名]![頭文字コンボボックス] をどこに設定しているのでしょうか。 'Me!利用者'マクロを見つけることができません。マクロが存在しないか、新規マクロが保存されていません。 SQLステートメントで設定されていれば出ないエラーなのですが・・。 値集合ソースに直接=[Forms]![フォーム名]![頭文字コンボボックス]としているわけではないですよね。 すいません。状況がイマイチ把握できません。

hasmiya
質問者

補足

何度もありがとうございます。本当に感謝しております。 アドバイスの件ですが、「新規入力フォーム」があり、そこに「利用者」と「頭文字・・・」というコンボボックスを設定してあります。 =[Forms]![新規入力フォーム]![頭文字コンボボックス] として、「利用者」コンボボックスの値集合ソースのSQLステートメント:クエリビルダで「利用者マスター」の「ふりがな」と「利用者名」フィールドを設定し、「ふりがな」フィールドの抽出条件部分に記述しました。 厚かましいのを承知で質問させて下さい。上記方法の逃げ道として、 =Me![頭文字コンボボックス]が [Me]![頭文字コンボボックス]にならない方法はないのでしょうか? よろしくお願いします。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>抽出条件に=Me![頭文字コンボボックス]と入力すると =[Me]![頭文字コンボボックス]になり、フォームを表示させるとパラメータ入力画面が出てきます。=[Forms]![フォーム名]![頭文字コンボボックス]だとエラーが出ます。 =[Me]![頭文字コンボボックス]になるという事は頭文字コンボボックスを取得できないという事ですね。 =[Forms]![フォーム名]![頭文字コンボボックス]のエラーは何とでるのでしょうか。 抽出条件をいれるのは値集合ソースをSQLステートメントを開きふりがなの抽出条件に入れてください。 ふりがなの入力が「あ」などの1文字ならそれで出来るはずなのですが・・。 ふりがなを1文字ではなく全て入力している場合は抽出条件に =LIKE [頭文字コンボボックス] & "*" で先頭一致で抽出出来ます。 SQLビューでは SELECT [利用者マスター].ふりがな, [利用者マスター].利用者 FROM [利用者マスター] WHERE ((([利用者マスター].ふりがな) Like [Forms]![フォーム名]![頭文字コンボボックス] & "*")) ORDER BY [利用者マスター].ふりがな; こんな感じになるはずなのですが。

hasmiya
質問者

補足

早速のアドバイスありがとうございます。 =[Forms]![フォーム名]![頭文字コンボボックス] の方法ですと、フォームを表示させ頭文字のコンボボックスで何かを選択した時に 'Me!利用者'マクロを見つけることができません。 マクロが存在しないか、新規マクロが保存されていません と出ます。

  • tarodaro
  • ベストアンサー率43% (7/16)
回答No.1

「利用者マスター」に「ふりがな」のフィールドが必要 フォームが単票形式なら、動的な絞込みも出来ますが >数十件から選ぶ 程度であれば、単純にリストを50音順に並べるだけでいいのでは? フォームをデザインモードで開き、「利用者」のコンボ(?)のプロパティの 値集合ソースをポイント、右端の「...」を押せばクエリデザイナが表示されるので ふりがなで並べ替えるように変更しましょう

関連するQ&A