Access DateDiff(関数は指定した2 つの日付の差をバリアント型で返す。
差は引数により、年や月や時間などが指定できます。
Home Access関数
■ 構文
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
■ 引数
interval (必須): 差の時間単位を表す文字列式を指定
date1, date2 (必須): 差を計算する 2 つの日付を指定
firstdayofweek (省略可): 週の始まりの曜日を表す定数を指定。省略すると日曜日になる。
firstweekofyear (省略可): 年度の第1週を表す定数を指定。省略すると、1月1日を含む週が第1週となる。
[ interval の設定値 ]
yyyy : 年
q : 四半期
m : 月
y : 年間通算日
d : 日
w : 週日
ww : 週
h : 時
n : 分
s : 秒
■ 戻り値
日付の差がバリアント型で返ります。
■ Access実行画面
[実行手順]
1)日付1を入力
2)日付2を入力
3)取得する単位を選択
4)実行ボタンをクリック
日付1「2009/06/22 19:21:12」、日付2に1年後の「2009/06/22 19:21:12」となっています。
単位を年にし差を計算した結果、「1」となっています。
単位を日にし差を計算した結果、「365」となっています。
単位を秒にし差を計算した結果、「31536000」となっています。
■ Access VBA 実行コード
Option Compare Database
Private Sub Form_Load()
Me!テキスト0 = Format(Now, "yyyy/mm/dd hh:nn:ss")
Me!テキスト1 = Format(DateAdd("yyyy", 1, Now), "yyyy/mm/dd hh:nn:ss")
End Sub
Private Sub コマンド18_Click()
Dim ln As Variant
If IsNull(Me!テキスト0) Then
MsgBox "日付1を入力してください。"
Me!テキスト0.SetFocus
Exit Sub
End If
If IsNull(Me!テキスト1) Then
MsgBox "日付2を入力してください。"
Me!テキスト1.SetFocus
Exit Sub
End If
'Me!テキスト0とMe!テキスト1の差を求める
Select Case Me!フレーム2
'年
Case 1:
ln = DateDiff("yyyy", Me!テキスト0, Me!テキスト1)
'月
Case 2:
ln = DateDiff("m", Me!テキスト0, Me!テキスト1)
'日
Case 3:
ln = DateDiff("d", Me!テキスト0, Me!テキスト1)
'時
Case 4:
ln = DateDiff("h", Me!テキスト0, Me!テキスト1)
'分
Case 5:
ln = DateDiff("n", Me!テキスト0, Me!テキスト1)
'秒
Case 7:
ln = DateDiff("s", Me!テキスト0, Me!テキスト1)
End Select
Me!テキスト19 = ln
End Sub