El formato condicional de MS Access no funciona


1

El formato condicional en MS Access no funciona para ciertos campos en mi formulario. Busqué respuestas, probé las respuestas que encontré y todavía estoy atascado.

Tengo un formulario con aproximadamente 30 controles: algunos cuadros combinados y algunos cuadros de texto (que muestran fechas). He aplicado el formato condicional de los controles para que cuando se edite el valor se muestre en negrita, cursiva y con un fondo amarillo. Para la mayoría de los controles, esto funciona según lo deseado. Para unos pocos, que parecen no tener nada en común, no funciona.

Una posible pista es esta: la fórmula de la condición es:

controlName.value <> controlName.oldvalue

Para los controles donde funciona el formato condicional, la fórmula se muestra en el cuadro de diálogo de formato condicional exactamente como se indica arriba. Para los controles donde no funciona, el cuadro de diálogo de formato condicional traduce la fórmula a:

[controlName].[value] <> [controlName].[oldvalue]

He intentado crear nuevos controles, usando el nombre de control predeterminado (pensando que algo puede estar dañado con el original) pero esto no resuelve el problema. Veo el mismo comportamiento.

Intenté importar todos mis objetos a una nueva base de datos (pensando que puede haber algo dañado con la base de datos). Sin alegría.

También ejecuté el depurador en mi código y compacté y reparé la base de datos. Ningún cambio.

Uno de los campos donde el formato condicional no funciona es un cuadro de texto que muestra un campo de fecha. El resto son cuadros combinados. Tengo otros campos de fecha de cuadro de texto y cuadros combinados en el mismo formulario que funcionan bien.

Este es un archivo .accdb de MS Access 2010 con tablas vinculadas a un servidor MS SQL server 2016. El origen de registros para el formulario es una tabla vinculada que es una vista de SQL Server. La tabla vinculada tiene un índice de clave principal.

No sé qué más puedo decirte. ¿Alguien ha visto este problema?


¿Están todos estos controles vinculados? (Deben estar obligados a tener un valor antiguo) ¿Hay alguna subforma? (Los subformularios requerirán una sintaxis diferente)
HackSlash

Sí, estos controles están todos vinculados. Estos controles particulares están en el formulario principal (no en un subformulario).
CanuckBuck

Respuestas:


1

Después de experimentar más, descubrí la respuesta.

Mi fórmula de regla no tenía en cuenta la condición en la que el valor anterior del control podía ser NULL. Cuando cambié la fórmula a;

controlName.value <> nz(controlName.oldvalue,0)

La fórmula funciona como se desea.

No puedo confirmar esto, porque no conozco una forma de probar la respuesta de la fórmula tal como se usa en el diálogo de formato condicional, pero sospecho que el resultado de la fórmula se evalúa como nulo cuando el valor antiguo es nulo.

PD: No entiendo por qué el cuadro de diálogo de formato condicional pone corchetes alrededor de algunas declaraciones y no en otras, pero resulta que esto aparentemente no es un factor.


Los más brack son confusos porque pueden significar cosas diferentes en contextos diferentes. Por lo general, denota una referencia a una tabla \ campo. Donde los controles no necesitan los soportes.
HackSlash

Si se responde esta pregunta, marque esta respuesta con la marca de verificación verde para que este problema esté "cerrado". Obtienes puntos y la gente dejará de intentar ayudarte.
HackSlash

Gracias por responder. Sí, mi pregunta original ha sido resuelta. Traté de marcarlo como cerrado pero dice que no puedo aceptar mi propia respuesta por 20 horas más.
CanuckBuck
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.