尝试将前一名员工编写的旧数据库拼凑在一起,但是当在Excel中运行宏链接回访问数据库时,我得到运行时错误2501,下面给出的代码是否有人有任何想法?
Public Sub Auto_Open()
If ActiveWorkbook.ReadOnly Then Exit Sub
Set accApp = CreateObject("Access.Application")
accApp.Visible = False
accApp.OpenCurrentDatabase ("i:\database reporting\main.mdb")
accApp.DoCmd.OpenQuery "blp_varience_estimate2"
accApp.Quit
Sheets("Estimate Raw").Select
Range("A1").Select
Cells.Select
Selection.QueryTable.Refresh BackgroundQuery:=False
End Sub
由于
答案 0 :(得分:0)
<input class="input" type="text" only-digits-with-plus="" ng-model="phone">
打开查询查询,并显示有关操作查询的警告框。您看到的错误是指警告框上的取消操作,可能没有显示,因为Access本身未显示,因此会自动取消。
从VBA运行查询的正确方法是通过QueryDefs集合:
DoCmd.OpenQuery
将您的代码编辑为以下内容:
CurrentDb.QueryDefs("MyQuery").Execute
请注意,在执行查询之前设置Public Sub Auto_Open()
If ActiveWorkbook.ReadOnly Then Exit Sub
Set accApp = CreateObject("Access.Application")
accApp.Visible = False
accApp.OpenCurrentDatabase ("i:\database reporting\main.mdb")
accApp.CurrentDb.QueryDefs("blp_varience_estimate2").Execute
accApp.Quit
Sheets("Estimate Raw").Select
Range("A1").Select
Cells.Select
Selection.QueryTable.Refresh BackgroundQuery:=False
End Sub
可能也有效,但我的解决方案更干净(只执行查询而不是隐藏警告,然后执行查询然后尝试向用户显示结果)