納期が迫っているので、とりあえずこの方法で、日付に入力を行なうことにする。下松のF社で行なっている方法であるが、作り方を忘れたので、手順を整理した。
1)カレンダー フォームの作成
2)呼び出し方
Private Sub lbl日誌日_Click() VARAns = get_Calendar(Me.txt日誌日) If Not IsNull(VARAns) Then Me.txt日誌日 = VARAns End Sub
3)get_Calendar() のモジュール
Option Compare Database Option Explicit Const MYObjName As String = "modGet_Calendar" Const MYFormName As String = "frmGetCalendar" Public P_getCalendar戻り値 As Variant Public Function get_Calendar(Optional ByVal argIniDate = Null) As Variant On Error GoTo Err_get_Calendar Dim mbTitle As String mbTitle = MYObjName & "/get_Calendar" If IsDate(argIniDate) = False Then argIniDate = Date DoCmd.openForm MYFormName, , , , , acDialog, argIniDate get_Calendar = P_getCalendar戻り値 Exit_get_Calendar: Exit Function Err_get_Calendar: MsgBox Err.Number & "/" & Err.Description, vbCritical, mbTitle Resume Exit_get_Calendar End Function
懸念事項
- 自分はAccess2002,お客は Access2003。
カレンダーコントロールのバージョン違いで、上手く動くか? の懸念がある。