• ベストアンサー

アクセス2000 クエリ抽出でBetweenを記述したところ・・

Between [Forms]![frm○△○]![対応日開始入力] And [Forms]![frm○△○]![対応日終了入力]のように記述したところ、開始・終了を入力しないと何も表示されません、入力すると上手く抽出します、未入力の場合全レーコード表示にしたいと考えています、初歩的な質問で恥ずかしいのですがどなたか教えてください。

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

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

これで対応日開始入力・対応日終了入力の場合は全レコードを抽出できます。 Between Nz([Forms]![frm○△○]![対応日開始入力],#1000/1/1#) AND Nz([Forms]![frm○△○]![対応日終了入力], #9999/12/31#)

SEA-502
質問者

お礼

早速の回答ありがとうございます 私がやりたかった抽出がまさにこれでした、非常に参考になりました。

その他の回答 (3)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.4

どちらか片方でも未入力なら全表示としたければ抽出条件欄に Between [Forms]![frm○△○]![対応日開始入力] And [Forms]![frm○△○]![対応日終了入力] or [Forms]![frm○△○]![対応日開始入力] is null or [Forms]![frm○△○]![対応日終了入力] is null

SEA-502
質問者

お礼

早速の回答ありがとうございます 非常に参考になりました。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

Nz関数を使えばいいのでは? Nz([フィールド],Nullのときの値) で設定できます。 日付なので最小値を0(1900/1/0)、最大値を2958465(9999/12/31)に設定すればいいと思います。

SEA-502
質問者

お礼

早速の回答ありがとうございます 非常に参考になりました。

  • PrintScree
  • ベストアンサー率25% (538/2091)
回答No.1

私なら、IIf関数を使って未入力なら日付の最大値と最小値を代入するようにします。 或いは、フォーム上のクエリを開始するボタン(ありますよね?)をクリックのイベントプロシージャで未入力なら入力を促すメッセージを出すか、日付のFrom、Toに最大日付、最小日付を代入してからクエリーを実行させます。

SEA-502
質問者

お礼

早速の回答ありがとうございます 非常に参考になりました。

関連するQ&A

  • Access クエリ抽出条件の「Between」の記述で

    こんにちは。Access2000を使用しています。 「抽出条件」フォーム上のテキストボックス "txt開始コード"と"txt終了コード"の入力条件を 「抽出」選択クエリの抽出条件として Between [forms]![抽出条件][txt開始コード] And [forms]![抽出条件][txt終了コード] 記述しました。 抽出条件は「業務データ」テーブルの"業務コード" に対応しており、「業務コード」はテキスト型長さ4 で定義してありますが、「0000」~「9999」の数値 が格納されています。また、フォーム上のテキストボックスの書式は「0000」としています。 条件を何も入力しない時はデータを抽出しますが、条件 を指定すると何も抽出されなくなってしまいます。条件 の指定を、 Between '[forms]![抽出条件][txt開始コード]' And '[forms]![抽出条件][txt終了コード]' のようにシングルクォーテーションで囲んでもうまくいき ません。文字列なのに数値が入っているのでアクセス側で 自動認識しうまくいかないのか、検討がつきません。 どなたか解決策をお願いいたします。

  • AccessでBetween条件を含むクエリーで、Between条件を

    AccessでBetween条件を含むクエリーで、Between条件を入力しなくてもデータを抽出するには? Access97でデータの抽出を行いたいと思います。 「顧客名」「商品名」「出荷日」という項目を含むクエリーから、希望のデータを抽出するフォーム(名:検索フォーム)を作成しています。 検索フォームにそれぞれ「顧客名」「商品名」「出荷開始」「出荷終了」という名前の非連結のテキストボックスを作り(規定値を"*"にしています)、それに値を入力すると、これらのテキストボックスの下に配置したサブフォームに抽出されたデータが抽出される様にしたいのです。 現在、クエリーの「顧客名」項目の抽出条件に「[forms]![検索フォーム]![顧客名]」という様に入力し、同じ様な記述を「商品名」項目にも行い(条件は[商品名]としています)、出荷日に「Between[forms]![検索フォーム]![出荷開始]And[forms]![検索フォーム]![出荷終了]」と記述しています。(これらは全てAnd条件にしています) さて、この検索フォームの値入力項目で、全てのテキストボックスに入力しなくても(1つ以上値が入力されていれば)データをサブフォームに抽出できるようにしたいのです。 現在、「出荷開始」&「出荷終了」に値を入力すれば、その他の値(「顧客名」と「商品名」)を入力してもしなくてもデータが抽出できますが、「出荷開始」&「出荷終了」を入力しない限りデータが抽出されません。 この「出荷開始」&「出荷終了」を入力しないケースでもデータが抽出できる様なフォームを作成したいのですが、 どの様に記述を変えたらよいでしょうか?

  • ACCESS  クロス集計クエリの抽出条件について

    http://www.accessclub.jp/samplefile/samplefile_39.htm 上記サイトのクロス集計クエリのやり方で、抽出条件を Between [Forms]![フォーム1]![開始日] And [Forms]![フォーム2]![終了日] とする場合、 クエリパラメータダイアログにはどう記述したらよいのでしょうか? [Forms]![フォーム1]![開始日]と[Forms]![フォーム2]![終了日]をそれぞれ別々にテキスト型としてもエラーですし、(「式が複雑です」とのエラー) 条件を全て記述しても、「かっこの使い方が正しくありません。」とのエラーです。 何が間違っているのでしょうか?

  • フォームからクエリの抽出期間を指定するにあたって

    フォームのテキストボックス(開始日付,終了日付)に入力された期間内の レコードをクエリで抽出するために、以下のような抽出条件を設定しています。 Between [Forms]![フォーム1]![from date] And [Forms]![フォーム1]![終了日付] ここまでは問題なく出来ています。 ですが、例えばテキストボックスに何も入力していないときに、 全ての期間から全件表示させるような方法はありませんでしょうか? IIf(IsNull([Forms]![フォーム1]![開始日付]),True,~ というような形で、IIfとIsNullの組み合わせも考えたのですが、 日付は直接フィールドでは無く抽出条件のため、 Trueより後が設定できずに悩んでおります。 出来ればVBAは使いたくないのですが、 何か良い方法はありませんでしょうか?

  • アクセスのbetweenに関して

    アクセス2000を使用しています。 あるテーブルの「種別」フィールドには 1,2,3,4,5,6,7,88,89,90,99 のいずれかの値が入っているとします。 そのテーブルを元に選択クエリを作成し、値が3,4,5,90以外の ものを表示したいと思います。 抽出条件に Between 1 and 2 Between 6 and 89 99 と入力しましたが意図するものが表示されません。 他の方法もあると思いますが、今後のためにも 「Between」を使用して抽出したいと思います。 基本的なこととは思いますがよろしくお願いいたします。

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

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

  • Accessクエリについて教えてください。

    Accessクエリについて教えてください。 日付を入力すると抽出したく下記のように作成したのですが、 フォームを使い、年と月だけ入力することはできますでしょうか?(2010/3/*) Between [Forms]![F_AAA]![入力1] And [Forms]![F_AAA]![入力2] (フォームAAAの入力1に、2010/03/01、入力2に2010/03/31)と入力して2010年3月分を抽出する。  ↓(下記のようにしたい) フォームAAAの入力1に2010、入力2に3と入力すると、2010年3月分を抽出する。 教えてください。

  • アクセスで指定した月のデータを抽出したい

    アクセスは初心者なので、初歩的な質問だと思いますが、お願いします。 月別データで○月~○月のデータを抽出したい場合ですが、現在クエリを使いbetween [開始月] and [終了月]で抽出するようになっています。(開始月、終了月は使用する人が各自で見たい月を入力します) ですが、これでは開始月が終了月より大きかった場合(例えば 開始月3月、終了月1月)終了月~開始月のデータが抽出されてしまいます(1月~3月のデータが抽出されてしまう。) こういう場合 どのように修正すれば、きちんとしたデータを抽出できるのでしょうか。 よろしくお願いします。

  • Accessのクエリデザインで条件抽出のテキストボックス

    アクセス初心者です。 既に作成済みのクエリを実行する時、いつも「開始日」と「終了日」を入力するテキストボックスが 出てきていました。 例えば開始日のボックスに2009/04/01を入力してEnterを押すと次に終了日を入力する ボックスが出てきて2009/05/31と入力して実行するとそのデータベースのその日付の期間の データが抽出されるようになっていました。 あるとき必要がありそのクエリのデザインを開き別のテーブルの抽出条件を追加したり していたときに、その日付(登録日時というテーブル)の部分の抽出条件を消してしまいました。 元通りにしたいのですが、どのような式が入力されていたのかわかりません。 私なりに調べてみて、テキストボックスは表示されないのですが、クエリのデザインを 開いている状態でそこに 「Between #2009/04/01# And #2009/05/31#」などと日付を入力すればできることは わかったのですが、テキストボックスが表示されるように元通りにすることはわかりませんでした。 お分かりになる方、教えてください。

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

    先の投稿に重複しますが、 それぞれ異なるテーブルについて、 クエリーで、、 Between #5:00# And #19:00# Between 500 And 1900 上記の方法等で同じ数値ではなく、 期間に幅をもたせて一致としそれぞれの 一致データを抽出するクエリーは つくれますか? もちろん抽出対象のテーブル、列はそれぞれ同じ書式です。 > between関数を使って、 フィールドのデータ型が日付/時刻型の場合 抽出条件欄に、 > 5:00から19:00を抽出したい、 Between #5:00# And #19:00# > 5:00から25:00を抽出したい、 Between #5:00# And #23:59# OR Between #0:00# And #1:00# Access の日付/時刻型では、25:00 というような表現はできないので、上記のように分割することになります。 > また上記がテキストだった場合も、 > 500から1900を抽出したい フィールドがテキスト型の場合、テキスト比較になり数値比較とは異なる抽出結果になるので、 フィールドに Val([テキスト型フィールド]) と式を設定して数値型に変換します。このの抽出条件に、 Between 500 And 1900 と設定します。 通報する

専門家に質問してみよう