• ベストアンサー

ACCESSの検索フォーム

アクセス初心者なのですが教えてください。 検索フォームをつかっていくつかの条件に当てはまるデータをフォームで抽出したいのですがどのようにしたらいいか分かりませんどなたか教えてください。 マクロでWHEREつかってやってみたのですがいくつかの条件を入れたのですが途中で切れてしまうのと、ひとつでも空欄があるとまったく抽出しません。 どうかよろしくお願い致します。

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

  • ベストアンサー
  • amado
  • ベストアンサー率50% (2/4)
回答No.3

●受注テーブル?がある ●新機種 受注 クエリがある ●受注リスト検索フォームがある ●受注リスト検索フォームには、コンボBOXが4つ あり、コマンドボタンでフィルターをかける(マクロ) ●マクロでのフィルタ実行でwhere条件が入りきらない こんな感じでしょうか。いまある物を利用してなるべく簡単にやるならば、このような方法はいかがでしょうか。 1、新機種 受注 クエリをコピーして 受注フィルタクエリと名前をつける 2、受注フィルタクエリをSQLビューで開き、where[新機種 受注 クエリ]![業者]=[Forms]![受注リスト検索フォーム]![コンボ0] And [新機種 受注 クエリ]![機種種別]=[Forms]![受注リスト検索フォーム]![コンボ2] And [新機種 受注 クエリ]![パネル]=[Forms]![受注リスト検索フォーム]![コンボ4] And [新機種 受注 クエリ]![納品週]=[Forms]![受注リスト検索フォーム]![コンボ6]; をつけたし保存する。 3、フィルタ実行マクロのフィルタ名を受注フィルタクエリとする(where条件式は消す) これで、where条件に入りきらなかった分も解消されると思います。

その他の回答 (3)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.4

複数の抽出条件がある場合#2の補足に書いてあるのでは全ての抽出条件が入力されている状態でなければ抽出はできません。1箇所でも入力されていないと抽出できません。 If文を使いElseIfなどで抽出条件に空白(Null)がある状態でも抽出できるように分岐させないとダメです。 条件が複数あればそれぞれNullがある場合をクリアする記述が必要です。 比較的簡単にできる方法として順番に絞り込む方法でしょうか。 初めの条件で抽出されたレコードの中から次の抽出条件で再度絞り込むようにして の繰り返しで最終的にレコードを抽出する。 それでも各抽出条件は必要ですが。

  • amado
  • ベストアンサー率50% (2/4)
回答No.2

マクロで絞込みをしていて、条件を入力していない フィールドも出るという事でしょうか。 データが入っているかどうかを、調べるには isnull関数が便利です。 データが入っていなければ isnull の結果はyesになり データがはいっていれば not isnull の結果がyesに なります。 できたらマクロの条件とwhere条件式を転記していただけないでしょうか

takutaku_1975
質問者

補足

「マクロで絞込みをしていて、条件を入力していない フィールドも出るという事でしょうか。」 これは条件を入れていないので何も出てきません。 Whereに下記の式を入れています。 [新機種 受注 クエリ]![業者]=[Forms]![受注リスト検索フォーム]![コンボ0] And [新機種 受注 クエリ]![機種種別]=[Forms]![受注リスト検索フォーム]![コンボ2] And [新機種 受注 クエリ]![パネル]=[Forms]![受注リスト検索フォーム]![コンボ4] And [新機種 受注 クエリ]![納品週]=[Forms]![受注リスト検索フォーム]![コンボ6] 条件には何も入れていないのですが何を入れたらいいのでしょうか。 本当に初心者で申し訳ないのですがよろしくお願いします。

  • amado
  • ベストアンサー率50% (2/4)
回答No.1

状況が少しわかりづらいので、where条件の詳細を 転記してえいただけると、たすかるのですが。 wehre条件で、or や and はちゃんと使えてるのでしょうか?

takutaku_1975
質問者

補足

申し訳ありません。初心者なので詳しい説明がむずかいいのですが、Andは使えていて検索フォームにいくつかのコンボを使用しています。 マクロからのWhereだとバイト数が限られいるようですべての条件を入力ができません。 それと、3つのコンボで3つとも何かを選んでいればきちんと抽出できるのですが、そのうち2つの条件に当てはまる物を抽出するようにするにはどうすればよいものか。(残りの1つのコンボは何も選ばない状態) 宜しくお願いいたします。

