アプリ版:「スタンプのみでお礼する」機能のリリースについて

フォーム[フォーム1]にある[年月日]フィールド(非連結)に入力されたデータをもとにして、そのデータの末日より以前、という条件で抽出を行いたいと思います。クエリーの抽出条件には以下の式を採用しました。

<=DateValue(Year([Forms]![フォーム1].[年月日]) & "/" & (Month([Forms]![フォーム1].[年月日]))+1 & "/" & 1)-1

この式を使用すると、確かに月末は出るのですが、12月の時にエラーになってしまいます。原因も12月で1を足すと、13になるのでおかしくなるのでは?と特定できているのですが、どう回避すれば良いのかわかりません。何か方法がありましたら、お教えくださいませ!!宜しくお願いいたします。

ちなみにOSはWindows2000を使用しています。

A 回答 (2件)

こんにちは。

maruru01です。

DateSerial関数とDataAdd関数を使えばうまく行きます。


<= DateSerial(Year(DateAdd("m", 1, [Forms]![フォーム1].[年月日])), Month(DateAdd("m", 1, [Forms]![フォーム1].[年月日])), 1) - 1


DateValueの引数に日付文字列を作って入れるより簡単だと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/02/03 15:54

この方法でも出来ます。


まず指定した次の月の1日を求めて、それから1日前を求めます。

DateAdd("D", -1, DateAdd("M", 1, Year([Forms]![フォーム1].[年月日]) & "/" & Month([Forms]![フォーム1].[年月日]) & "/" & "01"))
    • good
    • 1
この回答へのお礼

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

お礼日時:2003/02/03 15:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!