Te sugiero este método que te permite ingresar fechas sin separadores... el usuario te lo agradecerá ;)
Permite dejar el campo vacío ... quizás el campo no sea obligatorio. Eso lo podés controlar en otra instancia, por ej antes de grabar o guardar.
Private Sub TextBox1_Change() 'FECHA formato ddmmaa
If TextBox1 = "" Then Exit Sub
Select Case Len(TextBox1)
Case 2:
If Right(TextBox1, 2) > 31 Then
MsgBox "Debes ingresar nro de día entre el 01 al 31", , ""
TextBox1 = Left(TextBox1, Len(TextBox1) - 2)
Else
TextBox1 = TextBox1 & "-" 'utilizar el separador deseado
End If
Case 5:
If Right(TextBox1, 2) > 12 Then
MsgBox "Debes ingresar nro de mes entre el 01 al 12", , ""
TextBox1 = Left(TextBox1, Len(TextBox1) - 2)
Else
TextBox1 = TextBox1 & "-"
End If
Case 8:
If Not IsNumeric(Right(TextBox1, 2)) Then
MsgBox "Debes ingresar el año con 2 dígitos entre 00 y 99", , ""
TextBox1 = Left(TextBox1, Len(TextBox1) - 2)
End If
End Select
End Sub
Probalo y si resuelve tu consulta no olvides valorarla.
PD) Tema extraído de mi manual de Formularios.
Sdos.
Elsa