• ベストアンサー

access2000 クエリの抽出条件欄で・・・

access2000で質問です。 フォームからいくつかの条件(10件くらい)を入力させて、すべてに合致した レコードを抽出します。ただし何も入力しない項目は無視し、全く条件を指定 しない場合は全抽出となります。 例えば、クエリの抽出条件のところでif文を使って、nullの場合は抽出 条件なし、null以外の場合は入力したものを抽出、みたいな事ができない ものでしょうか? よいやり方があれば教えてください。よろしくお願いします。

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

  • ベストアンサー
noname#7099
noname#7099
回答No.1

ボタン等のイベントプロシジャに、こんなんどうでしょう。 stLinkCriteria = "" If not IsNull(Me![検索1]) Then  if stLinkCriteria = "" Then else stLinkCriteria = stLinkCriteria & " and " end if stLinkCriteria = stLinkCriteria & " フィールド1 = '" & 検索1 & "' " end if If not IsNull(Me![検索2]) Then  if stLinkCriteria = "" THen else stLinkCriteria = stLinkCriteria & " and " end if stLinkCriteria = stLinkCriteria & " フィールド2 = '" & 検索2 & "'" end if DoCmd.ApplyFilter , stLinkCriteria

candie-o
質問者

お礼

数値フィールドの場合は、クエリでの条件抽出は限界があるようですね。 いろいろ勉強になりました。ありがとうございました。

