Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не работает Enable если есть условное форматирование / 17 сообщений из 17, страница 1 из 1
23.12.2019, 10:35
    #39906885
OkeTurel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает Enable если есть условное форматирование
Здравствуйте.

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

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

Это с 2007

И в 2000-м есть.

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

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

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

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


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