Умовне форматування MS Access не працює


1

Умовне форматування в MS Access не працює для певних полів моєї форми. Я шукав відповіді, спробував відповіді, які знайшов, і все ще застряг.

У мене форма з приблизно 30 елементами керування - деякі комбіновані поля та деякі текстові поля (із зазначенням дат). Я застосував умовне форматування елементів керування, щоб, коли значення було відредаговане, воно відображалося як жирне, курсивне та з жовтим фоном. Для більшості елементів керування це працює за бажанням. Для невеликої кількості, яка, здається, не має нічого спільного, це не працює.

Можлива підказка така: формула умови така:

controlName.value <> controlName.oldvalue

Для елементів управління, де працює умовне форматування, формула відображається в діалоговому вікні умовного форматування точно так, як вище. Для елементів управління, де це не працює, діалогове вікно умовного форматування переводить формулу на:

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

Я спробував створити нові елементи керування, використовуючи ім'я керування за замовчуванням (думаю, що щось може бути пошкоджено з оригіналом), але це не вирішує проблему. Я бачу таку саму поведінку.

Я спробував імпортувати всі мої об’єкти в нову базу даних (думаю, що може бути щось зіпсовано з базою даних). Ніякої радості.

Я також запустив налагоджувач свого коду і ущільнив і відремонтував базу даних. Без змін.

Одним із полів, де умовне форматування не працює, є текстове поле, яке відображає поле дати. Решта - комбобокси. У мене є інші поля дат у текстовій скриньці та комбінації полів у тій самій формі, які добре працюють.

Це файл .accdb MS Access 2010 .a з пов'язаними таблицями до сервера MS SQL 2016. Джерелом записів для форми є пов'язана таблиця, яка є поданням SQL Server. Зв'язана таблиця має індекс первинного ключа.

Я не знаю, що більше можу вам сказати. Хтось бачив цю проблему?


Чи всі ці елементи управління пов'язані? (Вони повинні мати обов'язкове старе значення) Чи є підформи? (Підформи потребуватимуть різного синтаксису)
HackSlash

Так, ці елементи керування пов'язані між собою. Ці елементи управління розташовані на головній формі (а не підформі).
CanuckBuck

Відповіді:


1

Після подальшого експерименту я виявив відповідь.

Моя формула правила не враховувала умову, коли старе значення значення керування може бути NULL. Коли я змінив формулу на;

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

формула працює за бажанням.

Я не можу підтвердити це, оскільки не знаю способу перевірити відповідь формули, оскільки вона використовується в діалоговому вікні умовного форматування, але я підозрюю, що результат формули оцінюється на нуль, коли oldvalue є нульовим.

PS Я не розумію, чому діалогове вікно умовного форматування ставить квадратні дужки навколо одних тверджень, а не інших, але, як виявляється, це, мабуть, не є фактором.


Найкращі заплутані, оскільки вони можуть означати різні речі в різному контексті. Зазвичай позначає посилання на таблицю \ поле. Там, де для керування не потрібні дужки.
HackSlash

Якщо на це запитання дано відповідь, позначте цю відповідь зеленою галочкою, щоб це питання було закрито. Ви отримуєте бали, і люди перестануть намагатися вам допомогти.
HackSlash

Дякуємо за відгук. Так, моє первісне питання вирішено. Я спробував позначити це як закрите, але воно говорить, що я не можу прийняти власну відповідь ще протягом 20 годин.
CanuckBuck
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.