• ベストアンサー

★クエリでの日付の抽出

アクセス2000で注文書の管理をしています。 注文書テーブルにある「支払日」フィールドをもとにクエリで抽出を行いたいのですが、 その抽出条件を『今日以前7日間~今日以降7日間』としたいのです。 その場合、抽出条件はどのように記述すれば良いでしょうか? ご回答をお願いします。

  • non23
  • お礼率76% (33/43)

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

  • ベストアンサー
  • kmor
  • ベストアンサー率27% (225/825)
回答No.3

日付の抽出条件で Between DateAdd("d",-7,Now()) And DateAdd("d",7,Now()) とすればできます。 DateAddとは、ある日付から何(日、月、年など)をどれくらい加算する という関数です。 7日前は "d"(日)を-7日今の日付から(Now())加算する 7日後は "d"(日)を7日今の日付から(Now())加算する と言う意味です。

non23
質問者

お礼

できました!感謝ですm(__)m

その他の回答 (2)

  • wildcard
  • ベストアンサー率54% (54/100)
回答No.2

『今日以前7日間~今日以降7日間』 と言う事ですから、7日前と7日後も含むのでしょうか?含むので有れば下記で大丈夫です。含まない場合は、2カ所の=を消して下さい。 >=DateSerial(Year(Now()),Month(Now()),Day(Now()))-7 And <=DateSerial(Year(Now()),Month(Now()),Day(Now()))+7 また、Between ~ And ~形式であれば、下記の記述でOKです。 Between DateSerial(Year(Now()),Month(Now()),Day(Now()))-7 And DateSerial(Year(Now()),Month(Now()),Day(Now()))+7 もっとスマートな式もあるとは思いますが…

non23
質問者

お礼

ありがとうございました!

  • eub55
  • ベストアンサー率39% (58/147)
回答No.1

○○~××まで という条件を書くときには 『Between ○○ And ××』 という記述をします。 また、今日を表すにはアクセスでは関数Date()を使用します。 つまり、 今日以前7日前 → Date()-6 今日以降7日目 → Date()+6 なので、 Between Date()-6 And Date()+6 で良いのではないかと思います。

non23
質問者

お礼

参考になりました。ありがとうございます。

