ACCESSの仕様的に「日付」テキストボックスだけではどうしようもないかなーと思ってます
直接入力を禁止し、カレンダーからしか選べないような形であれば、入力用のテキストボックスを使ってどうにかなるかもしれません
入力用に「日付カレンダー」テキストボックス(非連結)を用意します。幅プロパティを「0cm」にし、「日付」テキストボックスの左端に重なるように設置して見た目上見えないようにします
以下、VBAを使って、「日付カレンダー」(見えないテキストボックス)で日付選択カレンダーを表示し、カレンダーの日付選択時に「日付」テキストボックスに値を設定するサンプルです。
Private Sub 日付_Enter()
Me!日付カレンダー.SetFocus
End Sub
Private Sub 日付カレンダー_AfterUpdate()
Me!日付 = Me!日付カレンダー
End Sub
Private Sub 日付カレンダー_Change()
'//カレンダーの日付をクリックしたときに発生するイベント
'//ここで、別なコントロールに移動してAfterUpdateを発生させる
Me!次のコントロール.SetFocus
End Sub
Private Sub 日付カレンダー_Enter()
Me!日付.TabStop = False
If IsDate(Me!日付) Then
Me!日付カレンダー = Me!日付
Else
If IsDate(Me!対象年 & "/" & Me!対象月 & "/1") Then
Me!日付カレンダー = Me!対象年 & "/" & Me!対象月 & "/1"
Else
Me!日付カレンダー = Null
End If
End If
DoCmd.RunCommand acCmdShowDatePicker
End Sub
Private Sub 日付カレンダー_LostFocus()
Me!日付.TabStop = True
End Sub
※カレンダーで選択した値を反映させるために変更時('change')イベントを使ってコントロールの移動('setFocus')をしています。「Me!次のコントロール」は適切なものを指定してください
通報 ...