I would like to take a user input (a date) via an OK / Cancel box... so I'm successfully using an input box.
Now I would like to make sure the user input date is:
- Not later than todays date
- If the user presses "cancel" the input box will cancel
- If the user presses OK and it's not a valid date and later than today it will prompt for an entry again.
I'm using the following code but I can't get it to check dates correctly. If I Dim sOutRxDate as a date... it helps but then I can't tell if the user pressed escape.
Any ideas?
Dim sOutRxDate As String Do Until IsDate(sOutRxDate) And sOutRxDate <= Now() sOutRxDate = InputBox("What date was the outside Rx was issued?" & vbCrLf & vbCrLf & vbCrLf, "Outside Rx") If StrPtr(sOutRxDate) = 0 Then Exit Sub 'User pressed cancel Loop
Do sOutRxDate = InputBox("What date was the outside Rx was issued?" & vbCrLf & vbCrLf & vbCrLf, "Outside Rx") If StrPtr(sOutRxDate) = 0 Then Exit Sub 'User pressed cancel Loop Until IsDate(sOutRxDate) And Cdate(sOutRxDate) <= Now()
Oh me like! The only issue is if the user presses OK without anything entered or the user enters text, I get a data type mismatch error. Can this be resolved without an error message to the user?
Open in new window