Access - cuadro de texto cabezon

 
Vista:

cuadro de texto cabezon

Publicado por carlos (60 intervenciones) el 09/11/2009 16:20:00
Hola a todos

tengo un problemilla, en un formulario, tengo campos de una tabla, ademas tengo un subformulario, que actualizo desde unos cuadros de texto independientes, bien el problema es el siguiente, tengo un criterio en el evento After_UpDate del cuandro independiente, para si introducen un "cero", me salga un mensaje, blablablabla, ok eso funciona bien, y si introduce un valor mayor que "cero" pues haga lo que deseo, hasta ahy todo bien, ahora intento que si no se teclea nada y se da enter, me salga el mensaje que deseo, bien ejecutando el evento paso a paso, puedo ver cuando se teclea cero o un numero mayor que me hace todo lo que tengo implementado, pero si presiono enter no pasa nada, y ni siquiera entre en el evento After_UpDate, porque pasa esto, alguien me puede decir, en fin lo que deseo es esto

Private Sub Texto22_AfterUpdate()
If Me.Texto22.Value="" then
Msgbox" Mensaje "
end if

y no hace nada.

muchas gracias, saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:cuadro de texto cabezon

Publicado por Chea (1015 intervenciones) el 09/11/2009 18:41:59
El evento afterupdate se produce después de modificarse el valor del campo. Si no se modifca el campo no se dispara.

Por otro lado, un campo sin modificar, será más bién un Null, no "", pero, por si acaso, conviene tener ambas posibilidades en cuenta.

En resumen, que si quieres que el evento se dispare siempre que se salga del control, deberías usar el evento LostFocus y, si quieres comprobar si está en blanco, deberías mirar también el null: algo así.

Private Sub Texto22_LostFocus()
if nz (me.Texto22,"")= "" then...
...
endif

End Sub

Saludos
José Bengoechea Ibaceta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:cuadro de texto cabezon

Publicado por Chea (1015 intervenciones) el 09/11/2009 18:42:07
El evento afterupdate se produce después de modificarse el valor del campo. Si no se modifca el campo no se dispara.

Por otro lado, un campo sin modificar, será más bién un Null, no "", pero, por si acaso, conviene tener ambas posibilidades en cuenta.

En resumen, que si quieres que el evento se dispare siempre que se salga del control, deberías usar el evento LostFocus y, si quieres comprobar si está en blanco, deberías mirar también el null: algo así.

Private Sub Texto22_LostFocus()
if nz (me.Texto22,"")= "" then...
...
endif

End Sub

Saludos
José Bengoechea Ibaceta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:cuadro de texto cabezon

Publicado por Jefferson (17 intervenciones) el 09/11/2009 19:47:29
Hola Carlos

Como te comenta el maestro chea es una opcion practica y util
Otra forma seria recorrer el formulario en busca de campos vacios y al detectarlo que lo sombree e impida otra opcion

el codigo

Sub CampoVacio()
Dim ctl As Control
For Each ctl In Me.Controls
With ctl
If .ControlType = acTextBox Then
If IsNull(.Value) Then
MsgBox "CampoVacio"
ctl.SetFocus
End
End If
End If
End With
Next ctl
End Sub

Desde Venezuela
Jefferson
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias pero ..............

Publicado por carlos (60 intervenciones) el 11/11/2009 10:17:09
Muchas gracias Chea y Jefferson, pero tengo un problema, en el ejemplo de Chea, sucede que, al formulario le he quitado los botones de cerrar, maxi, ...., y le he puesto un boton para cerrar el formulario, y cuando cierro, como el control pierde el focus antes de cerrarse pues me sale el mensaje que yo le he puesto y no quiero que sea asi, y en el ejemplo de Jefferson, pues igual, en fin lo que intento, hacer es que una vez este sobre el cuadro que quiero actualizar, si tecleo algun valor fuera del criterio que deseo me salga al mensaje, eso ya esta, pero sino tecleo nada y le doy enter, quisera que me saliera ese dichoso mensaje, se puede hacer esto de alguna forma. espero haberme explicado, muchas gracias a los dos,

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Gracias pero ..............

Publicado por Jefferson (5 intervenciones) el 11/11/2009 19:06:16
Chea te lo puso clarito

Private Sub Texto22_LostFocus()
if nz (me.Texto22,"")= "" then
...
endif

Si lo prefieres hazlo en el evento al salir que usa la funcion cancel como integrado
te quedaria asi

private sub texto22_exit(cancel as integer)
if nz (me.Texto22,"")= "" then
msgbox ....
cancel = true
endif

con eso evitas que el campo quede nulo o vacio

En mi ejemplo tambien es sencillo, pues al boton de cerrar el formulario llamas la funcion CampoVacio y de haberlo detiene el codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar