Casilla automática si texto esta vacío

Tengo un cuadro de texto con casilla de verificación que marco cuando escribo en el cuadro de texto quisiera saber si es posible que la casilla se marque automáticamente si escribo en el cuadro de texto.

1 Respuesta

Respuesta
1

Suponiendo que el cuadro de texto se llama txtTexto (propiedades -> Pestaña Otras -> Nombre) y suponiendo que la casilla de verificación se llama chkDatos lo que podrías hacer es, en el evento "Después de actualizar" del textbox, escribir el siguiente código:

...

Private Sub...

If isnull(me.txtTexto.value) then

me.chkDatos.value=False

Else

me.chkDatos.value=True

End if

End sub

...

Perdona neckkito pero no acabo de entender estas línea

Suponiendo que el cuadro de texto se llama txtTexto (propiedades -> Pestaña Otras -> Nombre).

Te inportaria hacer una aclaración. Gracias

Todos los controles tienen un nombre, y para hacer referencia a ese control a través de VBA necesitas saber el nombre.

Para saber qué nombre tiene ese control tienes que sacar sus propiedades e irte a la pestaña Otras, a la propiedad Nombre. El valor que ahí te aparece es el nombre al que referirse en el código. O bien puedes coger el nombre que ahí te aparece o bien puedes cambiárselo por otro que te sea más cómodo.

Si el control se basa en un campo de una tabla usualmente nombre de campo y nombre de control coinciden.

Eso lo entiendo.

He puesto lo siguiente

Private Sub NotaTexto_AfterUpdate()
If IsNull(Me.NotaTexto.Value) Then
Me.NotaSiNo.Value = False
Else
Me.NotaSiNo.Value = True
End If
End Sub

pero no funciona si no hay nada escrito en el cuadro de texto y hago una anotación funciona

pero lo borro y sigue marcando la casilla como si hubiera una anotación

El evento es "Después de actualizar". Eso significa que si borras pero no sales de la casilla el código aún no se ejecuta. Para que se ejecute tienes que salir del control.

Si quieres probar el código en el evento "Al perder el enfoque"... pero también el código actuará cuando salgas del control.

Te lo agradezco

Funciona perfectamente como me as dicho le e puesto otras instrucciones y no se porque

no va.

Private Sub NotaTexto_LostFocus()
If IsNull(Me.NotaTexto.Value) Then
Me.NotaSiNo.Value = False
Etiqueta86.BackColor = 65280 'verde
Me.Etiqueta86.Caption = "CON NOTA"
Else
Me.NotaSiNo.Value = True
Etiqueta86.BackColor = 255 'rojo
Me.Etiqueta86.Caption = "SIN NOTA"
End If
End Sub

si no te importa puedes darle una mirada haber que tal.

Gracias por tu paciencia soy un novato.

Gracias.

Los colores no se suelen manejar como lo estás haciendo (la propiedad caption sí que está bien). Te recomiendo este otro sistema:

Para conseguir un color verde escribe

me.Etiqueta86.BackColor = vbGreen 'verde

y para la roja

me.Etiqueta86.BackColor = vbRed 'rojo

Por otra parte, la propiedad por defecto para las etiquetas para el estilo del fondo es "transparente". Con este estilo aplicado no se reflejan los cambios de color. Si quieres que te aparezcan coloreadas tienes que establecer esa propiedad en "Normal" (propiedades de la etiqueta -> Formato -> Estilo de fondo).

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas