プロが教えるわが家の防犯対策術!

 200件のデータがありまして、ある条件に合致したデータのみを連票形式で表示したいのですが、上手くいきません。ご教授願います。
 例えば、名前で検索する時に「鈴木一郎」で検索すると該当データは1件ですので単票形式で表示させても問題無いわけですが、「鈴木*」とワイルドカードを使って検索した場合には該当データが5件とかあるわけです。この場合に、該当する5件を連票形式で単一のビューで表示したいのですが、いきづまってます。どなたか教えてください。お願いします。
 マクロを実行させるボタンは単票形式のフォーム上に貼り付けてあります。

A 回答 (2件)

例ですが



単独テーブルのデータ表示を
条件検索しない状態で
1件ずつ表示していくことはできますか。

これができるなら
いったん検索結果を仮テーブルに出力してから
作業を行って
終了時にデータを戻してはどうでしょうか。

全くのシロウトなのでおかしなことを
書いてますが
できると思います。

この回答への補足

回答ありがとうございます。1件づつの表示は可能です。
「いったん検索結果を仮テーブルに出力してから」のところがミソでしょうか?

補足日時:2002/03/09 23:44
    • good
    • 0

はじめまして。



 表示させたい項目はフォームでしょうか?レポートでしょうか?
 フォームでの組み方なら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 に該当
分のみが表示される仕組みのできあがりです。

 これを応用すれば、レポートも同様に検索分のみを表示させることが
できますよね。(フォーム内にレポートをオープンするコマンドボタン
をつくっておき、オープンするレポートのレコードソースを、検索ソー
スと同様にする)

がんばってください。

この回答への補足

回答ありがとうございます。がんばって、やってみます。

補足日時:2002/03/09 23:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!