Закройте панель навигации доступа, даже если нет результатов поиска - PullRequest
0 голосов
/ 11 марта 2019

При запуске нашего vba-access-application (которое выполняется надстройкой VBE, которая запускает VBA-функцию) мы закрывали панель навигации с помощью этого кода:

DoCmd.SelectObject acMacro, "Autoexec", True
DoCmd.RunCommand acCmdWindowHide

Поскольку я начал использовать встроенную панель поиска / фильтра внутри панели навигации, этот код больше не работал, когда макрос «Autoexec» не отображается.Поэтому я изменил его на:

DoCmd.NavigateTo "acNavigationCategoryObjectType"
DoCmd.RunCommand acCmdWindowHide

Кажется, это работает нормально, пока остаются какие-либо результаты поиска.Когда я пишу «ничего с таким именем» в строке поиска (= фильтр), панель навигации не закрывается.

Кто-нибудь знает способ закрыть панель навигации, даже если не отображается результат поиска

Ответы [ 2 ]

1 голос
/ 11 марта 2019
DoCmd.NavigateTo "acNavigationCategoryModifiedDate"
DoCmd.NavigateTo "acNavigationCategoryObjectType"
DoCmd.RunCommand acCmdWindowHide

Чтобы команда DoCmd.RunCommand acCmdWindowHide успешно закрыла панель навигации, панель навигации должна иметь фокус. Но чтобы окно доступа имело фокус, элемент управления в пределах окна должен иметь фокус. Оказывается, команда NavigateTo никогда не поместит фокус в текстовое поле поиска, поэтому, если результаты поиска пустые и нечего выбирать, то фокус не изменится на панель навигации (даже хотя технически выбранная группа панели навигации могла быть обновлена.)

Если вы поиграете с панелью навигации достаточно долго, вы обнаружите, что результаты поиска навигации и текстовое поле сбрасываются при переключении между категориями навигации самого высокого уровня. Отсюда мой предложенный код ... он меняется между двумя категориями навигации, так что результаты поиска очищаются во время этого действия, так что окно навигации в конечном итоге получает фокус, когда один из его перечисленных объектов наконец получает фокус.

(Действительно, использование команды NavigateTo в этом случае - просто глупый трюк, чтобы сосредоточиться на панели навигации. Это просто еще один явный недостаток интерфейса доступа, заключающийся в том, что нет прямых команд / объектов для управления панелью навигации .)

0 голосов
/ 14 марта 2019

Я предлагаю вам не писать никакого кода, а просто использовать встроенные параметры доступа для предотвращения (скрытия) панели навигации.

Так что работайте, тогда вы нажимаете клавишу Shift во время запуска.(обход ключа Shift).

Танец разработки клавиши Shift:

Вы обнаружите, что вы можете запускать + разрабатывать много кода и работать с формами / отчетами без необходимости выхода.Тем не менее, вы по-прежнему сделали обход запуска ключа переключения.Причина, конечно, в том, что при запуске ваш код вполне может скрыть ленту.(Или запустить кастомную).То же самое касается формы запуска - она ​​может запускать кучу кода, запрашивать вход в систему, проверять ссылки на таблицы.

А потом есть настройки запуска, которые у вас есть.Скорее всего, у вас есть стартовая форма (вы не хотите, чтобы она работала).Скорее всего, вы отключили навигационную панель дисплея, но вам это нужно во время разработки.А что, если у вас есть заказная лента?(Опять настройка в инструменты-> параметры).И используйте специальные клавиши - снова выключен для пользователей, но ТРЕБУЕТСЯ для разработчиков.

И затем есть макрос автоключей.Это используется для повторного назначения клавиши F1 (справка - либо отключить, либо запустить собственную настраиваемую справку - скажем, файл PDF или слово).

И любое повторное назначение, такое как, например, f12, для всплытия некоторой пользовательскойокно поиска и т. д.

Итак, все эти пользовательские настройки будут довольно БОЛЬШИМИ.Многие будут из инструментов-> параметры (основная форма, лента и т. Д.).И некоторые будут из вашего кода.

Вы ДЕЙСТВИТЕЛЬНО (но ДЕЙСТВИТЕЛЬНО) не можете закодировать все эти настройки, а некоторые все равно требуют перезапуска.В типичном приложении действительно будет много настроек, которые будут изменены для ваших пользователей по сравнению с вами как разработчиком.

При запуске вы, таким образом, удерживаете клавишу Shift.Это не только предотвратит запуск вашего кода запуска, но также и ваши настройки запуска - даже такие вещи, как панель навигации, и особенно область инструментов -> настройки (клавиша Shift игнорирует большинство этих настроек).

