Ver Mensaje Individual
  #13 (permalink)  
Antiguo 28/01/2005, 18:15
Avatar de lucasiramos
lucasiramos
 
Fecha de Ingreso: agosto-2004
Ubicación: Santa Rosa, La Pampa, Argentina
Mensajes: 1.484
Antigüedad: 20 años, 7 meses
Puntos: 13
Tarde pero seguro....

Bueno javier. Pude hacer algo, pero no es del todo lo que buscabamos. En lugar de usar el evento BeforeUpdate, encontre el evento Exit, que es similar al Lostfocus de VB6. Evidentemente el msgbox hace que el foco pase al otro control, por lo que el "mensaje" lo arme con un label ubicado a la derecha del txt de la fecha. Este label, por defecto no tendra ningun texto. Este es el codigo:

Código:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
	If IsDate(TextBox1.Text) = False Then
		lbl1.Caption = "Debe ingresar fecha"
		Cancel = True
	Else
		lbl1.Caption = ""
	End If
End Sub
El Cancel es un parametro que si esta en True el foco se queda en ese control, por lo tanto si no es fecha lo que esta en el txt el foco se quedara alli y el label tendra como Caption un mensaje que diga que no es fecha, o algo asi. Vos lo acomodaras como quieras... Si lo que hay es fecha, el label quedara vacio, Cancel no estara en True y el foco se dirigira al siguiente control. Aclaración: CANCEL TIENE POR DEFECTO FALSE.

Bueno Javier. Costo pero algo salio. Espero que el codigo te sirva.

Saludos. Lucas