【发布时间】:2018-05-16 15:22:18
【问题描述】:
我正在尝试在 excel vba 中编写一个宏,它只是打开一个 access 数据库并在 access 中运行 2 个查询。它似乎每单击 2 次宏按钮就可以工作并运行查询。我的意思是我点击它,它可以工作,第二次点击我在第二次点击时得到一个“运行时错误 462”,第三次点击它可以工作,第四次点击我再次得到错误,依此类推。我似乎无法弄清楚这是为什么。这是下面的代码。
Sub QueryAccess1()
Dim db As Access.Application
Set db = New Access.Application
'set variables
db.Visible = True
db.OpenCurrentDatabase ("DatabaseFileName")
'open database
'--------------------------------------------------------------
On Error Resume Next
db.DoCmd.DeleteObject acTable, "TableName"
'if the table does not exist it skips this line
'--------------------------------------------------------------
On Error GoTo 0
'sets the error back to normal
'--------------------------------------------------------------
CurrentDb.Openrecordset ("QUERY1")
CurrentDb.Execute ("QUERY2")
'Calls the queries
'--------------------------------------------------------------
'--------------------------------------------------------------
db.CloseCurrentDatabase
db.Quit
'Closes Access
'--------------------------------------------------------------
Set db = Nothing
End Sub
当我收到错误消息时,我将其上线
CurrentDb.Openrecordset ("QUERY1")
【问题讨论】:
-
尝试使用 OpenQuery,而不是 Openrecordset。如果这不起作用,您可以在编辑模式下打开查询,查看 SQL 视图并在 VBA Excel 上构建/使用 SQL。
-
Query2 是否创建表“TableName”?也许这就是奇数失败的逻辑?
-
是的 Query2 确实创建了“TableName”,但我不确定这是否有问题,因为如果表存在,我会先删除它?
-
哪一行给出了错误?
-
我在 'CurrentDb.Openrecordset ("QUERY1")' 行得到错误