プロが教える店舗&オフィスのセキュリティ対策術

access初心者で、初歩的なことだと思うのですが教えていただけますでしょうか。

顧客情報テーブルを全件表示・入力・変更するフォームAがあります。
日付期間内検索、名前検索などいくつか条件絞込みのためのフォームBがあります。

やりたいこと
フォームBで指定した期間などで、検索結果をフォームAに表示させたいです。

←→現在はフォームBの検索クエリーごとに、実際は検索条件ごとにフォームAをコピーし、フォームのプロパティのレコードソースにて制御しています。

よろしくおねがいします。

質問者からの補足コメント

  • ありがとうございます。ですがフィルターコマンド調べていますが、まだ実装できていません。現在はフォームA’のレコードソースに
    SELECT 顧客情報TBL.* FROM 顧客情報TBL WHERE ((([顧客情報TBL].[利用予定日]) Between [Forms]![条件設定画面]![コンボ12] And [Forms]![条件設定画面]![コンボ14])) ORDER BY [顧客情報TBL].[利用予定日] DESC;
    と記述しています。おなじように、条件設定画面ではlike演算子をつかって名前検索結果を表示させるボタンと、それを表示させるフォームA’’があります。

    これをフォームA’、A’’でなく、フォームAを使いまわしたいです。フィルターコマンドにどのようにセットすればよいか研究中ですが、この情報でわかれば、教えていただけたらありがたいです。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/05/15 08:15

A 回答 (2件)

でしたらフォームB(条件設定画面かな?)にコマンドボタンでも作成し


クリック時イベントなどに
if currentproject.allforms("フォームA").isloaded = false then
docmd.openform "フォームA" '開いてなかったら開く
end if
Forms!フォームA.recordsource = "SELECT 顧客情報TBL.* FROM 顧客情報TBL WHERE [顧客情報TBL].[利用予定日] Between " & [Forms]![条件設定画面]![コンボ12] & " And " & [Forms]![条件設定画面]![コンボ14] & " ORDER BY [顧客情報TBL].[利用予定日] DESC;"
のようにレコードソースを変更するか、

フォームA自体には抽出条件を設定しないひな形フォームとして作成しておきます。
dim sFilter as string
if currentproject.allforms("フォームA").isloaded = false then
docmd.openform "フォームA" '開いてなかったら開く
end if
sFilter = ・・・・sFilterに条件を書き込むのですが具体例が挙げられません
sFilter の作り方は前回回答のVBAコードを参照してください。
debug.print sFilter 'イミディエイトウィンドウで正しくできているか確認
Forms!フォームA.filter = sFilter
Forms!フォームA.filteron = true
のような流れになります。べた打ちなので間違っているかも。
    • good
    • 0
この回答へのお礼

できました!!はじめのrecordsourceでいけました。本当にありがとうございました。

お礼日時:2015/05/16 15:12

状況がおぼろげながらにしか分かりませんが、


紹介サイトのようにフィルターで行えばフォームは一つで済みます。

http://hatenachips.blog34.fc2.com/blog-entry-129 …
この回答への補足あり
    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A