MS Access - 在VBA中按名称执行已保存的查询
问题描述:
如何在VBA中的MS Access 2007中执行保存的查询?MS Access - 在VBA中按名称执行已保存的查询
我不想将SQL复制并粘贴到VBA中。我宁愿只执行查询的名称。
这不起作用... VBA找不到查询。
CurrentDb.Execute queryname
答
你可以做到这一点的方式如下:
DoCmd.OpenQuery "yourQueryName", acViewNormal, acEdit
OR
CurrentDb.OpenRecordset("yourQueryName")
答
你最好调查一下VBA找不到queryname。
我有一个保存的查询名为qryAddLoginfoRow。它将当前时间的一行插入到我的loginfo表中。当由CurrentDb.Execute
按名称调用时,该查询成功运行。
CurrentDb.Execute "qryAddLoginfoRow"
我的猜测是,要么queryname是一个变量保存查询不当前数据库的QueryDefs集合中存在,或者queryname的名字是现有查询的文字名称,但你没有用引号括起来。
编辑: 你需要找到一种方法来接受queryname不会将当前数据库的QueryDefs集合中存在。将这两行添加到CurrentDb.Execute
行之前的VBA代码中。
Debug.Print "queryname = '" & queryname & "'"
Debug.Print CurrentDb.QueryDefs(queryname).Name
那些2线将触发运行时错误3265的第二个“这个项目集合中找不到。”然后转到立即窗口来验证你问CurrentDb
查询的名称到Execute
。
答
要使用CurrentDb.Execute,您的查询必须是操作查询,并用引号引起来。
CurrentDb.Execute "queryname"
我不想编辑。这会执行我的更新并插入查询吗? – tdjfdjdj 2012-03-29 15:57:00
是的,它会运行更新和插入查询。 – Taryn 2012-03-29 15:58:32
它是一个附加查询手动工作,但不是在我的vba代码。我可以不使用追加保存的查询吗? – tdjfdjdj 2012-03-29 17:09:11