Разработка форм MS Access: скрытие объектов при нажатии кнопки выбора без кодирования для каждого объекта, который необходимо скрыть
Вопрос разработки MS Access:
У меня есть 3 варианта, и мне нужно, чтобы каждый из них был связан с различным набором объектов. Поэтому, если вы выберете опцию 1, набор объектов появится в поле, которое я называю "Параметры отчета". Если я выберу вариант 2, объекты в поле "Параметры отчета" исчезнут и появится новый набор объектов.
Я не хотел писать код для переключения каждого объекта с visible = true на visible = false. Я думал, что это займет слишком много времени, особенно если количество кнопок выбора или связанных с ним объектов возрастет.
Итак, я пробую несколько вещей...
Я попытался поместить все объекты, относящиеся к определенной опции, в подчиненную форму. Следовательно, у меня было бы три подчиненных формы, и они бы сидели в одной и той же позиции в моей основной форме. Когда вы щелкаете опцию, подчиненная форма для этой опции становится видимой, если все остальное скрыто. Но у меня есть фоновое изображение, которое должно быть видно в главной форме, и вы не можете сделать фон подчиненной формы прозрачным.
Я использовал Tab Controls; однако я не хотел использовать вкладки для управления переключением между объектами. Я могу скрыть вкладки, но вы все равно можете переключаться между ними, если щелкнете место, где должна быть вкладка. Это может быть сделано прозрачным, хотя, так что это очень помогает.
Мне нужно что-то среднее между Subform и Tab Control, но я зашел в тупик. У кого-нибудь есть какие-либо другие предложения или рекомендации? Или я застрял кодирование для каждого объекта?
Я опытный разработчик VBA. Мой последний вариант состоял в том, чтобы выполнить запрос к форме, получить все имена объектов и сохранить их в таблице. Поскольку синтаксис имени для каждого объекта связывает его с кнопкой, я всегда могу запустить цикл, который делает все объекты видимыми / невидимыми, если имя объекта соответствует определенной опции... но... я думаю, я пытаюсь найти ярлык. Дайте мне знать, что вы думаете! Благодарю.
1 ответ
Я смог решить мою проблему. Мне просто нужно было подумать... поэтому написание этого вопроса было немного преждевременным. Я напишу, что я сделал в случае, если у кого-то возникнет та же проблема, что и у меня.
Сначала я использовал объект Tab Control, чтобы решить мою проблему. Я сделал элемент управления прозрачным и назвал каждую страницу в соответствии с кнопкой выбора, которую я выбрал.
Затем я сопоставил каждую опцию с кнопкой в коде VBA кнопки. Поэтому, когда кнопка выбрана, она делает несколько вещей.
Во-первых, он делает значение по умолчанию любой другой опции равным false. Я также установил видимость их соответствующих страниц на false.
Во-вторых, я выбираю нужную мне страницу и устанавливаю для true видимость. Я также делаю это своей активной страницей.
И наконец, в качестве меры безопасности, если кнопка опции уже выбрана, и вы выбираете ее снова, установив для этой опции значение true. Это сделано для того, чтобы он не стал ложным. Всегда следует выбирать один вариант.
Надеюсь, что все имеет смысл!