MS Access - 在VBA中按名称执行保存的查询

tdj*_*jdj 25 sql ms-access vba

如何在VBA中的MS Access 2007中执行已保存的查询?

我不想将SQL复制并粘贴到VBA中.我只是执行查询的名称.

这不起作用... VBA无法找到查询.

CurrentDb.Execute queryname
Run Code Online (Sandbox Code Playgroud)

Tar*_*ryn 38

您可以通过以下方式执行此操作:

DoCmd.OpenQuery "yourQueryName", acViewNormal, acEdit
Run Code Online (Sandbox Code Playgroud)

要么

CurrentDb.OpenRecordset("yourQueryName")
Run Code Online (Sandbox Code Playgroud)


Han*_*sUp 10

您应该调查VBA无法找到queryname的原因.

我有一个名为qryAddLoginfoRow的已保存查询.它将当前时间的一行插入到我的loginfo表中.当按名称调用时,该查询成功运行CurrentDb.Execute.

CurrentDb.Execute "qryAddLoginfoRow"
Run Code Online (Sandbox Code Playgroud)

我的猜测是,queryname是一个变量,它包含当前数据库的QueryDefs集合中不存在的查询名称,或者queryname是现有查询的文字名称,但您没有将其括在引号中.

编辑:您需要找到一种方法来接受当前db的QueryDefs集合中不存在queryname.在这CurrentDb.Execute行之前将这两行添加到您的VBA代码中.

Debug.Print "queryname = '" & queryname & "'"
Debug.Print CurrentDb.QueryDefs(queryname).Name
Run Code Online (Sandbox Code Playgroud)

那些2线的第二个将触发运行时错误3265," 不是这个集合中找到项目. "然后去立即窗口来验证你要求查询的名称CurrentDbExecute.


tah*_*wos 5

要使用CurrentDb.Execute,您的查询必须是动作查询,并且在引号中.

CurrentDb.Execute "queryname"
Run Code Online (Sandbox Code Playgroud)