Старый бежевый монитор с формами базы данных и пустым окном, рядом ноутбук с браузером, их соединяет дуга света

Access отключит старый Web Browser Control в мае 2027 года. Как перевести формы на Edge Browser Control

РубрикаСопровождениеУровеньСредний Чтение5 минОпубликовано ТегиAccessVBAWebView2Новости

2 ноября команда Microsoft Access объявила дату отключения старого элемента управления Web Browser Control, который работает на движке Internet Explorer. В Access для Microsoft 365 он перестанет показывать веб-содержимое с версии 2705, ориентировочно 18 мая 2027 года, а в Access LTSC 2024 — 11 мая. Формы, где такой контрол встроен для карт, отчётов или страниц внутреннего портала, после обновления откроются с пустым прямоугольником на его месте.

Главное. Замена — Edge Browser Control на WebView2, он появился в Access для Microsoft 365 в 2023 году. Перевести контрол можно в конструкторе формы через контекстное меню «Преобразовать элемент в» (Change To), но VBA-код, который ходит в страницу через свойство Object и объектную модель MSHTML, придётся переписать на ExecuteJavascript и RetrieveJavascriptValue. На это есть полгода.

Для многих баз это не косметика. Встроенный браузер в форме Access часто служит окном во внутренний веб-сервис: карточку заказа из CRM, карту доставки, дашборд из отчётной системы. Если таких форм десятки, а интеграция держится на разборе HTML через Document.getElementById, переписывание под WebView2 по объёму сопоставимо с переносом этих экранов в браузер целиком. Перед тем как выбирать, стоит прикинуть оба варианта: доработку базы своими силами и заказное веб-приложение у подрядчика, например на yusmpgroup.ru.

Что объявила Microsoft и в какие сроки

Анонс опубликован в блоге Access на Microsoft Tech Community, автор — Кортни Оуэн из команды продукта. Сроки такие:

  • Access для Microsoft 365: версия 2705, целевая дата — 18 мая 2027 года;
  • Access LTSC 2024: 11 мая 2027 года;
  • после отключения: старый контрол не загружает и не показывает веб-страницы.

Microsoft обещает необязательную настройку, которая автоматически заменит старые контролы на Edge Browser Control при открытии базы. По умолчанию она будет выключена, и код, который обращался к старому контролу, всё равно придётся проверить.

Сам Internet Explorer 11 Microsoft отключила 15 июня 2022 года, но движок Trident продолжал жить внутри Office. По данным сообщества AccessForever, о выводе Trident из Access продакт-менеджер Линда Кэннон говорила ещё на немецкой конференции разработчиков Access в октябре 2025 года, и главной причиной назвала активные атаки на этот движок. Обзор недели NoLongerSet от 7 ноября 2026 года тоже вынес май 2027 года в ключевые даты для разработчиков Access.

Каких баз это касается

Под удар попадают формы, где стоит именно старый Web Browser Control. В конструкторе он выглядит почти так же, как новый, поэтому Microsoft советует пройти все формы и подчинённые формы в каждой поддерживаемой базе и составить список вручную.

  • Access для Microsoft 365 и Access 2024 — старый контрол перестанет работать в сроки выше.
  • Access 2019 и более ранние версии — отключение в них не планируется, по оценке AccessForever, но их могут задеть изменения Trident на уровне Windows.
  • Приложения на VB6 и WinForms с ActiveX-контролом WebBrowser из shdocvw.dll этот анонс не затрагивает: он только про Access. Риски у них те же, IE-движок не развивается, и об этом мы писали в материале о сопровождении VB6 в 2026 году.

Перебор форм можно ускорить небольшим макросом. Он открывает каждую форму в режиме конструктора скрыто и выводит имена браузерных контролов по типу объекта.

