• ベストアンサー

アクセスについて困っています。

アクセス超初心者です。 フォーム上での期間検索(3/21~4/01)についてですが、 フォーム上でマクロを使い再クエリさせて実行させて行く方法が良いのか、 VBAを使いフィルタをかけて抽出していく方法が良いのか良くわかりません。 どなたか、この違いについて教えていただけませんか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

どういう見地から、良否を判断したらよいのか、説明しないと。 指定期間は頻繁に変わるとか 利用(操作)者が初心者とか。 VBA・モジュールは現在では組む力が無いとか。 ーー どちらも、正しくやれば結果は同じになるのでは。 -- フォームとは操作の道具立てにしか過ぎない。 それをVBAと同列に論じる意図は? >VBAを使いフィルタをかけて抽出していく 文字通り、フィルタと言うのもあるがそのことをさしているのか。 Rs.Filter ーー VBAで SQLで選択クエリも働きはフィルタと言えると思うが、こちらのほうが条件を複雑に出来る余地はある。

kenta11
質問者

お礼

ご回答ありがとうございます。 確かに再クエリもフィルタも結果は、変わらないのですが、 上記の意見を参考にし使用していきたいと思います。

その他の回答 (1)

  • noah7150
  • ベストアンサー率46% (116/251)
回答No.2

そうね#1さんと同様に質問の意図がはっきりしませんねぇ では一般論(いや私の独断と偏見かも) 再クエリとフィルタ・・・ Accessが内部でどのように処理されているか知りませんが 感覚で申し上げますと 再クエリ・・・SQLを発行しDBから再読み込みを行う フィルタ・・・読込済のデータから条件に合うものだけを表示する でしょうか 再クエリならDBサーバーに負荷が掛かりフィルタならローカルマシンに負荷が掛かるかな? AccessでローカルMDBに接続しているなら違いは無いかも。

kenta11
質問者

お礼

ご回答ありがとうございます。 >再クエリ・・・SQLを発行しDBから再読み込みを行う >フィルタ・・・読込済のデータから条件に合うものだけを表示する >でしょうか 上記の感覚非常にわかりやすかったです。