関連するQ&A

  • Access 条件抽出クエリについて

    宜しくお願いします。 Accessの条件抽出クエリについて二つ質問があります。 1.抽出結果をフォームに出したいときはどうしたら? 正確には、パラメータ入力フォームを使用してパラメータを入力させ、 その結果をまたフォームに出力させたい、というものになります。 パラメータ入力フォームはできたのですが、ここで「OK」ボタンをクリックしたときに何かを指定してやればよいのでしょうか。 2.全てを対象としたい場合はどうしたら? 条件を入れたい項目が「取引先」「期間」と2つあり、どちらも指定したい場合は簡単にできるのですがどちらかだけを指定して、もう片方は全てを対象としたい場合はどうすればよいのでしょうか。 複数の内容で申し訳ございません。 宜しくおねがいします。(><)

  • クエリーの抽出条件について

    「作表条件」というフォームにテキストボックスとして「日付1」、「日付2」を設置しています。 元のテーブルには「日付」という項目があり、「日付1」から「日付2」までのデータを抽出するため、 クエリの条件式に Between Nz([Forms]![作表条件]![日付1],#1800/01/01#) And Nz([Forms]![作表条件]![日付2],#9999/12/31#) と記述しています。 ただ、元のテーブルの日付がNULL値の場合があり、その場合「日付1」および「日付2」が空欄だとNULL値のレコードが抽出されません。 「日付」がNULLの場合でも抽出できるようにするには、どのようにすればよいでしょうか? どなたか教えてください。

  • Accessクエリの抽出条件にフォームから挿入する方法(2)

    フォームにいくつかの抽出条件を指定するためのテキストボックスをセットし、そこに入力されたデータをクエリの抽出条件に挿入しデータ抽出を行っておりますが、たとえば販売期間でデータを抽出するために、クエリの抽出条件に Between [Forms]![フォーム名]![売上日FROM] And [Forms]![フォーム名]![売上日TO]と入力しているのですが、テキストボックスに指定日付が入っていれば問題なく抽出できるのですが、販売期間の指定なしの場合、売上日from及び売上日TOがNULLとなるためか抽出結果がゼロ件になってしまいます。 期間指定なしの場合でも抽出ができるようにするためにはどのように記述すればよいか教えてください。よろしくお願いいたします。

  • ACCESS のフォームの内容をクエリーの抽出条件にするには?

    Windows2000,Access2000です。 Accessのクエリーでデータを選択して表示する作業をしています。 現在はクエリーを自分で修正して実行しています。 でもそれではみんなで使うには使いづらいので、 フォームを作成しそのフォーム上の入力項目に入力された データをクエリーの抽出条件に指定する様にしようという事になりました。 フォーム上の入力フィールドの内容をクエリーの抽出条件に設定する方法はすぐわかりました。 でも「like」を指定する方法がわかりません。 つまりフォーム上の入力データを“xxx”とした時、クエリーの抽出条件を 「like "*xxx*"」としてクエリーを実行したいのです。 つたない文章でわかりにくいかと思いますが、ご存じの方おりましたら、 よろしくご教示ください。

  • クエリの抽出条件で困っています

    Access2007にて、クエリの抽出条件に下記を指定していますが、データが1件も抽出されません。 ※エラーは表示されません IIf([forms]![F_Home]![アンケート種別]="1級",1 Or Is Null,2 Or Is Null) この抽出条件をしているフォールドには"1"、"2"、nullのデータしか存在しません。 「アンケート種別」が"1級"の場合は、"1"とnullのデータをかえし、 それ以外の「アンケート種別」の場合は、"2"とnullのデータをかえしたいと思っています。 どのように条件を指定すれば、データを抽出できるようになるでしょうか。 宜しくお願い致します。

  • Access2000での抽出について(クエリー?)

    クエリー等を使って、テーブルの中のある1項目 (以下Aテーブル、項目aaa)に対し、 指定した文字を含むレコードを抽出したいと思います。 ただし、指定する文字は複数(2つ、または3つ)あります。 この指定文字を、仮に「条件1」・「条件2」・「条件3」とします。 この条件1~3は、フォーム(以下フォームyyy)からの入力によるものです。 そして、抽出結果を別フォームに表示したいと思います。 そこで、aaaの中に条件1の文字も含み、かつ、条件2の文字も含み、かつ、条件3の文字も含む ものを抽出したい場合、クエリーではどのような設定をしたらいいでしょうか。 イメージとしては次のとおりです。 [Aテーブル] [aaa] ・・・・・・・・・・・・・・・   1rec目   千葉県栄町   2rec目   千葉県野栄町   3rec目   鳥取県大栄町   4rec目   愛知県東栄町   5rec目   新潟県栄町 というデータがあるとします。 仮に、フォームyyyの指定文字として 条件1に「栄町」、 条件2に「千葉」 と入力したとすると、抽出結果としてAテーブルから1rec目と2rec目が表示されればOKなのです。 わかりずらい説明になってしまいましたが、よろしくお願いいたします。 不明な点は補足いたします。

  • Access 抽出条件

    クエリの抽出条件で特定のレコードを抽出したいのですが 最新の三年分のレコードデータを抽出する場合どのような式にすればよいのでしょうか? テーブルには年月フォームがあり年月が入力されています。

  • ACCESSクエリーの抽出条件について

    OS WIN7 ACCESS 2007使用です。 クエリーの抽出条件について何ですが、テーブルにコードというフィールドがありまして、そこには数値が入力されています。 コード 1 2 3 4 5 ・ ・ このテーブルを元に選択クエリーを作りたいのですが、条件としてコードの値に2と3両方がある場合、2のレコードだけを表示せず、どちらか一方の数値だけの場合またはどちらもない場合は、全てのレコードを表示するようにしたいのです。 抽出条件はどのように書けばよいのでしょうか? いろいろ試したのですが、うまくいきません。 どなたかお助け下さい。

  • ACCESS クエリの抽出条件

    毎度お世話になります。 クエリをレコードソースとするフォームから、コマンドボタンでアクションクエリを実行するときの抽出条件の書き方を教えて頂けないでしょうか? 二つのテーブル(別のACCESSファイルからリンク)を基にパラメータクエリを作っています。 そのクエリを基にフォームを作っています。 さらに、そのフォームに追加クエリを実行するボタンを置いています。 フォームに表示してあるレコードだけ(パラメータで抽出されたレコードだけ)、他のテーブルに追加しようと思っているのですが、実行ボタンを押すともう一度パラメータが出てきてしまいます。 多分テキストボックスの値を読み取る際にレコードソースがテーブルでないのが問題じゃないかと思うのですが。。。 テーブル:Container / Items クエリ:From_Con(パラメータは[Container]フィールド) フォーム:From_Con(テキストボックス名は[txtContainer]) 追加クエリ:From_Con_App(抽出条件は[Forms]![From_Con]![txtContainer]としてみたがうまく動きません。) デザインビューの抽出条件を使う方法? SQLを使う方法? QueryDefを使う方法? いろいろありそうですが、ネットで検索してもヒットしません。 分かりにくい説明で申し訳ありませんがご教授願います。

  • ACCESSのクエリの抽出

    ACCESS2003を使っています。フォームのコンボボックスに入っているデータを見てクエリで抽出したいと思っています。 フォームのコンボボックスにデータが入っているときは、そのデータで抽出を行い、nullのときは抽出をやめてすべてのデータを表示させたいです。 抽出項目には、null値はありません。 クエリの抽出欄に下記の式を入れましたがうまくいきません。 IIf(IsNull([Forms]![フォーム名]![コンボボックス名])=true , Is Not Null , [Forms]![フォーム名]![コンボボックス名]) コンボボックスにデータが入っている場合は、抽出はうまくいくのですが、nullのときは、何も表示されません。 どこか式が違っているのでしょうか? よろしくお願いします。

専門家に質問してみよう