Итакв течение дня разработки, я буду танцевать всю эту смену весь день.Тем не менее, есть два трюка и сочетания клавиш, которые вы можете использовать здесь, чтобы свести к минимуму этот выход + повторно войти вниз до скучного рева.Один замечательный тик - всегда размещать компактную кнопку восстановления на QAT.Таким образом, кнопка QAT теперь ОДНАМ щелчком мыши и всегда доступна для вас.Так что, если я работаю с формой в режиме конструктора, часто бывает достаточно перехода в режим просмотра, но в тех случаях, когда мне нужен полный выход + перезапуск для тестирования?Я даже не сохраняю форму, я просто делаю быстрый простой щелчок по кнопке QAT compact + repair.Один клик!(Возможно, придется ответить «да», чтобы сохранить).На этом этапе приложение будет перезапущено без необходимости выхода.И вы не удерживаете клавишу Shift - поэтому все ваши настройки запуска запускаются.Теперь вы переключились в режим пользовательского тестирования, и для этого потребовался всего ОДИН щелчок мыши.

Это позволяет легко переключаться из режима разработчика в режим «пользовательского тестирования» и всего одним щелчком мыши.Таким образом, теперь вы можете запускать ваше приложение так, как оно будет выглядеть для конечного пользователя.

Чтобы вернуться в режим разработчика, просто одним щелчком мыши нажмите кнопку C + R.(И вы УДЕРЖИВАЕТЕ клавишу SHIFT).Это вернет вас обратно в режим разработчика (ваша панель навигации, ваши функциональные клавиши, все и все эти настройки запуска теперь игнорируются - вы можете свободно разрабатывать без всех этих хлопот и проблем на своем пути).Полностью открытое использование Access, как будто никаких настроек вообще не было.

И, как уже отмечалось, вы получаете c + r для загрузки, и вам все равно нужно + делать это несколько раз в течение дня в любом случае.И, как уже отмечалось, для большого количества изменений вам не нужно делать этот переворот и вы можете оставаться в режиме разработчика.Конечно, в некоторых случаях йоВаш «пользовательский режим» ДЕЙСТВИТЕЛЬНО заблокирует доступ, и поэтому вам придется выйти (вы потеряете трюк QAT).Таким образом, вы часто можете переходить от разработчика к пользователю, но не обратно.Опять же, вам не нужно все время запускать + тестировать все в пользовательском режиме, но часто некоторые глобальные переменные, запуск, пароли вызывают эту проблему для вас.

Итак, в этом случае?

Я использую быстрый щелчок alt-f4 для выхода из приложения.На этом этапе файл accDB ДОЛЖЕН быть выделен в проводнике Windows.Итак, теперь просто быстрое нажатие клавиши ввода, чтобы перезапустить accDB.А если вам нужен «режим пользователя», просто не удерживайте клавишу Shift.Проведите некоторое тестирование, теперь alt-f4, а затем просто быстро нажмите клавишу ввода (мы возвращаемся к исследованию файла Windows, и этот файл accDB выделен).Тем не менее, на этот раз вы будете удерживать клавишу Shift, и теперь вы вернетесь в режим разработчика.И часто я буду вызывать мой код запуска перед тестированием.

Ctrl-g (переход к окну отладки), введите MyStartup

(MyStartup считается вашей первой подпрограммой запуска, которая выполняет все эти настройки, а затем запускает основную форму - поэтому вв некоторых приложениях я не использую встроенную настройку формы запуска, но использую макрос autoexec для вызова моей основной процедуры запуска (MyStartup)

Так что во многих случаях мне не нужновыйдите из Access, чтобы перейти в тестовый режим.

И, конечно, некоторые отчеты и формы можно использовать, просматривать, разрабатывать без необходимости полного запуска приложения со всеми этими «пользовательскими» кодами запуска.

Таким образом, некоторый отчет может работать, но с другой стороны может потребоваться, чтобы для его работы была открыта какая-то форма (или может потребоваться настройка всей системы и названия компании + задайте в своем коде запуска).насколько сильно вам нужно выходить по сравнению с тем, чтобы иметь возможность выполнять «некоторую» разработку, здесь часто будет различаться.

Поэтому я скажу, что часто мне приходится выходить + перезагружать приложение (alt-f4нажмите клавишу ввода).Таким образом, для выхода и повторной загрузки Access достаточно только 2 ключевых комбо.

В конце дня, если вы не можете использовать это предложение быстрого доступа к QAT, вы выйдете из + re-Входите много раз в день.Как уже было отмечено, для большого количества форм и т. Д. Вы можете переключаться между режимом просмотра и дизайна.(Но вы, конечно, запускаете доступ без всего того, что запускает дерьмовую штуку, которая мешает вам работать разработчиком.)

Простой вопрос в конце дня, тогда настройки будут БОЛЬШЕ БОЛЬШЕпросто навигационная панель (или ее отсутствие), которая может испортить ваш процесс разработки.Таким образом, вышеприведенный танец клавиш Shift и предложение QAT ТАКЖЕ решает все ДРУГИЕ многие настройки и делает это без необходимости писать одну строку кода для решения этой проблемы.

Конечно, когда все работает, а затем вы скомпилируете приложение в accDE.А затем примените к нему обходной код клавиши Shift, чтобы заблокировать приложение еще дальше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...