【发布时间】:2015-10-09 20:40:35
【问题描述】:
运行 Excel VBA 循环以执行以下操作: (1) 开放存取数据库 (2)在Access数据库中运行宏导入数据 (3) 完全关闭Access数据库
Excel VBA 循环在第一次迭代时工作正常,但在第二次迭代时在第一个 Access 宏处停止。如果禁用以下 2 个 Excel VBA 步骤,循环将按需要运行(除了在每个循环结束时未关闭数据库): (1) oAccess.DoCmd.Close (2) oAccess.DoCmd.Quit
知道如何在每次循环迭代结束时完全关闭数据库(不打开 shell)并让宏在后续迭代中运行吗?谢谢。
Dim DataBaseLoc As String
Dim oAccess As Access.Application
For K = First To Last
Set oAccess = New Access.Application
oAccess.Visible = True
If Z = "" Then DataBaseLoc = "C:\AutoInsight.mdb"
If Z <> "" Then DataBaseLoc = "C:\AutoInsight_X.mdb"
oAccess.OpenCurrentDatabase DataBaseLoc
If Z = "" Then Set ObjAccess = GetObject("AutoInsight.mdb")
If Z <> "" Then Set ObjAccess = GetObject("AutoInsight_X.mdb")
With ObjAccess
DoCmd.RunMacro "mcr_Import_Parts"
End With
With ObjAccess
For i = 1 To 2
If i = 1 Then DoCmd.RunMacro "mcr_Import_C"
If i = 2 Then DoCmd.RunMacro "mcr_Import_I"
Next i
End With
oAccess.DoCmd.Close
oAccess.DoCmd.Quit
Next K
【问题讨论】: