我试图弄清楚是否/如何通过宏或VBA代码在设计视图中生成新的查询窗口。
具体来说,我想在SQL View中打开一个新的空白查询,以便我可以快速测试SQL代码。这对我来说很常见。
我通常通过功能区手动创建一个新查询:创建选项卡> “查询设计”按钮>关闭(显示表格窗口)按钮> SQL View按钮。这会生成一个名为Query1(或Query2等)的新窗口。
我想将所有这些多次点击压缩到快速访问工具栏上的键盘快捷键或单个宏按钮。请注意,我使用的是Access 2010。
可能的吗
答案 0 :(得分:4)
将其添加到模块:
Function NewQueryInSqlView()
' Send the ESC key, without waiting for processing,
' to cancel the select table dialog that occurs when designing new query
SendKeys "{ESC}", False
DoCmd.RunCommand acCmdNewObjectDesignQuery ' create new query
DoCmd.RunCommand acCmdSQLView ' switch to SQL view
End Function
要通过键盘快捷键执行代码,请创建一个新宏,并确保"宏名称"列是可见的。 将以下行添加到宏,并在指定的列中包含以下值:
Macro Name: +{F3}
Action: RunCode
with Function Name argument: NewQueryInSqlView()
将此宏保存为" AutoKeys"。该宏将 SHIFT F3 映射到NewQueryInSqlView()
的执行。请注意,由于^
中的SendKeys
语句,选择以 CTRL (NewQueryInSqlView()
字符)开头的键映射会出现问题。
答案 1 :(得分:0)
编写一个函数并从宏调用它:
Public Function foo()
Dim qdf As QueryDef
Set qdf = CurrentDb.CreateQueryDef("qNew", "SELECT 'd' as foo")
DoCmd.OpenQuery qdf.Name
End Function
这将创建查询并将其打开
宏是运行上述函数的RunCode命令。
答案 2 :(得分:0)
尝试此代码:
Sub EmptyQuery()
Dim Qname As String
Qname = "mQname"
On Error Resume Next
CurrentDb.CreateQueryDef Qname
On Error GoTo 0
DoCmd.OpenQuery Qname, acViewDesign
End Sub