Microsoft Access 掲示板

指定月のカレンダーを表示できるようにしたい / 5

7 コメント
views
5
hiroton 2025/09/19 (金) 18:16:16 2d761@f966d
Private Sub 日付カレンダー_Enter()
    Me!日付.TabStop = False
~(略)~
End Sub

Private Sub 日付カレンダー_LostFocus()
    Me!日付.TabStop = True
End Sub

この部分はキーボード操作向けのおまけ対策です

通常、[TAB]で次のコントロール[Shift]+[TAB]で前のコントロールに移動しますが、
・カレンダーを表示

・[ESC]でカレンダーを非表示

・[Shift]+[TAB]で前のコントロールに移動

とすると、「日付」テキストボックスに戻って「日付」テキストボックスのフォーカス取得時イベントが発生して再び「日付カレンダー」に戻ってくる(動かない)ので「日付」テキストボックスを飛ばしてさらにその前のコントロールに移動できるように制御しています

ついでに、いろいろ触っていたら、この状態([ESC]でカレンダーを非表示にした状態)で何か入力するとエラーが発生したので対策を置いておきます

Private Sub 日付カレンダー_Change()
    On Error Resume Next
    Me!次のコントロール.SetFocus
    If Err <> 0 Then
        DoCmd.RunCommand acCmdShowDatePicker
    End If
    On Error GoTo 0
End Sub

「何か入力」すると、たいていそれは日付として認識できないので、その状態でフォーカスを移動しようとしてエラーが発生します。とりあえず、エラーが発生したら何もしないで再度カレンダー表示に戻すって形で

通報 ...