関連するQ&A

  • Accessマクロでパラメータークエリ実行

    Microsoft Accessのマクロでパラメータークエリを実行する方法を調べると、VBAで実行する方法しか出てきませんが、マクロではできないでしょうか。 検索フォームに条件を入力して検索するマクロを作りたいです。

  • Accessのクエリ

    初めまして。Accessのクエリについての質問です。 Access2003を使っています。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件にあいまい条件のLike "*" & [Forms]![フォーム名]![テキストボックス名] & "*"を入れています。 今はテキストボックスが2つですが、もっと増やしていろんな条件で検索出来るようにしたいので、3つ目のテキストボックスを作り、抽出条件も同じように入れました。ですが、そうすると今までちゃんとできていた最初の2つのテキストボックスによる抽出が違った結果となりでてきました。このとき、新しく作った3つ目のテキストボックスは空欄なので最初と同じ結果が出ると思ったのですが、これは抽出条件が3つはできないということでしょうか?どなたか教えてください。

  • ACCESSでまた壁、壁!教えてください!

    ACCESS勉強中の初心者です。よろしくお願いします! あるデータがありクエリで抽出をするのですが、抽出条件をフォーム上から条件値を入れたい為、クエリの抽出条件箇所に[FORMS]![検索F]![txt_条件1]と入力し、マクロでフィルタ実行でうまく抽出するのですが、抽出条件を2つ以上増やすとうまく抽出してくれません。(抽出条件:[FORMS]![検索F]![txt_条件1] or [FORMS]![検索F]![txt_条件2]←×) どうすれば、うまく抽出するのか教えてください!! (皆様には度々力をおかし頂いており有難うございます。m(_)m)

  • Accessでフィルタの実行アクションをクリアするには?

    Access2000(Windows版)です。 フォームにWhere条件式を使ってフィルタを実行するマクロを設定しました。(=を使ってクエリのフィールドとフォーム上のフィールドが一致しているものを抽出する内容。フォーム上のボタンのクリック時にマクロを設定し、フォーム上の検索機能として使いたい。) フォームを開いてから1回目はうまく動作するのですが、2回目からは動作しません。1回目に実行した条件が残ってしまっているようです。 これ(残っているフィルタ条件?)を解消する方法はありますでしょうか? 自分ではフォームをいったん閉じるという方法しか思いつけていません。 よろしくお願いします。 ※ちなみにFOM出版の「よくわかるトレーニングテキストAccess2002 3(←ほんとはローマ数字の3)」のp81でひっかかっております。

  • アクセス2003の質問5種

    アクセス2003の作りこみで悩んでいます。ほぼ初心者です。 (1)bin-chanさんの「まとめ~」とはどういう意味でしょうか? (2)検索キーワードを入力し、そのキーワードでテーブル内の全フィールドから検索する方法はありますか?VBA マクロどちらでも構いません。クエリを使わない方法でお願いします。 (3)AND検索で、検索キーワード欄に空欄があっても検索を実行する方法はありますか? 当方、検索条件をプルダウンから選び、検索キーワードを入力し、検索しています。 その際のイベントビルダは、 Me.Filter="" & Me![コンボ53] & " like '" & "*" Me![検索ワード] &"*"&"' and "& Me![コンボ57]~ です。 とすると、オブジェクトに値を代入出来ませんやらが出てきます。どうしたらよいでしょうか? 出来れば、VBAで行いたい。 (4)マクロのフィルタ実行で、where条件式を次のようにすれば、空欄があってもOKなんですが、 その際に検索条件をプルダウンで選ぶにはどうすればよいのか教えてください。 [フィールド名] Like "*" &[Forms]![フォーム名]![検索ワード] & "*" And [フィールド名] Like "*" &[Forms]![フォーム名]![検索ワード2] & "*" (5)またこのフィルタの実行マクロを使っての全フィールドからの検索をする場合にはどうしたら良いでしょうか? アクセスの構造としては、 基幹となるテーブルAと一対多にあるテーブルB、そしてテーブルBと一対一にあるテーブルCの3つをクエリでまとめ、フォームを作っています。 (1)~(5)全部が揃っての回答でなくても構いません。 どうかよろしくお願いいたします。

  • アクセスのフォーム

    アクセスのフォームで、ヘッダー部にボタンを3つ作成し、それぞれ名前を"1","2","3"とします。そして、全てのボタンに埋め込みマクロで"1"にはクエリ1を実行する、"2"にはクエリ2を実行する、"3"にはクエリ3を実行するというマクロを埋め込みます この時ボタンをクリックすると、その結果がフォームの詳細部分に表示させる事はできますか?例えば"2"をクリックすれば詳細部分にクエリ2の結果が表示される様にしたいです。それぞれのクエリの構成は異なります。テーブル形式で表示されるのではなく、フォームの形式で表示される様にしたいです。 表示された文字をクリックするとヘッダー部のテキストボックスにその文字が入力され、クエリの抽出条件がそのテキストボックスになっており、クエリ実行ボタンを押せばその抽出条件でクエリが実行され、詳細部分に表示・・・という様に検索できる様にしたいです。文字をクリックすればテキストボックスへというのは以前この場で教えて頂きました。 説明がうまくできなくてすいません。誰か教えて下さい。 よろしくお願いします。

  • Access クエリについて

    初めまして。Accessのクエリについての質問です。 Access2003です。 検索フォームを作り、その検索フォームにテキストボックスを2つ作り、そのテキストボックスに検索したい言葉を入力し、コマンドボタンで作った検索ボタンを押すとマクロでフィルタの実行がされデータを抽出できるというものを作りました。フィルタには選択クエリを使用しています。抽出したい2つのフィールドの抽出条件に[forms]![フォーム名]![テキストボックス名]を入れています。 今は2つのテキストボックス両方に言葉を入力するとデータが抽出されますが、これを1つのテキストボックスだけ入力でもデータが抽出されるようにしたいのですが可能ですか?今は一つのテキストボックスに言葉を入力しもう一つを空欄にすると何もデータが出てこない状態です。 2つのテキストボックスをテキスト(1)とテキスト(2)とすると 以下のようにデータを抽出したいです。 ・テキスト(1)とテキスト(2)に入力 →両方の言葉が一致したデータ ・テキスト(1)だけに入力  →テキスト(1)の言葉だけ一致したデータ ・テキスト(2)だけに入力  →テキスト(2)の言葉だけ一致したデータ 初歩的な質問でしたら申し訳ないです。どうかお願いします。

  • Accessでの電話番号下4桁での検索について

    Access初心者です。 今Accessで顧客管理を作成しています。 フォームで電話番号の下4桁で検索し、該当の顧客の情報がフォームで見れるようにしたいのですが、クエリでの取り込むべきフィールドや抽出条件などがよくわかりません。 今現在はクエリに「電話番号」フィールドだけを取り込み、抽出条件に Right([Forms]![電話番号検索]![電話番号],4) というのを入れてます。 今の段階で作成しているものは、 ・ユーザーテーブル ・検索実行クエリ ・ユーザーフォーム ・書き込みフォーム ・電話番号検索フォーム ・開くマクロ ・閉じるマクロ ・最後のレコードへ移動するマクロ ・新しいレコードへ移動するマクロ ・書き込みマクロ ・終了マクロ 以上になります。 電話番号検索フォームで下4桁を入力し、検索ボタンを押すとユーザーフォームの該当の顧客の情報が表示されるようにしたいというのが目的です。 何卒ご指導の程よろしくお願い致します。

  • Access2000で複数の検索項目を作りたいのですが・・・

    こんにちわ。 今、Accessで社員録を作成しているんですが、複数の検索について教えて下さい。 ■テーブル テーブル名:社員録 フィールド名:ID・検索名・氏名・所属ID・所属 ■クエリ クエリ名:社員録クエリ フィールド名:ID・検索名・氏名・所属ID・所属 検索名抽出条件:検索名フィールド: Like [Forms]![社員録 縦]![けんさく]         所属フィールド: Like [Forms]![社員録 縦]![抽出検索名] ■フォーム フォーム名:社員録フォーム:テキスト1・テキスト2・ボタン1       社員録サブフォーム:データソース:社員録クエリ テキスト1:所属を入力 テキスト2:検索名を入力 ボタン1:マクロの再クエリを実行する ■ここからが質問です■ (1)テキスト1又は、2が空白のとき社員録全体から検索かフィルタ。 (2)テキスト1・2が、入力されてる時、両条件から検索かフィルタ。 をしたいのですが、何かいい方法がありましたら教えて下さい。 説明が、長くなってしまってスミマセン。。。

  • Access マクロ SQLは合ってるのに②

    Microsoft Access でマクロ(VBAではない)を制作しています。「検索画面」フォームに情報を入力して「検索実行」を押すと「全項目」フォームがフィルターされて表示するようにしたいです。 制作したマクロ① フォームを開く フォーム 全項目 Where条件式 [投稿者]=[Forms]![検索画面]![投稿者] 制作したマクロ② ローカル変数の設定 変数名 [SQLCode] 値の代入 変数 [LocalVar]![SQLCode] 値 "[投稿者]=[Forms]![検索画面]![投稿者]" フォームを開く フォーム 全項目 Where条件式 [LocalVar]![SQLCode] ローカル変数の削除 変数 [LocalVar]![SQLCode] このマクロを実行したところ、マクロ①は正しく実行されましたが、マクロ②はフィルターされずにフォームが表示されました。 どこを直せば良いのか教えてください。

専門家に質問してみよう