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.
Разумеется, горячую клавишу можно задать любую другую.