関連するQ&A

  • Accessで検索フォームを作成したい。

    Access2000でDBをつくりました。 そのデータから検索をして、抽出をしたいのです。 検索条件をいれるデータはこれ、と決まっていればパラメータークエリでもつくればいいのですが、どれでも検索条件にするようにしたい、と使用者から頼まれました。 入力方法としては単票フォームを開き、検索したい項目に、検索条件をいれると抽出される、というようなものです。 検索したい項目は日付かもしれないし、名前かもしれない、はたまた会社名かもしれない、とバラバラなのです。 その項目毎にパラメータクエリをつくるのもちょっと・・・と思うので。 何かいい方法はありますでしょうか? よろしくお願いします。

  • ACCESS2003でクエリを使った検索フォームを作っています。

    ACCESS2003でクエリを使った検索フォームを作っています。 クエリは以下の様になっています。 ----------  番号   タイプ   品名  1111   AA     商品1  2222   AA     しょうひん2  3333   BB     商品しょうひん3 ---------- 品名のフィールドの抽出条件に ---------- Like "*" & [Forms]![品名検索フォーム]![品名検索] & "*" ---------- と入れています。 品名検索フォームは帳票タイプで、フォームヘッダーにテキストボックスを設け 「品名検索」と名前をつけています。 テキストボックスに【商品】と入力すれば番号1111と3333が、【しょうひん】と入力すれば 番号2222と3333が抽出されるように設定し、ここはうまく動きました。 ただ、このフォームを開いた際、テキストボックスは空欄になっているため、全レコードが 表示されてしまいます。テキストボックスが空欄の際は、何も表示したくないのですが どこを触ればいいのでしょうか? どうかよろしくお願いいたします。

  • Access2003 検索用フォームでの検索がうまくいかない

    Access2003 検索用フォームでの検索がうまくいかない とある、テーブルを参照するフォームを作成。 そしてテキストbokを設けて、各項目毎にキーワードを指定してデータを抽出できるようにしたいのですが、 どうもうまくいきません。 検索は出来ているのですが、全部ひっかからないのです。 例えば ID という項目を検索するbox に"1"を入力して ID=1の全データを抽出しようとすると、一部検索にかかってこないものがある という具合です。 テーブルに入力されている数字や文字が本当に一致しているかどうかも調べましたが確かに一致しています。 実際、テーブルを開いて ctr+f で検索すると全てひっかかります。 何が原因なのでしょうか??? 私の作った手順は以下のとおりです。 テーブル作成(エクセルからインポート) ※空白の欄もあります フォーム新規作成でフォーム作成 フォーム上にテキストbox作成 クエリ作成 (Like "*" & [Forms]![フォーム名]![テキストbox名] & "*" ) マクロ作成⇒フィルタ実行/上の手順で作ったクエリを登録 マクロをフォーム上へドロップ およそこのような手順です。

  • Accessのクエリ

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

  • Accessであいまい検索するフォームをつくってみたんですが?

    Accessの初心者です。 本などをみながらあいまい検索ができるようなフォームをつくってみましたがフォームを開いた時、全レコードが表示されてしまいます。 クエリーの抽出条件はLike "*" & Forms!フォーム1!テキスト0 & "*"にしてテキストボックスプロパティの更新後処理でDoCmd.Requeryとしました。(意味がよくわからないんですけど) フォームを開いた時やテキストボックスになにも入力されていない時、全レコードが表示されないようにするにはどうすればいいのでしょうか? よろしくお願いします。

  • Accessの検索フォーム

    またまたAccessについての質問です。 検索フォームというのを作りました。 テーブルのデータから条件に合うものだけを抽出したいのです。 たとえば1つ目の検索フォーム[A]のテキストボックスに「AAA」を入力します。 そのあとBには「BBB」と入力します。 同じくCには「CCC」と入力します。 そして絞込みボタンを押したらAAAでBBBでCCCのものが抽出されます。 これはうまくいきました。 とりあえず、複数条件なので、わけもわからず「&」で結んでしまいました・・・。 ↓は絞込みボタンのクリック時です。↓ 困ったのは、すべて検索条件を指定しない場合です。 たとえば「AAA」で「CCC」のものを抽出したいとき、[A]のテキストボックスに「AAA」と入れ [C]のテキストボックスに「CCC」と入れます。 そして絞込みボタンをクリック。 するとBが未記入だからか、抽出されたのは真っ白でした・・・。 Option Compare Database Private Sub コマンド50_Click() Me.Filter = "契約='" & Me!テキスト51 & "'and A='" & Me!テキスト57 & "'" Me.FilterOn = True End Sub 組み合わせが自由になる検索フォームにするにはどうすればよいのでしょうか? 誰か助けてくださ~い!

  • ACCESSのフォームを使っての住所録の検索なのですが,

    Accessのフォームを使って住所録から,データを抽出し,その結果をまず表示,その後ラベルシールに印刷をしたいのですが,フォームでの検索は,テーブルのすべての項目について複数の項目を同時検索をできるようにしたいです。 テーブルの構造はごく普通の住所録です。データ件数は8万件ほどです。 どういう方向で作業を進めるべきか分からないのですが,こういった場合は,まず,検索用のフォームを作成し,コマンドボタン(検索・印刷)を配置して, それに対してイベントかマクロの記述をするんだろうなとは思うのですが・・・ 私が思うに,抽出結果を格納するテーブル・検索フォーム・ラベル印刷用のレポートが必要なのだろうと思いますが,それらが何でつながっていくのかが分かりません。参考書などでは,一つ一つのことが別々に書いてあって作業の全体像が分かりません。作業の方向と必要なスキルが同程度などか詳しい方教えてください。

  • Access パラメータの入力をフォームで入力

    いつもお世話になっております。 Accessにて躓いています。宜しくお願い致します。 2万件以上のデータがあります。 データの中から、処理番号(ダブり無し)・年月日・件名の項目のみをクエリで取り出し、処理番号と件名でフォームで検索して表示するという事を行いたいと思います。 以下の手順で一連のものを作成したのですが、検索用フォームに検索したい文字を入れても「パラメータの入力」が出てきてしまい、検索用フォームがうまく働いていない状態です。 理想では「F処理検索」で絞り込みたい文字を各テキストボックスへ入力→検索ボタンをクリック→「処理」で絞り込んだデータを表示 としたいのです。 ~現状~ テーブル ・処理メインデータ(2万件のデータが保管されています) クエリ ・Q処理検索 テーブル「処理メインデータ」を基に左から「処理番号」「年月日」「件名」を充て、抽出条件として、「処理番号」と「件名」にそれぞれ 「Like"*"&[Forms]![F処理検索]![処理番号]&"*"」 「Like"*"&[Forms]![F処理検索]![件名]&"*"」 充てています。 フォーム ・処理(フォームビューで「処理番号・年月日・件名」の結果を出します) ・F処理検索(検索用フォームです。) 処理番号と件名を入力するテキストと、検索を実行する為のボタンを設置しました。 検索ボタンには、 プロパティ内クリック時の対応にマクロを下記の設定でセットしました。 アクション:フォームを開く フォーム名:処理 ビュー:フォームビュー フィル為:Q処理検索 Where条件式:空欄 データモード:空欄 以上、宜しくお願い致します。

  • Access 2007 クエリのあいまい検索について

    Access 2007 クエリのあいまい検索について 特定の文字を含むデータ以外を表示させたいと考えています。 下記の文字を含むデータ以外を表示させたい場合 どのように抽出条件を入れればいいでしょうか。 <抽出条件> 担当者もしくは空欄を含むデータ以外を表示 ※「担当者」という文字列です。 よろしくお願いいたします。

  • Access、検索用フォームでのあいまいな検索

    現在、Accessでデータベース作成をしています。 テーブル:  ・テーブルA          ・テーブルB          (A・B間にリレーションシップ設定) クエリ    ・検索クエリ(テーブルA・テーブルBを元に作成) フォーム   ・検索用フォーム(デザインビューでフォーム作成より)          ・検索結果フォーム(検索クエリを元に作成) また、以下のような設定を入力しました。 「検索クエリ」の抽出欄  Like "*" & [Forms]![検索用フォーム]![検索したい名前] & "*"・・(1)  ※検索したい項目、すべての抽出欄に設定済 「検索用フォーム」  検索実行ボタンを作成し、マクロを設定  ・フォームを開く→「検索結果フォーム」  ・フィルタ→「検索クエリ」 上記の設定により、検索用フォームに検索文字を入力することで、その結果を「検索結果フォーム」に反映することができました。 ただ、テーブルAが元になっている項目の抽出欄のみに(1)を入力すると、うまくいくのですが、テーブルBが元になっている項目欄にも (1)を入力しようとすると、検索用フォームからうまく検索することができなくなります。 2つのテーブルを元にしたクエリからは、検索用フォームをつかった複数のOR検索はできないのでしょうか?? ご存知の方、ぜひ教えてください。 よろしくお願いいたします。

専門家に質問してみよう