Access - Formato condicional a distintos formularios

 
Vista:

Formato condicional a distintos formularios

Publicado por sergi (7 intervenciones) el 30/07/2008 11:14:34
Hola, les cuento,

tengo un formulario A puesto dentro de otro formulario B; bien, dentro de el formulario interno A hay unos campos que deben aparecer en rojo según la información de uno de los campos del formulario B (una fecha FECHA. Y si la fecha es anterior a hoy el campo de A aparece en rojo)

Bien, defino el formato condicional en el campo del formulario interno A de la siguiente forma, con la expresión

[B]![FECHA]<=Ahora()

de modo qeu si la expresión se cumple el campo de A se pinte de rojo.

Y me responde el access con el siguiente aviso una vez he definido el formato condicional:

El objeto no contiene el objeto de automatización 'B'

Me pueden echar un cable??

Muchas gracias
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:Formato condicional a distintos formularios

Publicado por Enrique (1299 intervenciones) el 30/07/2008 18:05:46
Hola Sergi:
Me parece que el Formato Condicional solo se puede aplicar sobre el propio Campo en función de valores de otros campos, pero no al contrario como tu quieres hacer. En tu caso, podrías hacerlo con un par de Eventos en el Formulario B (el principal):

ACTUANDO SOBRE EL CONTROL SUBFORMULARIO QUE CONTIENE EL FORMULARIO A, SI ESTE CONTROL SE LLAMA "Secundario0"
Private Sub Form_Load()
If Me.Fecha <= Now() Then
Me.Secundario0.Form.Campo1.ForeColor = 255 ' Rojo
Else
Me.Secundario0.Form.Campo1.ForeColor = 0 ' Negro
End If
End Sub

ACTUANDO DIRECTAMENTE SOBRE EL FORMULARIO A
Private Sub Form_Load()
If Me.Fecha <= Now() Then
Form_A.Campo1.ForeColor = 255 ' Rojo
Else
Form_A.Campo1.ForeColor = 0 ' Negro
End If
End Sub

Private Sub Fecha_AfterUpdate()
Form_Load
End Sub

Campo1 en este ejemplo sería el Campo de A y usa SOLO uno de los dos Eventos "Form_Load" según el caso.

Saludos
Enrique
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:Formato condicional a distintos formularios

Publicado por Sergi (7 intervenciones) el 30/07/2008 21:03:41
Muchas gracias Enrique, veré lo que puedo hacer.

Quizá me expliqué mal, pero según leo en tu respuesta, lo que hago yo no es al revés...
Lo que intento es que el registro sobre el que aplico el formato condicional cambie de color según el valor de otro campo; lo que pasa es que este otro campo está en el formulario superior.

Gracias de nuevo por tu respuesto y por tu ayuda
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:Formato condicional a distintos formularios

Publicado por Enrique (1299 intervenciones) el 30/07/2008 22:17:06
Sergi: Ahora que me he fijado mejor en tu mensaje, tienes razón, no lo estabas haciendo al contrario, pero la expresión que pones no es correcta. Inténtalo de esta forma:

En el Formulario A:
Formato Predeterminado: Color del Texto Negro

Condición 1
La expresión es: Forms!B!Fecha<=Ahora()
Color del Texto: Rojo

Condición 2
La expresión es: Forms!B!Fecha>Ahora()
Color del Texto: Negro

Pero como las condiciones son "La expresion es" (no vale ninguna de las otras dos), aunque cambies la fecha en el Form Principal a una que cumpla la condición de poner el texto en Rojo, no lo actualizará en el acto, solo lo pondrá de un color u otro al abrir el Formulario o si lo cierras y lo vuelves a abrir con esa nueva fecha.

La solución a este problema, el siguiente Evento en el Formulario A:
Private Sub Form_Timer()
Me.Requery
TimerInterval = 0
End Sub

Y este otro en el Formulario B:
Private Sub Fecha_AfterUpdate()
Form_A.TimerInterval = 1000
End Sub

Aunque sigo pensando que la mejor solución, salvo que a alguien se le ocurra otra cosa, es la que te dije antes.

Saludos
Enrique
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:Formato condicional a distintos formularios

Publicado por sergi (7 intervenciones) el 31/07/2008 10:57:01
Muchas gracias de nuevo Enrique, luego voy a probar tal y como me comentas y ya te diré el qué
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:Formato condicional a distintos formularios

Publicado por Victoria (1530 intervenciones) el 31/07/2008 11:35:51
Hola:
Lo último que te dice Enrique es perfecto, sin embargo te doy otro evento para situarlo, en vez de poner el Timer

Ponlo en el evento Al activar el registro del form principal (en el caso de que tengas movimiento por sucesivos registros) o en el evento Después de actualizar del campo fecha del form principal (en el caso de que añadas registros)

Un saludo
Victoria
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:Formato condicional a distintos formularios

Publicado por sergi (7 intervenciones) el 31/07/2008 15:49:39
Muchas gracias a los dos, ahora ya he solucionado este factor!!!

Lo que me sucede ahora es que tengo conflicto de condiciones en el formato condicional.

Supongamos que
La expresión es A & B
Hay dos registros; los dos cumplen A y solo uno cumple B

Si pongo A solo se comporta bien (los pinta los dos)
Si pongo B solo se comporta bien. (pinta solo el que tiene que pintar)
Si pongo A & B no se comporta bien. (pinta los dos)
Si pongo B & A tampoco. (no pinta ninguno)

Espero no resultar molesto ni pesado, me están siendo de gran ayuda sus comentarios.

Un saludo
Sergi
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:Formato condicional a distintos formularios

Publicado por Enrique (1299 intervenciones) el 31/07/2008 17:30:28
Hola Segi:
El formato condicional de los formularios Access no es uno de mis temas fuertes, no porque sea demasiado complicado sino por sus limitaciones, aunque creo que lo que necesitas hacer, no se puede con este sistema o al menos yo no se hacerlo. De todas formas prueba este ejemplo que puedes descargar en el siguiente enlace web, que como verás no usa el formato condicional pero posiblemente te sirva de orientación.

http://es.geocities.com/ensolva/Descargas/Varios/FormatoCondicional.zip

Un saludo
Enrique
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:Formato condicional a distintos formularios

Publicado por sergi (7 intervenciones) el 01/08/2008 13:13:23
Gracias, enrique,

ahora sí que parece que la cosa va bien encaminada. El ejemplo que me has pasado me ha sido de gran ayuda!!!
Lo que pasa ahora es que a mi no me pinta el texto ni nada, como si no reconociera la instrucción ForeColor ni BackColor. He hecho pruebas y coge el campo que tiene que coger pero el esas instrucciones ya no las hace. Pensé que podría ser porqué era un campo desplegable así que cogí uno que no lo fuera pero se comporta igual.
Pero bueno, eso ya me lo seguiré mirando yo con más calma a ver si consigo sacarlo.

De nuevo muchas gracias a los dos
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:Formato condicional a distintos formularios

Publicado por sergi (7 intervenciones) el 04/08/2008 17:11:36
Ya está todo solucionado, Os escribo como lo hice por si alguien se encuentra con el mismo problema.

En el formulario interior he declarado un método que es el que contempla la condición A & B que es la que quiero que se cumpla para que pinte los campos de los registros del formulario interior en rojo (siendo A un campo del formulario exterior y B uno del interior)
El formato condicional llama a ese método en el formulario interior.

Por otro lado, cuando el campo del formulario exterior se actualiza se hace un requery del formulario interior.

Gracias de nuevo por vuestra paciencia y ayuda.
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