• ベストアンサー

【Access2000】月末の日付を条件にクエリーから抽出する方法

フォーム[フォーム1]にある[年月日]フィールド(非連結)に入力されたデータをもとにして、そのデータの末日より以前、という条件で抽出を行いたいと思います。クエリーの抽出条件には以下の式を採用しました。 <=DateValue(Year([Forms]![フォーム1].[年月日]) & "/" & (Month([Forms]![フォーム1].[年月日]))+1 & "/" & 1)-1 この式を使用すると、確かに月末は出るのですが、12月の時にエラーになってしまいます。原因も12月で1を足すと、13になるのでおかしくなるのでは?と特定できているのですが、どう回避すれば良いのかわかりません。何か方法がありましたら、お教えくださいませ!!宜しくお願いいたします。 ちなみにOSはWindows2000を使用しています。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 DateSerial関数とDataAdd関数を使えばうまく行きます。 <= DateSerial(Year(DateAdd("m", 1, [Forms]![フォーム1].[年月日])), Month(DateAdd("m", 1, [Forms]![フォーム1].[年月日])), 1) - 1 DateValueの引数に日付文字列を作って入れるより簡単だと思います。

yui_kis
質問者

お礼

ありがとうございます。うまくいきました!! DateAdd関数を使用するんですね。またひとつ勉強になりました!!

その他の回答 (1)

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

この方法でも出来ます。 まず指定した次の月の1日を求めて、それから1日前を求めます。 DateAdd("D", -1, DateAdd("M", 1, Year([Forms]![フォーム1].[年月日]) & "/" & Month([Forms]![フォーム1].[年月日]) & "/" & "01"))

yui_kis
質問者

お礼

ご回答ありがとうございました!この方法でもできました!!

関連するQ&A

専門家に質問してみよう