Access FormatDateTime関数はコントロールパネルの「地域のプロパティ」で定義されている書式を使い、日付形式の文字列を返す関数です。
■ 構文
FormatDateTime(Date[,NamedFormat])
■ 引数
Date : (必須) 書式を変換する日付を指定します。
NamedFormat : (省略可) 日付/時刻形式を表す定数を指定します。省略すると、vbGeneralDate になります。
NamedFormatの定数
vbGeneralDate : (0) 日付を短い形式で表示、時刻を長い形式で表示します。
vbLongDate :(1) [地域のプロパティ] で指定されている長い形式で日付を表示します。
vbShortDate :(2) [地域のプロパティ] で指定されている短い形式で日付を表示します。
vbLongTime :(3) [地域のプロパティ] で指定されている形式で時刻を表示します。
vbShortTime :(4) 24 時間形式 (hh:mm) で時刻を表示します。
■ 戻り値
日付形式の文字列を返します。
■ Access実行画面
顧客マスターの初回来店日を、3レコード単位でFormatDateTimeを使い変換します。
上より
1. NamedFormatを省略
2. NamedFormatをvbGeneralDateで変換
3. NamedFormatをvbLongDateで変換
4. NamedFormatをvbLongTimeで変換
5. NamedFormatをvbShortDateで変換
6.NamedFormatをvbShortTimeで変換
の順で変換しています。
違いがよく分かると思います。
■ Access VBA 実行コード
Option Compare Database
Private Sub コマンド0_Click()
Dim i As Long
Dim rs As Recordset
'テキストボックスのクリア
Me!テキスト5 = ""
'NamedFormatを省略
Set rs = CurrentDb.OpenRecordset("顧客マスター")
For i = 1 To 3
Me!テキスト5 = Me!テキスト5 & rs("初回来店日") & " → " & FormatDateTime(rs("初回来店日")) & vbNewLine
rs.MoveNext
Next
'NamedFormatをvbGeneralDateで変換
Me!テキスト5 = Me!テキスト5 & vbNewLine & vbNewLine
rs.MoveFirst
For i = 1 To 3
Me!テキスト5 = Me!テキスト5 & rs("初回来店日") & " → " & FormatDateTime(rs("初回来店日"), vbGeneralDate) & vbNewLine
rs.MoveNext
Next
'NamedFormatをvbLongDateで変換
Me!テキスト5 = Me!テキスト5 & vbNewLine & vbNewLine
rs.MoveFirst
For i = 1 To 3
Me!テキスト5 = Me!テキスト5 & rs("初回来店日") & " → " & FormatDateTime(rs("初回来店日"), vbLongDate) & vbNewLine
rs.MoveNext
Next
'NamedFormatをvbLongTimeで変換
Me!テキスト5 = Me!テキスト5 & vbNewLine & vbNewLine
rs.MoveFirst
For i = 1 To 3
Me!テキスト5 = Me!テキスト5 & rs("初回来店日") & " → " & FormatDateTime(rs("初回来店日"), vbLongTime) & vbNewLine
rs.MoveNext
Next
'NamedFormatをvbShortDateで変換
Me!テキスト5 = Me!テキスト5 & vbNewLine & vbNewLine
rs.MoveFirst
For i = 1 To 3
Me!テキスト5 = Me!テキスト5 & rs("初回来店日") & " → " & FormatDateTime(rs("初回来店日"), vbShortDate) & vbNewLine
rs.MoveNext
Next
'NamedFormatをvbShortTimeで変換
Me!テキスト5 = Me!テキスト5 & vbNewLine & vbNewLine
rs.MoveFirst
For i = 1 To 3
Me!テキスト5 = Me!テキスト5 & rs("初回来店日") & " → " & FormatDateTime(rs("初回来店日"), vbShortTime) & vbNewLine
rs.MoveNext
Next
Set rs = Nothing
End Sub