¿Cómo puedo modificar el color de un campo al escribir cierta palabra?

Ya con que nos ofrezcáis vuestro tiempo es de agradecer.
Quiero conseguir que un campo denominado "Vehiculo" por ejemplo, se torne de color rojo intermitente, cuando se escriba en él la palabra "bicicleta".

1 Respuesta

Respuesta
1
Por el titulo creí que me ivas a regañar :)
Bueno el tema el siguiente:
Selecciona el campo en vista diseño.
En FORMATO: FORMATO CONDICIONAL le pones que cuando el "valor del campo" sea "igual a" "bicicleta" pues que ponga el fondo en rojo...
Ha sido sin querer, y releyendo el titulo, lo cierto es que puede dar la impresión que comentas. Al tema, la solución que das ya lo conocía, pero lo que busco es que, además el color rojo aparezca y desaparezca de forma intermitente, por eso el titulo de la pregunta. El objetivo es que ese campo llame la atención lo máximo posible. Creo, que en las propiedades del formulario existe una que se llama "Al cronometro" que pudiera tener alguna relación con mi pregunta, pero no tengo ni idea de como hacerlo, aunque a lo mejor tampoco esta propiedad es la solución. Te advierto, para que no des por hecho de que sé código VB, porque no tengo ni idea, aunque con copiar y pegar alguna vez he hecho funcionar algún que otro botón de comando. Por lo que te pediría que si la solución a mi problema está en usar código Vb, me lo pases completo, si puede ser. Gracias, de nuevo.
Bien, existe esa opción. Te paso el código.
****************************
Option Compare Database
Option Explicit
Public bool As Boolean
Private Sub Form_Load()
Me.TimerInterval = 1000
End Sub
Private Sub Form_Timer()
If bool = True Then
Texto0.BackColor = RGB(255, 255, 255)
bool = False
Else
Texto0.BackColor = RGB(255, 0, 0)
bool = True
End If
End Sub
******************************
Si no lo entiendes o algo avisame.
Me lo temía, estás dando por hecho que sé código Vb, lo siento, pero no es así, con el código que me mandas no sé que hacer, ni donde copiarlo. Bueno me imagino que sería en la ventana de VB de Access, pero ¿en qué evento?, o es en otro sitio. Puedo dar la impresión de saber lo que estoy diciendo al utilizar términos como evento, por ejemplo, pero la explicación es sencilla y es que me gusta tanto esto de aprender a programar que leo todo lo que puedo, pero lo hago mal ya que no llevo un orden, entonces me lio fácilmente, en cuanto entro en profundidades. Por otro lado y volviendo al tema, no veo en el código que me envías que se haga referencia a que suceda lo del color rojo, peo solo cuando en el control esté escrita la palabra "bicileta". Perdona si te hago perder el tiempo en que me expliques cosas, que a lo mejor, son muy básicas, pero estoy realizando una base de datos para unos amigos y me ha surgido el problema que te comento. Y claro, antes muerto que quedar mal, ¿me comprendes verdad?, después de que unos compañeros han confiando en mí, solo por el hecho de que más o menos, me defiendo con la Access. Gracias
****************************
Option Compare Database
Option Explicit
Public bool As Boolean
Private Sub Form_Load()
Me.TimerInterval = 1000
End Sub
Private Sub Form_Timer()
If bool = True Then
Texto0.BackColor = RGB(255, 255, 255)
bool = False
Else
Texto0.BackColor = RGB(255, 0, 0)
bool = True
End If
End Sub
******************************
Bien partamos de esta base.
Vamos a añafir el tema de bicicleta, que pensé que no sabias utilizar el evento alcrono...
El código queda tal cual esta aquí para pegar en la ventana de visualBA eliminando todo lo que tienes en la que te abra (después de dejar en blanco la que tienes) modificando todos los "TEXTO0" por el nombre del cuadro de texto que le tengas tu.
****************************
Option Compare Database
Option Explicit
Public bool As Boolean
'Al cargar te inicia el cronometro con un intervalo de 1sg = 1000 msg
Private Sub Form_Load()
Me.TimerInterval = 1000
End Sub
' al producir un evento crono (cada segundo) nos ejecuta el codigo. Le añado que lo ejecute si el cuadro de texto pone BICICLETA, si no se lo salta.
Private Sub Form_Timer()
if Texto0="BICICLETA" then
If bool = True Then
Texto0.BackColor = RGB(255, 255, 255)
bool = False
Else
Texto0.BackColor = RGB(255, 0, 0)
bool = True
End If
else 'si no es bicicleta, que me coloque el fondo en blanco,
'aqui ya lo que quieras, es solo para que si estubo
'como bicicleta y luego no, que no te quede en rojo.
Texto0.BackColor = RGB(0, 0, 0)
End Sub
******************************
Como resumen, copia todo y pégalo, sustituye donde pone texto0 por el nombre de tu cuadro y prueba, si no te va lo miramos más a fondo.
Un saludo compañero, y ya sabes donde ando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas