ACCESSのフォーム上に日付を入力するテキストボックスdodate(IMEは使用不可)があります。このテキストボックスに入力された文字列のうち、日付形式のものを日付型にします。年2桁or4桁、月日は各一桁の場合に0埋めするorしない、年月日の間にスラッシュありorなしの違いがあり、以下のような処理を考えました。「00/0/0」や「00000000」をはじくためにIsDate(dodate)を加えています。日付形式でないと判断したものは、再入力します。長くなったのですが、より簡素にする方法はないでしょうか。よろしくお願いします。
AccessVBA
1Private Sub dodate_Exit(Cancel As Integer) 2 3 Dim datetest As Boolean 4 If dodate Like "##/#/#" Or dodate Like "##/##/#" Or dodate Like "##/#/##" Or _ 5 dodate Like "##/##/##" Or dodate Like "####/#/#" Or dodate Like "####/##/#" Or _ 6 dodate Like "####/#/##" Or dodate Like "####/##/##" Then datetest = True 7 If dodate Like "######" Then dodate = Format(dodate, "@@/@@/@@"): datetest = True 8 If dodate Like "########" Then dodate = Format(dodate, "@@@@/@@/@@"): datetest = True 9 If datetest And IsDate(dodate) Then 10 dodate = CDate(dodate) 11 Else 12 MsgBox "日付を入力してください。" 13 Cancel = True 14 End If 15 16end sub

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/05 08:13