powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Задать свойство макросом
17 сообщений из 17, страница 1 из 1
Задать свойство макросом
    #39354913
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите, ну уже кажется все варианты перепробовал, ничего не получилось.
Имеется форма с полями А,В,С и полем "Поле1". Все поля по-умолчанию видны. Нужно чтобы если Поле1 пустое, то поля АВС не видны, иначе - видны. Сделал макрос вида:

Если [Поле1] Is Null,
то Задать свойство
"Поля А,В,С" видно = False, иначе "Поля А,В,С" видно = True (есснно, для каждого поля отдельная строка "задать свойство")

Ставил макрос как для Поля1, так и для самой формы на события: после обновления, внесены изменения, изменение, даже на перемещение указателя - не срабатывает. Что не так? На ВБА не умею.
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354914
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
P.S. Значение "Поля1" изменяется по нажатию кнопки на диалоговом окне, потом форма обновляется.
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354917
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысёк, лови работающий примёр.
Если надо, что бы и при открытии формы проверялось условие заполнения Поле1 (а не только после обновления этого поля), то пропиши проверку (которая стоит в событии "после обновления" Поле1 ) в событие формы "Открытие".
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354918
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tarasios, Спасибо за пример. Но написал по присланному примеру процедуру на событие "после обновления". К сожалению, ничего не изменилось.
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354919
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысёк,
не понял:
"событие "после обновления"" - событие чего, какого объекта ? Поля, формы? Событие "после обновления" для Поле1 уже заполнено, а что и где вы указали - пока загадка.
И не путаете ли вы понятия "пустое" поле и "нуль в поле"? Пример, который я выслал - полностью рабочий, заточен как раз таки под "пустое" значение - как вы и просили.
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354920
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ща попробую обновление дописать, тк при нажатии F5 все норм
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354921
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tarasios, событие для поля1.
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354922
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысёк, так событие "после обновления" в Поле1 уже настроено. Ставите любую цифру-букву в этом поле, жмёте Ентер - вуаля, поля АВС видны. Удаляете всё из поля1 - ничего не видно. И то, что вы нажимаете F5 - это всего лишь обновление формы, оно прописано в событии как me.refresh
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354923
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tarasios, если для Поля1 на событие "после обновления" стоит ваш пример, то поля становятся виды после нажатия F5.
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354924
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В моей форме я имею ввиду
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354925
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tarasios, простите, я вру. Если этот пример стоит для события после обновления, то ничего не меняется. А если его установить для события формы "текущая запись", то все хорошо после нажатия F5.
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354926
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысёк,
не знаю, я вашу форму не видел, как она настроена - не знаю. И чтой то меня терзают предчувствия - что настроена весьма хаотично и наугад ;) Если есть желание - скиньте образец, гляну, что не так. Только в формате Access 2003 или 2007.
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354927
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысёк,
Боюсь, что вы наугад перебираете события формы и полей.
Давайте заново. У вас есть поле - допустим, Поле1. Фактически, у него бывают два состояния заполненности (если исходить из вашего техзадания): пустое и непустое (про вариант с нулём я упоминал, раз ничего не ответили - полагаю, вы в курсе). В зависимости от его заполненности видны или не видны поля А, В, С.
Теперь главное. Проверка состояния заполненности Поля1 нужная не постоянно (хотя можно и такое организовать), а после какого то события. Например - при открытии формы, или при заполнении/удаления Поле1. Ну или при изменении состояния какого то другого объекта в форме. Но вы этого не указывали, потому гадать не буду.
Что именно и как хотите получить?
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354928
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну а если надо и при самом открытии "сразу" проверить заполненность поля Поле1 и отработать видимость А, В, С, то в событии самой формы "Открытие" копируете тот же самый код, который записан в событии "После обновления" для Поле1:

If IsNull(Me.Поле1) Then
A.Visible = False
B.Visible = False
C.Visible = False
Me.Refresh
Else
A.Visible = True
B.Visible = True
C.Visible = True
End If

Как бы и всё.
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354929
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tarasios, на форме, где есть Поле1 есть кнопка. При ее нажатии вылазит диалоговое окошко, и при нажатии "ОК" на диаголовом окошке значение Поля1 становится не пустым, а диалоговое окошко закрывается.

В макрос для кнопки диалогового окошка в конце я добавил "обновление", после чего ваш пример стал работать так как я хочу, установленный для события "текущая запись" формы с Полем1. Вроде пока понятно, щас еще проверю.
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354931
Лысёк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tarasios, ну вроде всё. Я вам очень благодарен за помощь. Спасибо.
...
Рейтинг: 0 / 0
Задать свойство макросом
    #39354932
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лысёк, ну, про кнопку с диалогом вы не говорили. Понятное дело, что тогда ситуация немного по другому выглядит.
после отработки диалога, происходит заполнение "Поле1", далее форма обновляется, и вот только тогда запускается код проверки.
И да, уходите с использования непосредственно макросов: это такие костыли, что первое время кажутся очень удобными, а потом катастрофически мешают, добавляя излишнюю громоздкость конструкций.
Например, попробуйте прямо на свою кнопку навесить пример проверочного кода, не суйте его в макрос.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Задать свойство макросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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