VBAVBA
Public Sub ListBrowserControls()
    Dim ao As AccessObject, frm As Form, ctl As Control
    For Each ao In CurrentProject.AllForms
        DoCmd.OpenForm ao.Name, acDesign, , , , acHidden
        Set frm = Forms(ao.Name)
        For Each ctl In frm.Controls
            Select Case TypeName(ctl)
                Case "WebBrowserControl"   ' старый, на движке IE
                    Debug.Print "LEGACY", ao.Name, ctl.Name
                Case "EdgeBrowserControl"  ' новый, на WebView2
                    Debug.Print "edge  ", ao.Name, ctl.Name
            End Select
        Next ctl
        DoCmd.Close acForm, ao.Name, acSaveNo
    Next ao
End Sub

Чем Edge Browser Control отличается в коде

Главное отличие — у нового контрола нет доступа к DOM страницы через свойство Object. Вся работа со страницей идёт через JavaScript: ExecuteJavascript выполняет скрипт, RetrieveJavascriptValue возвращает результат выражения. Полный список методов, свойств и событий есть в справке Microsoft Learn по EdgeBrowserControl.

VBAVBA
' Было: старый контрол, разбор страницы через MSHTML
total = Me.WebBrowser0.Object.Document.getElementById("total").innerText

' Стало: Edge Browser Control, то же значение через JavaScript
total = Me.EdgeBrowser0.RetrieveJavascriptValue( _
    "document.getElementById('total').innerText")
Me.EdgeBrowser0.ExecuteJavascript _
    "document.getElementById('filter').value = '2026';"

Что ещё проверить после перевода:

  • Доверенные домены. Новый контрол открывает адреса из списка в свойстве TrustedDomains, остальные — нет.
  • Локальные файлы. Открытие HTML и PDF с диска требует отдельной настройки, а сообщество жалуется на медленную загрузку локальных файлов.
  • Авторизация. Вход через Windows-аутентификацию и защищённые страницы Microsoft просит тестировать отдельно.
  • События. BeforeNavigate, DocumentComplete и NavigateError у нового контрола свои, поэтому обработчики стоит пройти по одному.
  • IE-специфика. Страницы, свёрстанные под режимы совместимости IE, ActiveX и VBScript внутри страницы в WebView2 работать не будут.
Если страница внутри формы ваша, проще всего добавить в неё небольшой JavaScript-интерфейс: функции, которые возвращают нужные значения строкой. Тогда VBA вызывает одну функцию через RetrieveJavascriptValue, а не разбирает разметку, которая сломается при первом редизайне.

Что сделать до мая 2027 года

План на полгода:
  1. Составить список форм со старым контролом во всех базах, включая копии у пользователей.
  2. Сделать резервные копии и перевести контролы через «Преобразовать элемент в» → New browser control.
  3. Переписать код, который обращается к Object и MSHTML, на ExecuteJavascript и RetrieveJavascriptValue.
  4. Заполнить TrustedDomains и проверить вход, локальные файлы и печать.
  5. Включить в тест бета-канал Microsoft 365, чтобы увидеть поведение раньше пользователей.

Если в ходе инвентаризации выяснится, что база держится на встроенных веб-страницах и сторонних ActiveX, стоит посчитать альтернативу. Для учётных систем на Access мы разбирали варианты перехода на ERP, а для интерфейса, который и так уже наполовину живёт в браузере, — перенос десктопного приложения в веб. Макросы Excel и Access, которые тянут данные из веба, иногда проще заменить на Power Query или Office Scripts, об этом — в материале о будущем VBA-макросов.

Вопросы об отключении Web Browser Control в Access

Заменит ли Access старые контролы автоматически?

Microsoft обещает необязательную настройку автоматической замены на Edge Browser Control, но по умолчанию она выключена. Код VBA, который обращался к странице через свойство Object и MSHTML, автозамена не исправит — его нужно переписать на ExecuteJavascript и RetrieveJavascriptValue.

Касается ли это приложений на VB6 и WinForms с контролом WebBrowser?

Нет, анонс касается только Access. Но ActiveX-контрол WebBrowser в VB6 и WinForms работает на том же движке Internet Explorer, который не развивается, поэтому план замены на WebView2 стоит держать и для них.

Читайте также