• ベストアンサー

ACCESS選択クエリーについて

テーブルのあるフィールドを条件を付け抽出したいのですが、、 (例)生年月日フィールドが、19900101~19911231 までのデータを全て抽出したい。 と言った時の条件はどう指定すれば良いのでしょうか 本を参照してみたのですが、この様な指定方法が載っておりませんでした。よろしくお願いします。

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

  • ベストアンサー
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.2

> 別テーブルのフィールド(日付型)を使用する場合は > どの様に指定すると良いのでしょうか? ?抽出条件として、使用する? (想像的に、どういうパターンだか・・・。) 単純に日付型であれば Between [テーブル名]![開始日] And [テーブル名]![終了日] になりますが、開始日も終了日も日付型の前提です。 また、どちらか片方がない場合、 [開始日] 以降の日付を出したい。 [終了日] 以前の日付を出したい。 の条件も追加したいと意向が変わるようでしたら・・・。 もう一工夫でNz関数を使用するって手も使えます。 Nz([テーブル名]![開始日],#1900/1/1#) Nz([テーブル名]![終了日],#3000/1/1#) とかで、代用~。 ただし、テーブルからの引用の際、テーブルがクエリー上に追加されている場合が前提としてます。 クエリー上引用されていない場合、D系の関数を使用して引用してくる事も可能ですが、式を別途作成します。 他にテーブルではなくフォームとかからの引用の場合 Forms![フォーム名]![コントロール名] に置き換えれば可能ですが、日付型の場合、型の明示を行ったほうが良いので CDate(Forms![フォーム名]![コントロール名]) の方が良いかもしれません。 後、VBAとかから設定する事も可能ですが、そこまでの説明は不要です?

ship1950
質問者

お礼

たいへん丁寧に回答をいただき感謝します。 よく分かりました、有難うございました。 <from ~ to>のパラメータ指定を使う事にしましたが、たいへん参考になりました。ご教授有難うございました。

その他の回答 (1)

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

生年月日フィールドのデータの型によります。 数値型の場合 Between 19900101 And 19911231 文字型の場合 Between '19900101' And '19911231' 日付型の場合 Between #1990/01/01# And #1991/12/31# とデータの型によって条件式が変わってきます。 他にも、メモ型の場合って、抽出できたかは???

ship1950
質問者

お礼

早速の回答有難うございました。 早速試してみました、フィールドが日付タイプでしたから日付型で指定しましたところOK!でした。 助かりました。 ちなみに、抽出日付を直に指定する場合はこれでOKなんですが、別テーブルのフィールド(日付型)を使用する場合はどの様に指定すると良いのでしょうか?

関連するQ&A