関連するQ&A

  • Access クエリ 抽出条件

    Access の クエリ における 抽出条件 の 書き方についてご質問させていただきます。 クエリには、左から『商品名』、『出荷数量』、『注文数量』の3列がございます。 各レコードの『出荷数量』フィールドの値と『注文数量』フィールドの値を比較し、 『注文数量』フィールドの値の方が大きいレコードだけを抽出したいのですが、どのように抽出条件を記載すればよろしいでしょうか? 元データは1つのテーブルに格納されています。 例:注文数量:500、出荷数量:200など出荷数量が少ないレコードを抽出対象 注文数量:100、出荷数量:100など注文数量=出荷数量レコードは抽出対象外

  • クエリの抽出方法について

    Ms-Accessのクエリの抽出条件の記述方法に関する質問です。 そもそも不可能なことかもしれないのですが、質問させていただきます。 T_時間割:年度、科目キー、曜日コード、時限コード、教員コード、・・・ T_科目:年度、科目キー、単位、・・・ T_教員:教員コード、教員名、・・・ cd曜日:曜日コード、曜日名称、・・・ cd時限:時限コード、時限名称、・・・ といったテーブルをもとにクエリを作成します。 1行目の抽出条件:曜日コード:1 2行目の抽出条件:単位:2 とし、3行目の抽出条件にクエリのもとになっていないテーブル ↓↓ T_受講者なし科目:年度、科目キー、・・・ の科目キーを指定したいのですが、どうにも抽出条件の記述方法がわかりません。 DLookUpを使うと、「T_受講者なし科目」の1行目のフィールド値のみが抽出条件となってしまいます。 「T_受講者なし科目:科目キー」の全てのフィールド値を抽出条件とする場合、どのようにすればいいのでしょうか?? よろしくお願いいたします。

  • 【Access】フィールドにつけた別名を同じクエリで抽出に使いたいです

    【Access】フィールドにつけた別名を同じクエリで抽出に使いたいです。 Access2003を使っています。 困っている状況は以下のようなもです。 ■テーブル1  ・フィールド1 ■クエリ1  ・フィールドA:フィールド1  ・フィールドB:[フィールドA]   【抽出条件】>=10 このような条件で、クエリを実行すると、 「パラメータの入力 フィールドA」というダイアログが立ち上がってしまいます。 上記載のクエリ1でフィールドAの[]は自然についてしまうのではずせません。 今はもう一つクエリを作る事でこの状況はなんとかしましたが、フィールドに別名をつける毎にクエリを作るとクエリの数が多くなってしまうので困っています。 クエリでフィールドに別名をつけた場合は、そのクエリ上でその別名を使って抽出をかけることはできないのでしょうか? よろしくお願いします。

  • クエリーで全部のデータを抽出する方法

    アクセスのクエリーでデータを抽出する時、具体的にはフォームでデータを入力し抽出するのですが、たとえばフォームのテキストボックスに数字を入れないとそのクエリーのフィールドは抽出がかからないようにしたいのです。(抽出フィールドが1つなら数字をいれなければクエリーのデータすべてが表示される) ----------------------------------- フィールド   A      B     c テーブル   テーブル1 テーブル1 テーブル1 抽出条件    []    [] または    ---------------------------------- 上はクエリーのデザインですがクエリーをひらくと抽出条件をきいてきますがA列は何も入力しないでB列では1と入力するとBの列に1の入ってるレコードを表示させたいのです。(もし空欄が無理ならAの列の時何かある文字を入力すると全部表示になる、でもいいです。) まわりくどくなりましたが、アクセス超入門者です。よろしくおねがいします。

  • ACCESSのクエリ:抽出条件で型が一致しません

    ACCESSでクエリを作ったのですが 実行すると、 「抽出条件で型が一致しません」のエラーが出ます 問題となっているヶ所は テーブルのフィールド定義がバイナリーになっています そして、クエリで   フィールド   テーブル   並べ替え   表示   抽出条件   または となっていますが、 この抽出条件に、1、を入れました テキスト型なら、"1" 数値系型なら、1、でいいのか、と思ったのですが バイナリ型は別の表現があるのでしょうか よろしくお願いします

  • Accessで任意のテーブルのフィールド値をクエリの抽出条件にできますか?

    Accessで任意のテーブルのフィールド値をクエリの抽出条件にできますか? 工程管理のAccessDBがあり、毎日更新される工程を管理するため、数種類の選択クエリを作成しています。 そのクエリからExcelのデータベースクエリを使ってExcelシートにクエリ毎に各シートに取り込んでいます。 Accessクエリは不定期で抽出条件を変更しています。 抽出条件はどのクエリでも同時に同じものを使うところが多いため、任意に入力した値を抽出条件に指定できれば、一度で全クエリの抽出条件を変更できるのではないかと考えています。 色々調べてもフォームを使った方法は紹介されていますが、上記の条件下でいい方法はないでしょうか? 抽出条件は『Is Null Or >#2008/06/30#』のような感じです。

  • AccessのクエリでvbLfのみ抽出するには

    Access2010のクエリー(SQL)で vbLfかvbCrLfが含まれているレコードを抽出するには、 SELECT [テーブル1].* FROM テーブル1 WHERE [テーブル1].フィールド1 Like "*" & Chr(10) & "*"; vbLfが含まれているレコードは抽出せず、 vbCrLfが含まれているレコードだけを抽出するには、 SELECT [テーブル1].* FROM テーブル1 WHERE [テーブル1].フィールド1 Like "*" & Chr(13) & Chr(10) & "*"; でよいと思いますが、 vbCrLfが含まれているレコードは抽出せず、 vbLfが含まれているレコードだけを抽出するには、 どのように記述すればよいのでしょうか。 よろしくお願いします。

  • Accessのクエリで、抽出条件を「未入力のもの」としたい

    いつもお世話になっております。m(_ _)m Accessのクエリで、抽出条件に「そのフィールドが未入力のもの」としたいのですが、どのように記述すればよいのでしょうか? よろしくお願い致します。

  • アクセスのクエリ 1文字以上を抽出

    アクセスのクエリの抽出条件で、「1文字以上」とする方法を教えてください。 抽出条件をビルドで作ってみたのですが、 勝手にダブルコーテーションがついてしまいます。 1文字以上の値はあるのに何も抽出されません。 sql文は SELECT [テーブル1].[フィールド1] FROM テーブル1 WHERE ((Len([テーブル1]![フィールド1])>"1")); となっています。 ご教授よろしくお願いします。

  • access2007 クエリで抽出

    初心者です。クエリで抽出したのですが、一部のデータが抜け落ちます。抽出条件のフィールドはテキスト型で、元のテーブルでコピペで統一しましたが、同じデータが抜け落ちます。削除してやり直しても同様でした。重複クエリを作成するとこのフィールドが重複して出てきます。どこを直したらいいのか見当がつきません。よろしくお願いします。