VBAのモーダル画面作成と日付判定について
AccessのVBAで日付判定をするやり方とモーダル画面遷移のやり方を知りたいです。 テキストボックスの中に入っている文字列をyyyy/mm/dd形式に表示を変換したいです。 20210623とかは下記のコードで変換出来て、それは良いのですが適当に打った数字「325464」とか「2021/0918」を打つと「型が一致しません」、「オーバーフローしました。」と出てきてエラー文が出てしまいます。エラー文は出したくないのでif文のElseで日付以外の文字列だったら何も処理をせずそのままの表示((yyyy/mm/dd)という表示に変換はせずそのまま)という処理をしたいですがうまくいきません。IsDate関数もyyyymmdd形式は日付として認識してくれないので使えませんでした。 下記のコードは元になったコードです。
Private Sub 日付_AfterUpdate()
日付= CDate(Format(日付,
"@@@@/@@/@@"))
End Sub
モーダル遷移に関しては、メインフォームの検索ボタンを押したら「検索」画面にモーダルで遷移するようにしたいです。 下記のコードでは一応モーダルで画面遷移するのですが、×ボタンで検索画面だけ閉じようとしたらメインフォームも一緒に閉じてしまいます。あと、なにもフォーカスを当ててない時にメインフォームでエンターキー押すと勝手に検索画面が出てくるという謎の誤作動起こしてます。
Private Sub 検索_Click()
Dim ReserchForm As String
ReserchForm = "検索"
DoCmd.OpenForm ReserchForm, , , , , acDialog
Me.Visible = False End Sub
どちらもどうコードを直したらいいか分かりません。
補足
早々にお返事いただきありがとうございます。 無事解決に至りました。