Cuadro de texto cuando tiene LostFocus y GotFocus
Pasa que tengo un formulario pero este no tiene origen del registro, lo utilizo para agregar datos a una tabla pero mediante una consulta sql... Lo que hago es que conforme voy metiendo un dato al cuadro de texto lo verifique y pues si es válido da el enfoque al cuadro de texto siguiente... Así es como lo hago:
Private Sub Tmatricula_LostFocus()
If IsNull(Tmatricula) = True Or Tmatricula.Value = "" Then
Tship_avion.SetFocus
ElseIf (Mid(Tmatricula.Value, 1, 1) <> "n") Or (Mid(Tmatricula.Value, 1, 1) <> "N") Then
Tship_avion.SetFocus
Else
Tship_avion.SetFocus
End If
End Sub
Private Sub Tship_avion_GotFocus()
If IsNull(Tmatricula) = True Or Tmatricula.Value = "" Then
MsgBox "Dato nulo o vacio, debe introducir un dato para Matricula.", _
VbExclamation, "Error en matricula"
Tmatricula. SetFocus
ElseIf (Mid(Tmatricula. Value, 1, 1) <> "n") Or (Mid(Tmatricula. Value, 1, 1) <> "N") Then
MsgBox "La matricula del avion debe empezar con la letra N.", _
VbExclamation + vbOKOnly, "Error en Matricula"
Tmatricula. SetFocus
Else
todoBien = todoBien + 1
Tship_avion.SetFocus
End If
End Sub
Private Sub Tship_avion_LostFocus()
If IsNull(Tship_avion) = True Or Tship_avion.Value = "" Then
Two.SetFocus
Else
Two.SetFocus
End If
End Sub
Y asi pues no me permite avanzar hasta que el dato sea correcto... Lo malo es que si me equivoco en un dato y me quiero regresar a modificarlo no puedo y aparte si quiero cancelar la operacion o simplemente cerrarlo tampoco me permite hacerlo...
¿Qué puedo hacer? ¿Cuál seria la solución? :-(
Private Sub Tmatricula_LostFocus()
If IsNull(Tmatricula) = True Or Tmatricula.Value = "" Then
Tship_avion.SetFocus
ElseIf (Mid(Tmatricula.Value, 1, 1) <> "n") Or (Mid(Tmatricula.Value, 1, 1) <> "N") Then
Tship_avion.SetFocus
Else
Tship_avion.SetFocus
End If
End Sub
Private Sub Tship_avion_GotFocus()
If IsNull(Tmatricula) = True Or Tmatricula.Value = "" Then
MsgBox "Dato nulo o vacio, debe introducir un dato para Matricula.", _
VbExclamation, "Error en matricula"
Tmatricula. SetFocus
ElseIf (Mid(Tmatricula. Value, 1, 1) <> "n") Or (Mid(Tmatricula. Value, 1, 1) <> "N") Then
MsgBox "La matricula del avion debe empezar con la letra N.", _
VbExclamation + vbOKOnly, "Error en Matricula"
Tmatricula. SetFocus
Else
todoBien = todoBien + 1
Tship_avion.SetFocus
End If
End Sub
Private Sub Tship_avion_LostFocus()
If IsNull(Tship_avion) = True Or Tship_avion.Value = "" Then
Two.SetFocus
Else
Two.SetFocus
End If
End Sub
Y asi pues no me permite avanzar hasta que el dato sea correcto... Lo malo es que si me equivoco en un dato y me quiero regresar a modificarlo no puedo y aparte si quiero cancelar la operacion o simplemente cerrarlo tampoco me permite hacerlo...
¿Qué puedo hacer? ¿Cuál seria la solución? :-(
1 Respuesta
Respuesta de fboaz
1