userform-check data type

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I am developing a userform in which the user will enter a date. I want the
code to verify that the data entered is a valid date (type dbDate) before
calling the procedure. To do this I have been working with the code below:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim dtHol As Variant
dtHol = TextBox1.Value
If TextBox1.Type <> dbDate And TextBox1.Value <> "" Or _
TextBox1.Value <> 0 Then
Call errMsg1
End If
End Sub

The Type method does not seem to be available for this purpose, and
assigning a variable the value of the TextBox has been similarly
unsuccessful. Any hints how this should be done?
 
If Not IsDate(TextBox1.Text) And TextBox1.Value <> "" Or _
TextBox1.Value <> 0 Then


--

HTH

RP
(remove nothere from the email address if mailing direct)
 
A textbox returns a string, so you can't test the type property (which a
textbox doesn't have a type property) against any constant. A constant such
as dbDate must be defined in a library other than Excel, Officer or MSForms,
so it would have little utility in such a check if it were possible.

Dim dt as Date
on Error Resume Next
dt = cDate(Textbox1.Text)
On Error goto 0

now check out dt to see if it meets your criteria.
 
Try this:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Dim dtHol As Variant
Dim dbDate As Date

dtHol = TextBox1.Value
If IsDate(TextBox1) <> True And (TextBox1.Value <> "" Or _
TextBox1.Value <> 0) Then
MsgBox "Value must be date (mm/dd/yyyy)."
Cancel = True
End If

End Sub
 

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

Back
Top