Как я могу быстро начать вводить SQL в Microsoft Access? - PullRequest
0 голосов
/ 06 ноября 2018

В Microsoft Access 2016 я бы хотел щелкнуть куда-нибудь и сразу начать вводить SQL нового запроса. Но самый короткий способ начать вводить SQL (который я нашел до сих пор):

  1. Выберите меню Создать > Дизайн запроса .
  2. В Показать таблицу * Окно 1011 *, нажать Закрыть .
  3. Переключиться в представление SQL.
  4. Начните вводить SQL.

Слишком громоздко. Можно ли сократить приведенные выше шаги 1–3 до более короткой процедуры? Я пропустил какую-то команду?

Самое быстрое, что я могу сделать, это поместить команды для шагов 1 и 3 на панель быстрого доступа, а затем я могу, например, сделать Alt + 5 , Esc , Alt + 6 . Но это все еще только выполняет шаги 1–3.

Ответы [ 3 ]

0 голосов
/ 06 ноября 2018

Вариант 1: справиться с этим.

По умолчанию Access не поддерживает ничего быстрее этого.

Вариант 2: создать макрос в базе данных Access для автоматизации задачи и связать его с комбинацией клавиш

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

Вариант 3: купить плагин

Существуют плагины, которые сразу переходят в представление SQL, поддерживают размещение SQL и результатов на одной панели, подсветку синтаксиса и т. Д.

Примером такого плагина является Access SQL editor (я никак не связан)

Вариант 4. Создайте свой собственный.

Создать собственный редактор SQL, который лучше, чем то, что Access предлагает по умолчанию, очень просто, потому что Access по умолчанию предлагает очень мало.

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

0 голосов
/ 06 ноября 2018

Функция ниже создает или изменяет простой запрос местозаполнителя, открывает его в представлении «Дизайн», переключается на представление SQL с выделенным текстом, а затем удаляет текст.

Используйте функцию в качестве действия макроса RunCode и добавьте макрос на панель быстрого доступа. Затем вы можете нажать на этот значок и начать вводить SQL.

Public Function NewQuery()
    Const cstrQueryName As String = "USysQuery0"
    Dim db As DAO.Database
    Dim qdf As DAO.QueryDef
    Dim strSql As String

    strSql = "SELECT Date() AS Today;"

    Set db = CurrentDb
    For Each qdf In db.QueryDefs
        If qdf.Name = cstrQueryName Then
            Exit For
        End If
    Next
    If qdf Is Nothing Then
        Set qdf = db.CreateQueryDef(cstrQueryName)
    End If
    qdf.SQL = strSql
    qdf.Close
    DoCmd.OpenQuery cstrQueryName, acViewDesign
    DoCmd.RunCommand acCmdSQLView
    DoCmd.RunCommand acCmdDelete
End Function
0 голосов
/ 06 ноября 2018

В ожидании лучшего ответа я создал решение AutoHotKey - сочетание клавиш (только для Access) для выполнения описанных выше действий в англоязычной версии Microsoft Access 2016:

SendMode Input                                      ; // Choose mode of sending keystrokes

#IfWinActive, ahk_class OMain ahk_exe MSACCESS.EXE  ; // Only in scope of MS Access app

+^n::                                               ; // Routine for Ctrl+Shift+N starts
    Send !cqd                                       ; // Run "Query Design" menu command
    WinWaitActive,Show Table ahk_class #32770       ; // Wait for "Show Table" window
    Send {Esc}!jqwq{End}{Left}{Space}               ; // Send the rest of the keys
    Return

#IfWinActive                                        ; // end of #IfWinActive section

После нажатия Ctrl + Shift + N и ожидания немного * в окне SQL открывается новое окно запроса, и я могу начать вводить SQL.

*) Иногда MS Access может быть очень медленным при использовании сочетаний клавиш для доступа к ленте и при переключении из представления конструктора запросов в представление SQL.

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