Resumen Comprobar validez de fechas

Yo, partiendo de una función que alguien envió a la lista y con algún cambio
fruto de sugerencias hechas también a la lista, he hecho ésta (que creo que
funciona) para comprobar si una cadena de texto se un valor de fecha válido
según el formato español. El separador tiene que ser el carácter '/'.

============================================================================
===================
Public Function EsFecha(strFecha As String) As Boolean

Dim strDia As String
Dim strMes As String
Dim strAño As String

On Error GoTo Error

strFecha = Trim(strFecha)

strDia = Left(strFecha, InStr(strFecha, "/") - 1)
strMes = Mid(strFecha, Len(strDia) + 2, InStr(Len(strDia) + 2, strFecha,
"/") - Len(strDia) - 2)
strAño = Right(strFecha, Len(strFecha) - InStr(Len(strDia & strMes) + 2,
strFecha, "/"))

If DateSerial(strAño, strMes, strDia) = CDate(strDia + "/" + strMes + "/" +
strAño) And _
    Len(strAño) = 4 Then EsFecha = True
Error:
End Function
============================================================================
===================

>         Tengo un problema un tanto desconcertante con las fechas
> veréis:
>         Mi configuración regional en Windows de la fecha es:
> dd/mm/aa, para validar una fecha utilizo la función IsDate, sin embargo,
> cuando introduzco por ejemplo la fecha: 11/20/98 (Que es errónea), la
> función IsDate me la da como correcta y visualiza: 20/11/98 es decir al
> estilo USA. ¿Porqué?
>      
>         Este es el código que utilizo
>         Private Sub MaskFec_contra_KeyPress(KeyAscii As Integer)
>     If KeyAscii = 13 Then
>              Wop = IsDate(MaskFec_contra.Text)
>             If Wop = False Then
>                             error_fecha
>                                       Else
>                         SendKeys "{TAB}"
>            
>             End If
>     End If
>     End Sub



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com