Cuadro de Texto Calculado

Necesito nuevamente tu ayuda, sabes con tus concejos ya casi acabo con mi proyecto. Tengo un formulario que tiene un cuadro de texto con una fórmula =[PAGO]-[Total depósitosI], como hago para que cuando el resultado de esta fórmula dé negativo el fondo del cuadro de texto cambie de color intermitentemente,, ¿y qué cuando el resultado sea positivo no cambie de color se quede igual?. Gracias por tu ayuda, el campo de texto se llama Texto20

3 Respuestas

Respuesta
1
Yo creo que la forma más sencilla (puedes comprobar que no me mola complicarme demasiado la vida a mi) es utilizar un pequeño timer. No se si access tiene un timer por defecto, pero seguro que puedes insertar uno a través de la opción "Más controles".
En el pones un código parecido a este:
Private Sub Timer1_Timer()
If Texto20.Value<0 Then
If Texto20.BackColor=0 Then
T20.BackColor=1
Else
T20.BackColor=0
End If
Else
Texto20.BackColor=0
End If
End Sub
Te he puesto color 1 y 0, pero pones los colores que quieras
Ya me dirás
Respuesta
1
En Access 97, esto tiene sus limitaciones. Con el evento "Al Cronómetro" (Timer) podemos conseguir un efecto de color intermitente según el valor de un campo de texto. Pero esto sólo funciona en la "Vista Formulario Simple". No funciona con las vistas "Vista Hoja de Datos" y "Vista Formularios Continuos".
Es decir, si tú tienes, por ejemplo, un formulario con un subformulario que muestra los datos en la "Vista Hoja de Datos", no podrás obtener lo que deseas en el subformulario, pero sí en un campo del formulario principal.
Por lo tanto, lo primero que tienes que ver es si el cuadro de texto que contiene la fórmula está en la vista Formulario Simple. Si es así, aquí tienes un código que te puede ser útil.
Private Sub Form_Timer()
If Nz(Me.Campo2) > 0 Then
Me.Campo2.BackColor = 16776960
ElseIf Nz(Me.Campo2) < 0 Then
If Me.Campo2.BackColor = 255 Then
Me.Campo2.BackColor = 16777215
Else
Me.Campo2.BackColor = 255
End If
Else
Me.Campo2.BackColor = 13488858
End If
End Sub
Además tienes que introducir el valor 300 en la propiedad "Intervalo de cronómetro". Esta es una propiedad del formulario que se encuentra en la ficha "Eventos", al final de todo.
Bueno, como te digo, esto sólo te funcionará en la "Vista Formulario Simple". En fin, una de las limitaciones de Access 97. Pero bueno, no hay que pensar en las limitaciones sino en las virtudes. ¿Con qué otro programa de bases de datos podemos conseguir los resultados que obtenemos con Access? ¿Qué otro programa demuestra la solidez de Access? Francamente, yo he probado DBase y Approach, y no le llegan ni a la suela de los zapatos.
Bueno.
Respuesta
1
Prueba con la ayuda que te adjunto de Access XP, contiene un ejemplo para colorear campos.
Propiedad BackColor
Vea también Se aplica a Ejemplo Específicos
La propiedad ColorDelFondo (BackColor) se puede utilizar para especificar el color del interior de un control o una sección. Long de Lectura/Escritura.
Expresión. BackColor
Expresión Requerida. Expresión que devuelve uno de los objetos de la lista Aplicar a.
Valor
La propiedad ColorDelFondo (BackColor) contiene una expresión numérica que corresponde al color que se utiliza para rellenar el interior de un control o sección.
Se puede utilizar el generador de color para establecer esta propiedad haciendo clic en el botón Generar que está a la derecha del cuadro de propiedades en la hoja de propiedades. La utilización del generador de color permite definir colores de fondo personalizados para los controles o secciones.
Esta propiedad también se puede establecer mediante la opción Color de fondo o de relleno de la barra de herramientas Formato (formulario o informe), la hoja de propiedades de un control o de una sección, una macro o Visual Basic.
En Visual Basic, utilice una expresión numérica para establecer esta propiedad. El valor de esta propiedad es del tipo de datos Long.
Se puede establecer el valor predeterminado de esta propiedad utilizando el estilo de control predeterminado de un control o el método DefaultControl en Visual Basic.
En el caso de los objetos Table, esta propiedad se puede establecer mediante la opción Color de fondo o de relleno de la barra de herramientas Formato (hoja de datos) o, en Visual Basic, mediante la propiedad ColorDelFondoDeHojaDeDatos (DatasheetBackColor).
Comentarios
Para utilizar la propiedad ColorDelFondo (BackColor), la propiedad EstiloDelFondo (BackStyle), si está disponible, tiene que estar establecida a Normal.
Ejemplo
El ejemplo siguiente utiliza la función RGB para establecer las propiedades ColorDeLosBordes (BorderColor), ColorDelFondo (BackColor) y ColorDelTexto (ForeColor) dependiendo del valor del cuadro de texto txtPastDue. También se puede utilizar la función QBColor para establecer estas propiedades. Al escribir el código siguiente en el evento Form_Current( ) se establecen las características de la pantalla del control en cuanto el usuario abre un formulario o se mueve a un nuevo registro.
Sub Form_Current()
Dim curAmntDue As Currency, lngBlack As Long
Dim lngRed As Long, lngYellow As Long, lngWhite As Long
If Not IsNull(Me!txtPastDue.Value) Then
curAmntDue = Me!txtPastDue.Value
Else
Exit Sub
End If
lngRed = RGB(255, 0, 0)
lngBlack = RGB(0, 0, 0)
lngYellow = RGB(255, 255, 0)
lngWhite = RGB(255, 255, 255)
If curAmntDue > 100 Then
Me!txtPastDue.BorderColor = lngRed
Me!txtPastDue.ForeColor = lngRed
Me!txtPastDue.BackColor = lngYellow
Else
Me!txtPastDue.BorderColor = lngBlack
Me!txtPastDue.ForeColor = lngBlack
Me!txtPastDue.BackColor = lngWhite
End If
End Sub
Espero haberte ayudado.
Saludos.
Sofocles.
************************
Mensaje Independiente:
Estoy buscando trabajo como freelance, si encuentras algo házmelo saber.
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas