【Access関数】DateAdd関数の使い方|構文・具体例

入門講習

DateAdd関数は、「〇日後」や「〇か月前」といった日付計算を行うことができる関数です。この記事では、基本的な構文や具体的な使い方について解説します。

DateAdd関数とは

DateAdd関数は、「指定した単位」で日時を加算または減算する関数です。

「基準となる日付」に対して、年・月・日・時間などを足したり引いたりできます。
Addは日本語で「追加」という意味があるので、そういうふうに覚えておこう。

似た関数にDateDiff関数(日付の差を求める)がありますが、DateAdd関数は「未来・過去の日付を求める」用途に使われます。

構文

DateDiffの構文

DateAdd(単位,加算減算する数値,日時)

各構成要素の内容は次のとおりです。

引数必須/任意内容
単位必須加算・減算する単位を指定。設定値は【表1】を参照
加算減算する数値必須加算または減算する数値。正の値で未来、負の値で過去を指定
日時必須基準となる日付。例:Date(), #2025/10/01# など

【表1】単位の設定値

設定値内容説明
yyyy1年単位
q四半期3か月単位
m1か月単位
d1日単位
w週日週単位での曜日計算
ww1週間単位
h1時間単位
n1分単位
s1秒単位

具体例

DateAdd関数の基本的な例を解説します。

具体例① 7日後の日付を求める

DateAdd("d", 7, #2025/10/01#)

【結果】

戻り値として2025/10/08が返されます。

【解説】

単位にdを設定することで、日部分に対する加減を行います。例では基準日(2025/10/01)から7日後を返します。

具体例② 1か月前の日付を求める

DateAdd("m", -1, #2025/10/01#)

【結果】

戻り値として2025/09/01が返されます。

【解説】

単位にmを設定することで、月部分に対する加減を行います。加算減算する数値マイナス値を指定することで過去の日付が求めることができます。例では-1を指定することで、基準日(2025/10/01)に対して、1か月前を返します。

具体例③ 現在日から1週間後を求める

DateAdd("ww", 1, Date())

【結果】

実行日が2025/10/1である場合、戻り値として2025/10/8が返されます。

【解説】

単位にwwを設定することで、一週間単位(7日間)での加減を行います。本例では引数の日付部分にDate関数を指定しているため、本関数実行時点の日付が基準となります

具体例④ 今月の月末日を求める

DateAdd("d", -1, DateAdd("m", 1, DateSerial(Year(Date()), Month(Date()), 1)))

【結果】

実行日が2025/10/1である場合、戻り値として2025/10/31が返されます。

【解説】

DateAdd関数と他の日付関数(Date関数やDateSerial関数など)を組み合わせることで、月の初日や月末日を求めることができます。

例では、まず真ん中のDataAdd関数により翌月の初日を求めた後、左端のDateAdd関数で1日分を減算することで、現在の月の月末日を求めています。

使用例

前述で示した例は、構文に関する基本から応用までの具体例ですが、DateAdd関数はフォームのコントロールソース、VBA、クエリなどAccess内の様々な場所で使用することができます。ここでは、クエリで使用する例を2パターンご紹介します。

クエリでの使用例① 新規フィールドを増やすパターン

DateAdd関数をクエリで使用する例1
納品期限:DateAdd("d", 14, [注文日])

【解説】

商品注文状況を管理するテーブルにおいて、納品の期限日を、注文日から14日(2週間後)の日付で表示するフィールドを新たに作成するものです。

クエリでの使用例② 抽出条件で使用するパターン

<= DateAdd("d", -30, Date())

【解説】

抽出条件にDateAdd関数を使用するパターンです。例では、本日から過去14日の間に行われた注文のみ抽出します。

まとめ

最後に記事の要点をまとめます。

DateAdd(単位, 加算・減算する数値, 基準日時)

  • DateAdd関数とは
     指定した単位(年・月・日・時間など)で、基準日付に加算・減算を行う関数。
  • 構文
     DateAdd(単位, 加算・減算する数値, 日時)
  • 具体例
    1. DateAdd("d", 7, #2025/10/01#) → 7日後の日付を返す(例:2025/10/08)
    2. DateAdd("m", -1, #2025/10/01#) → 1か月前を返す(例:2025/09/01)
    3. DateAdd("ww", 1, Date()) → 現在日から1週間後を返す
    4. 今月の月末日を求める例:
      DateAdd("d", -1, DateAdd("m", 1, DateSerial(Year(Date()), Month(Date()), 1)))
  • 使用例(応用)
    1. クエリで「納品期限 = 注文日 + 14日」などの新規フィールドを作る
    2. 抽出条件で「過去〇日以内のデータ」を指定(例: <= DateAdd("d", -30, Date())

タイトルとURLをコピーしました