Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB4,VB5,VB6,VBS
Expertise: Intermediate
Jul 22, 2000

IsValidDateField - Check whether a date is valid

Enum psDateTypes
    AnyValidDate    'Allows any valid date to be entered
    PastDate        'Only allows past dates (before today) to be entered
    FutureDate      'Only allows future dates (after today) to be entered
    TodayOrFuture   'Only allows today or future date to be entered
    TodayOrPast     'Only allows today or a previous day to be entered
End Enum

' Validate attributes of date data
' Returns True if valid, False if invalid
'
' Example:
'  If IsValidDateField(Value:="01/30/2001",
'  '       DateType:=psDateTypes.FutureDate, IsRequired:=True)

Function IsValidDateField(Value As Variant, Optional ByVal DateType As _
    psDateTypes = AnyValidDate, Optional ByVal IsRequired As Boolean = True) As _
    Boolean

    On Error GoTo ErrorHandler
    
    Dim lngDate As Long
    Dim lngToday As Long

    IsValidDateField = True

    If IsRequired = True Then
        If IsNull(Value) Or Value = vbNullString Then
            IsValidDateField = False
        End If
    ElseIf IsNull(Value) Or Value = "" Then
        Value = Null
        Exit Function
    End If

    If IsDate(Value) Then
        lngDate = Format$(Value, "yyyymmdd")
        lngToday = Format$(Now, "yyyymmdd")

        Select Case DateType
            Case psDateTypes.FutureDate
                If lngDate <= lngToday Then
                    IsValidDateField = False
                End If
            Case psDateTypes.PastDate
                If lngDate >= lngToday Then
                    IsValidDateField = False
                End If
            Case psDateTypes.TodayOrFuture
               If lngDate < lngToday Then
                    IsValidDateField = False
                End If
            Case psDateTypes.TodayOrPast
               If lngDate > lngToday Then
                    IsValidDateField = False
                End If
        End Select
    Else
        IsValidDateField = False
    End If

    Exit Function
    
ErrorHandler:
    Err.Raise Err.Number, "IsValidDateField", Err.Description

End Function

'###########################################################
'#
'#   This rountime has been brought to you by 
'#   Pragmatic Software Co. Inc, the creators of Defect Tracker, 
'#   the tool of choice for tracking functional specifications, 
'#   test cases and software bugs.
'#   Learn more at http://www.DefectTracker.com.
'#   Affiliate program also available at 
'#   http://www.PragmaticSW.com/AffiliateSignup.
'#
'###########################################################
Steve Miller
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date