Autohotkey
February 11, 2023

Как создать SQL-запрос в Access

🌰 Создаём новый запрос сразу в режиме SQL с помощью скрипта на AHK

Если Вы решили создать новый запрос в Access, то нажимаете «Создание», «Конструктор запросов», Закрываете окошко с выбором таблиц, и только потом кнопку «SQL». Как можно ускорить этот процесс, чтобы сразу перейти к вводу SQL-кода? Нам поможет следующий скрипт на AutoHotKey, основанный на макросе со StackOverflow:

#Requires AutoHotkey v2+
#HotIf WinActive("ahk_class OMain") ; Когда активно окно Access
^sc31:: AccessNewQuery() ; Новый SQL-запрос по ctrl+N	

AccessNewQuery(*) {
    QUERY_NAME := "NewQuery" ; имя нового запроса
    try {
        app := ComObjActive("Access.Application") ; берём access...
    } Catch {
        Tooltip('AccessNewQuery FAIL: ComObjActive("Access.Application")')
        SetTimer(()=>Tooltip(), 1000)
        Return
    }
    db := app.CurrentDb
    qdf := ""
    found := false 
    For qdf In db.QueryDefs { ; Переберём запросы, может, уже есть с таким именем
        If (qdf.Name = QUERY_NAME) {
            found := true
            Break
        }
    }
    If !found {
        ; Создаём новый запрос
        qdf := db.CreateQueryDef(QUERY_NAME)
        qdf.SQL := "SELECT Date() AS Today;" ; Текст запроса — на Ваш вкус 
        qdf.Close()
    }
    app.DoCmd.OpenQuery QUERY_NAME, 1 ; 1 = открыть запрос на редактирование
    app.DoCmd.RunCommand 184 ; 184 = acCmdSQLView (переключить на SQL-режим)
    app := ""
}
Скачать готовый скрипт

Сканкод sc31 соответствует клавише N и теперь при нажатии на Ctrl+N будет открываться редактор запросов с текстом SELECT Date() AS Today.
Разумеется, горячую клавишу можно задать любую другую.