powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не работает Enable если есть условное форматирование
17 сообщений из 17, страница 1 из 1
Не работает Enable если есть условное форматирование
    #39906885
OkeTurel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Столкнулась с такой проблемой.
Есть одиночная форма. В ней одно из полей (поле со списком) должно быть недоступно при определенных условиях. Это я делаю кодом
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Public Sub controls_enabled()
    If Me.document_category_id.Value = 45 Then
        Me.schedule_id.Enabled = True
    Else
        Me.schedule_id.Enabled = False
    End If
End Sub



Потом я вешаю это на события формы Load, Current и дополнительно на событие AfterUpdate для контрола document_category_id:

Код: vbnet
1.
2.
3.
4.
5.
Private Sub Form_Load()
    Call controls_enabled
    Me.OrderBy = "Lookup_document1__id.document, date_start"
    Me.OrderByOn = True
End Sub



Код: vbnet
1.
2.
3.
Private Sub Form_Current()
    Call controls_enabled
End Sub



Код: vbnet
1.
2.
3.
Private Sub document_category_id_AfterUpdate()
    Call controls_enabled
End Sub



Но этот контрол имеет условное форматирование: если [date_finish]<Date(), то отмечает серым.

Так вот - когда работает условное форматирование, то enabled не работает, дает доступ в поле, хотя не должен.

Есть какое-то объяснение этому странному явлению и как его преодолеть?
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39906892
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, есть такая неприятная особенность. Не могу найти объяснения, зачем это сделали.
Используйте возможность enable-disable непосредственно в условии условного форматирования
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39906897
OkeTurel
Но этот контрол имеет условное форматирование: если [date_finish]<Date(), то отмечает серым.
"то отмечает серым" - это вы управляете действием "Включить"? Это то же, что Enabled, но выполняется параллельно и имеет приоритет.
Здесь аж просится добавить в условное форматирование вашу проверку Me![document_category_id] на =45 (или <>45) для действия "Включить".
Тогда и огород с Sub controls_enabled() не понадобится.
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39907084
OkeTurel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые друзья, а где мне искать действие "Включить" в условном форматировании? У меня Акс 2003. Я там не нашла.
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39907086
OkeTurel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, это такая кнопка, где написано "Разрешенный"?
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39907098
OkeTurel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не нашла, в общем.
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39907102
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OkeTurel
У меня Акс 2003.

Это с 2007
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39907106
OkeTurel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, понятно.
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39907130
OkeTurel
А, понятно.
Что вам понятно? Мне негде посмотреть, как называется элемент в А2003, но он там точно есть. Самый правый из всех действий (шрифт, заливка).
"[date_finish]<Date(), то отмечает серым" - это что, цвет фона?
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39907136
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShin
OkeTurel
У меня Акс 2003.

Это с 2007

И в 2000-м есть.

OkeTurel,
Всплывает подсказка "Разрешенный".
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39907346
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OkeTurel
...Не нашла, в общем...

В 2000-м, визуально это выглядит так.
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39907738
OkeTurel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, простите, перед праздниками туплю больше обычного. Да, нашла эту кнопку.
автор"[date_finish]<Date(), то отмечает серым" - это что, цвет фона? Да, цвет фона. В принципе можно было и VBA обойтись, то есть туда вставить эту проверку тоже.

Спасибо всем! :)
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39908302
OkeTurel
автор"[date_finish]<Date(), то отмечает серым" - это что, цвет фона?
Да, цвет фона. В принципе можно было и VBA обойтись, то есть туда вставить эту проверку тоже. Вот типичный пример выбора оптимального решения.
Управление блокировкой в модуле формы, это у вас отдельная процедура и ее вызов из трех событий. В многопользовательской среде не учитывается изменение текущей записи извне. Если бы форма была ленточная/табличная, вид поля менялся бы во всех видимых записях.
А при условном форматировании этих проблем нет, к тому же [date_finish]<Date() вполне может быть вторым правилом для поля. И ни строчки кода в модуле.
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39912050
OkeTurel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Я сделала в условном форматировании, а из кода убрала.
Жаль, что условного форматирования нет для элемента управления "Кнопка". А то у меня в форме 2 кнопки, которые должны быть недоступны в зависимости от некоторых условий, чтобы пользователь, которым являюсь я, не нажимал что попало. Видимо, в случае с кнопками нет иного варианта, кроме как код с Enable.
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39912113
OkeTurel
Жаль, что условного форматирования нет для элемента управления "Кнопка". А то у меня в форме 2 кнопки, которые должны быть недоступны в зависимости от некоторых условий, чтобы пользователь не нажимал что попало. Видимо, в случае с кнопками нет иного варианта, кроме как код с Enable.
В случае с кнопками я бы вообще не заморачивался. При обработке клика можно выполнить проверку "некоторых условий" и сообщить юзеру, что он погорячился.
А вот то что его нет у флажков и переключателей, действительно жаль. Управление доступностью через УФ было бы полезным.
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39912126
OkeTurel
Жаль, что условного форматирования нет для элемента управления "Кнопка".
Если сильно хочется, то можно смоделировать аналог кнопки из элемента "Надпись". Создаете приподнятую ндпись (св-во "Оформление"), на событии "Кнопка вниз" делаете ее утопленной (SpecialEffect = 2) , на событии "Кнопка вверх" опять приподнятой (SpecialEffect = 1). Само действие можно выполнять на одном из этих србытий или на "Нажатие кнопки". В таком варианте у вас все возможности условного форматирования.
...
Рейтинг: 0 / 0
Не работает Enable если есть условное форматирование
    #39912309
Кривцов Анатолий
Если сильно хочется, то можно смоделировать аналог кнопки из элемента "Надпись".
Каюсь. Погорячился. У элемента "Надпись" нет условного форматирования. Можно то же сделать с элементом "поле" (св-во "Блокировка"=Да), но там при получении фокуса подсвечивается название.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не работает Enable если есть условное форматирование
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]