- ベストアンサー
検索結果の表示方法とクエリ設定について
- 検索結果を単票と一覧で表示させる方法について教えてください。
- 現在はクエリに抽出条件を設定してフリー検索を行い、単票フォームで検索結果を確認していますが、面倒なので一覧フォームで表示したいです。
- また、検索結果の単票フォームは画面上に残したいので、一覧表示は別フォームで行いたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず作成するのは、パラメータの値を入力するフォームです ここに、テキストBOXを1つ配置させ入力した値をクエリに参照させるわけです よってクエリにも少し手を加えなければなりません 現在作成しているクエリの Like "*" & [ 種別検索「人間・動物・物」 ] & "*" の部分を Like "*" & [Forms]![作成した入力用フォームの名前]![入力するテキストBOXの名前 ] & "*" のようにしたクエリを使って一覧フォームが開くようにします この一覧フォームから単票フォームを開くには、開いている一覧フォームの主キーと先に作成したパラメータクエリとレーションシップをさせたクエリを作成して、対象となる単票フォーム用のクエリを作成します eokwave さんの例でいうなら、該当データには主キーであるIDフィールドがある訳です この主キーの値かつ、話の種別の部分が先に作成したパラメータクエリの入力用フォームの値のデータをクエリで抽出すれば単票用のデータの作成が行えます 具体的に言うなら、作成したクエリのID部分と話の種別部分の2つをフォームの値を参照するようにしたクエリを作成するのです ID部分は一覧フォームから引用し、話の種別部分は検索語入力するフォームから引用するクエリを作成して、それを単票フォーム用のデータとして利用します 単票フォームを開くアクションは、作り手の感覚次第でしょうか レコードセレクター部分をダブルクリックすると該当のデータが単票フォームで開くようにしても良いでしょう 私は、フォームの詳細部分をダブルクリックさせると単票フォームに切り替わる動作にさせる事が多いです(該当データのテキストBOXなどのパーツが無い部分のどこをダブルクリックしてもアクションしてくれますので、使う人間も特定の部分でダブルクリック動作させるより好評です)
その他の回答 (3)
- chayamati
- ベストアンサー率41% (260/624)
>単票フォーム「検索結果」にコマンドボタンを配して、検索結果を一覧フォームで表示させたいと思っています.。 ★反対です。 一覧フォームの詳細にコマンドボタンを配して、 単票フォームのクエリーの主キーに一覧フォームの主キーを検索条件にし、 単票フォームの話の種類の検索条件を外すとピンポイントで単票フォームを開きます。 ★またクエリーを見ますと。文字列の長そうなのは内容くらい これをフォームフッタに配置すれば、詳細で選ばれたレコードの内容のみが表示されます 単票票フォームは不要になります。 ★クエリはフォームに内包することが出来ます フォームのデザインビューで、プロパティーシートのデータタグのレコードソースの右端の…をクリックすると内包のクエリデザインになります
お礼
私がグズグズしていることもあり、ご親切に対応頂きまして本当にありがとうございました。貴重なご意見と受け止めさせていただきまして、勝手ながらお礼とさせて頂きたいと思います。有難うございました。
- chayamati
- ベストアンサー率41% (260/624)
画面に余裕があれば フォームフッタに単票のボックスを配置します これで帳表フォームを開くとアクティブになった行がフォームフッタに表示されんす。 従って帳票部分のボックスはフォームフッタから除外することも出来ます
お礼
アドバイスありがとうございます。
- tamu1129
- ベストアンサー率58% (1319/2258)
そのLile文を含んだクエリーをパラメータクエリーといいますが、そのパラメータの値はどこで入力しているのでしょうか? このような事を行うには、そのパラメータを入力する値を入力する為のフォームを作成します 入力された値を参照してフォームを開くようにし、複数のデータが対象となる事が予想されるのですから、最初に一覧フォームで開くようにして、その一覧フォームの対象部分をダブルクリックするなりして、詳細として単票フォームが開くという作りにした方が良いと思います または、最初のパラメータクエリを実行させる時に、対象となる物をカウントさせ、1つだけの時には単票フォームで開き複数対象となる場合には一覧フォームとなるようにするなんて事も出来ますけどね eokwave さんが今言っている通りに動作させたいならそのようにする事も可能ですが、パラメータクエリを実行させる場合にその値をどこかのフォームで保持せずにいると、パラメータ実行するたびにパラメータの値を入力しなければならなくなります
お礼
選択肢をご提示いただきまして本当にありとうございます。
補足
早速アドバイスを頂きましてありがとうございます。 tamu1129様の選択肢「アドバイス」の中で、下記の方法が合理的だと感じました。そこで、恐縮ですが設定の仕方をアドバイス願えませんでしょうか。具体的には、一覧リスト「一覧フォームを作成する」から指定したレコードをピンポイントで単票フォーム「現在の単票フォームを使うか作り直す」で開く方法がわかりません。 ◆アドバイスの選択肢から私の賛同案です 入力された値を参照してフォームを開くようにし、複数のデータが対象となる事が予想されるのですから、最初に一覧フォームで開くようにして、その一覧フォームの対象部分をダブルクリックするなりして、詳細として単票フォームが開くという作りにした方が良いと思います。 以上ですが、宜しくお願いします。
お礼
詳細にご説明いただきまして本当に有難うございました。これができればベストだと思います。しかしながら「パラメータクエリとレーションシップをさせたクエリ」との記述ですが、リレーションシップを使ってのデータベース構築にアレルギーがありまして「なしのデータベース作り上げてしまっている背景もあります」、リレーションシップに抵抗がなくなるまで、取り組みに踏み切れません。ごめんなさい。現在、一部のデータベース「今回の質問内容の方法で対処を予定していた」を除き一覧フォームのフッターとヘッダーを使って「メモ型」を配して、一覧リストのレコードをクリックすることで、詳細な情報「単票の全てのテキスト情報」を表示させています。但し、アドバイスをお願いしてからの経緯から、自分自身やりたいと思った内容でもありましたので、ベストアンサーとさせて下さい。ACCESSはリレーショナル・データベースですので、それをまともに構築できるスキルになった時、質問させていただければと思います。有難うございました。