Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Access 2016)
今後3ヶ月分までのレコードの抽出方法
投稿日時: 21/07/12 19:36:14
投稿者: yurappy

お世話になります。
期間分のレコード抽出で悩んでいて、ご教授ください。
 
予約を受けつけて登録をしていて、予約日を日付型のフィールドに入力してますが、その中から「 今月分から3ヶ月後分までの日付けのレコードを抽出」したいのですが、どのようにしたら良いのかわからずに、悩んでおります。
 
Betweenで、期間分の日付けを指定すれば良いのかと思いましたが、今月分と今後3ヶ月分という指定の仕方がわからず、悩んでます。
また、日付けを「  Format([受付管理]![予約日],"yyyy¥年mm¥月" 」の様に、年月にして何か方法は無いかとネットで調べたのですが、わからずにおります。
 
抽出する方法をご存知の方がいらしたら教えてください。
 
よろしくお願いいたします。

回答
投稿日時: 21/07/12 21:59:41
投稿者: mayu.

■SQL

SELECT * FROM 受付管理
WHERE 予約日 Between DateSerial( Year( Date() ), Month( Date() ), 1 )
                 And DateSerial( Year( Date() ), Month( Date() ) + 4, 0 )
;
とか
SELECT * FROM 受付管理
WHERE Format$( 予約日, 'yyyymm' ) >= Format$( Date(), 'yyyymm' )
  AND Format$( 予約日, 'yyyymm' ) <= Format$( DateAdd( 'm', 3, Date() ), 'yyyymm' )
;
で、ご希望の抽出が可能です。
 
なお、データ数が多い場合や、予約日フィールドにインデックスが設定されている場合は
DateSerial関数を使った抽出方法をお薦めします。

投稿日時: 21/07/13 09:06:27
投稿者: yurappy

mayu.樣
 
ご親切にありがとうございます。
 
いままで、SQLというのを、やったり書いたことが無いので、これから勉強して試してから、またご連絡いたします。
 
勉強になって嬉しいです。
 
ありがとうございます。

投稿日時: 21/07/13 21:23:19
投稿者: yurappy

mayu.樣
  
ご教授いただて、ありがとうございます。
おかげさまで思う様に抽出できました。
 
 

引用:

SELECT * FROM 受付管理
WHERE 予約日 Between DateSerial( Year( Date() ), Month( Date() ), 1 )
                 And DateSerial( Year( Date() ), Month( Date() ) + 4, 0 )
;

 
を利用させていただいて、期間を変更するのもできて勉強になりました。
 
ご親切にありがとうございました。
 
また困った時にお願いいたします。