Как скрыть или скрыть элемент управления MS Access ActiveX Web Browser?

У меня есть база данных, в которой пользователи вводят значение в Textbox1 в форме; форма также имеет элемент управления ActiveX Web Browser (acxWebBrowser1), а также еще одно пустое текстовое поле Textbox2 и, наконец, командную кнопку. После того, как пользователь введет текст в Textbox1 и нажмет кнопку команды, код VBA перейдет к определенной веб-странице в acxWebBrowser1, введет значение Textbox1 в форму веб-страницы, а затем получит результат на веб-странице в acxWebBrowser1. Затем результат захватывается кодом VBA и вводится в Textbox2 в форме базы данных.

Что мне нужно сделать, так это скрыть элемент управления ActiveX Web Browser, чтобы (а) не дать пользователю возиться с веб-страницей и (b) предотвратить беспорядок и отвлечение внимания от ActiveX Web Browser, поскольку код VBA делает все необходимые взаимодействия с веб-страницей за кулисами.

Проблема в том, что я не могу заставить acxWebBrowser1 оставаться скрытым за прямоугольным элементом управления в форме, потому что браузер автоматически перемещается в верхнюю часть стека элементов управления. Если я уменьшу размер элемента управления acxWebBrowser1 до очень маленького, веб-страница не будет работать должным образом. Если я сделаю элемент управления веб-браузером невидимым, код не сможет получить необходимые значения. Я не могу использовать подход POST, чтобы избежать использования веб-браузера. (Может быть, я ошибаюсь в том, что не могу использовать POST — может быть, кто-нибудь может указать мне, как это сделать, если это правильный путь.)

Как я могу скрыть или поместить что-то поверх элемента управления веб-браузера?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
423
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Три часа спустя меня осенило, как скрыть веб-браузер ActiveX, но при этом сделать его доступным для кода VBA. Просто: не обновляйте экран при запуске кода для доступа к веб-браузеру ActiveX и используйте свойство .Visible, чтобы «показать» элемент управления браузером, когда VBA должен получить к нему доступ (но он не будет виден пользователю, если экран обновление отключено), а затем скройте элемент управления браузером, когда VBA завершит доступ к нему.

Вот код, который я использовал для этого:

Application.Echo False  'turn off screen updating
Me.acxWebBrowser1.Visible = True  'make web browser control "visible" to VBA code

     {do stuff, like:  process web page}

Me.btnClickMe.SetFocus  'set focus on the button so we can hide the web browser control
Me.acxWebBrowser1.Visible = False  'make web browser invisible so user is not distracted
Application.Echo True  'turn screen updating back on
Me.Refresh  'refresh the screen; this is probably not necessary

Просто будь

  • с абсолютно уверен по снова включить обновление экрана (эхо)

Вы должны отправлять любую обработку ошибок в код, который устанавливает Application.Echo True, иначе вы не сможете ничего увидеть или сделать, если код выйдет из строя после установки для эха значения False.

Другие вопросы по теме