- ベストアンサー
アクセスのマクロ機能を使った検索について質問です。
200件のデータがありまして、ある条件に合致したデータのみを連票形式で表示したいのですが、上手くいきません。ご教授願います。 例えば、名前で検索する時に「鈴木一郎」で検索すると該当データは1件ですので単票形式で表示させても問題無いわけですが、「鈴木*」とワイルドカードを使って検索した場合には該当データが5件とかあるわけです。この場合に、該当する5件を連票形式で単一のビューで表示したいのですが、いきづまってます。どなたか教えてください。お願いします。 マクロを実行させるボタンは単票形式のフォーム上に貼り付けてあります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
はじめまして。 表示させたい項目はフォームでしょうか?レポートでしょうか? フォームでの組み方ならSQL(クエリ)との組み合わせがよいでしょう。 あとでレポートの表示にも役立ちます。 ▼こんなデータ例で説明します。 ---------------------------------------------- ○テーブル名 [名前データ] ○フィールド名 [コード] [名前] ---------------------------------------------- コード データ 001 山田 一郎 002 鈴木 太郎 003 佐藤 花子 004 鈴木 良子 005 坂本 久太郎 : : ▼用意するもの 1)名前データのデータシート型フォーム [FORM02] 2)上記をサブフォームとして表示させる単票フォーム[FORM01] ▼名前データのデータシート型フォーム[FORM02]の作成 1.普通にデータシート型のフォームを作ります。 2.レコードソースを書き換えます。 ---例----------------------------------------------------------- SELECT 名前データ.コード AS コード, 名前データ.名前 AS 名前 FROM 名前データ WHERE ((名前データ.名前) Like IIf(IsNull([Forms]![FORM01]![名前]),"*","*" & [Forms]![FORM01]![名前] & "*")); #Like IIf(~が重要! ▼単票フォーム[FORM01]の作成 1.先に作った[FORM02]をサブフォームとして埋め込みます。 名前を[SubForm]としてつけておきます。 3.検索用フィールドのテキストボックスを非連結で作って おきます。このとき、名前は「名前」としてください。 4.「名前」の更新後処理に、以下プロシージャを組み込みます。 ------------------------------------- Private Sub 名前_AfterUpdate() DoCmd.Requery "SubForm" End Sub ------------------------------------- これでFORM01を開いた時は全登録データが表示され、名前フィールド になにか検索文字列が入り、更新されたタイミングで、SubForm に該当 分のみが表示される仕組みのできあがりです。 これを応用すれば、レポートも同様に検索分のみを表示させることが できますよね。(フォーム内にレポートをオープンするコマンドボタン をつくっておき、オープンするレポートのレコードソースを、検索ソー スと同様にする) がんばってください。
その他の回答 (1)
- misaki02
- ベストアンサー率66% (4/6)
例ですが 単独テーブルのデータ表示を 条件検索しない状態で 1件ずつ表示していくことはできますか。 これができるなら いったん検索結果を仮テーブルに出力してから 作業を行って 終了時にデータを戻してはどうでしょうか。 全くのシロウトなのでおかしなことを 書いてますが できると思います。
補足
回答ありがとうございます。1件づつの表示は可能です。 「いったん検索結果を仮テーブルに出力してから」のところがミソでしょうか?
補足
回答ありがとうございます。がんばって、やってみます。