Date validation

V

Viktor Ygdorff

Hello. I have a problem that seems easy to solve but it has caused me some
trouble. I have a userform in which the user shall enter two main dates, one
start and one end date. The dates are entered in textboxes. If these dates
are Ok i.e. they are truely dates and not something else other textboxes
shall be populated with these dates. The user shall then have the opportunity
to change dates in these textboxes. After that the user presses a button and
the main program starts. This works fairly well for me. It works like this:
when the user enters something in the first "main" textbox i.e. startdate:

Private Sub TextBox1_Change()
Call IsEverythingValid
End Sub

Private Sub IsEverythingValid()
Dim AllOk As Boolean

AllOk = True
If IsDate(Me.TextBox1.Value) = False Then
AllOk = False
'Me.Label1.Caption = "Var god ange startdatum"
Else
If IsDate(Me.TextBox2.Value) = False Then
AllOk = False
' Me.Label1.Caption = "Var god ange slutdatum"
End If
End If

If AllOk = True Then
Call getInfoFromTextBox1
Call getInfoFromTextBox2
end if
Me.genereraRapportKnapp.Enabled = AllOk

End Sub

As you can see the sub checks if the dates are ok and if so activates the
button that starts the main program when pressed. the problem is that after
the user have entered a valid startdate and half of a valid end date my
program enables the button. I do not see why this would happen. It is a
problem because it looks bad and because I want to have a check to see if the
user has entered dates that are either a sunday or a saturday. Does anyone
know how to fix this?
 
T

Tom Ogilvy

Excel will accept a partial date and apply some rules to complete it. for
example (from the immediate window):

? isdate("1/1")
True

If you are restricting to a specific format, you would need to put in a
check on length or perhaps two separators. You will probably need to write
something quite robust and test it thoroughly if you want a reliable
evaluation.

An alternative would be to use a datetimepicker type control.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top