我有一个主要在 Access 中运行的自动化过程。但是,在中间,它将一些数据放入 Excel 中以将其整理成正确的形式(这比在 Access 中执行要快得多),最后它打开另一个 Excel 文件并将来自某些 Access 查询的数据放入 Excel 文件. 对于从 Excel 到 Access 的这些连接,我通过进入 Excel 并执行 Data --> Get External Data --> From Access,然后选择 Access 文件和我想要从中获取数据并告诉 Excel 的查询来完成它们把它做成一个表。
所以,我做了一次,然后我希望能够运行这个简单地刷新数据的自动化过程。为了刷新数据,我做了如下一行:
Worksheets("Data").Range("A1").ListObject.QueryTable.Refresh _
BackgroundQuery:=False
问题是,有一半的时间(我不明白为什么它一次而不是另一次),它说“你想连接到路径\文件名吗?” 当然可以,否则表格会如何刷新?因此,这会停止自动化。即使我单击是,我仍然无法让它继续。如果我单击是,它将打开数据链接属性。在我为此单击“确定”后,它会打开一个标题为“请输入 Microsoft Office Access 数据库引擎 OLE DB 初始化信息”的窗口。它有信息,包括我要访问的数据源的路径和名称,但是如果我单击确定,它会说,对不起,这不起作用,你想连接到吗(然后它列出了确切的刚才说的相同的路径和文件名不起作用)。它重复我刚才提到的步骤,然后出错。
万一这很重要,这是我用来从 Access 连接到 Excel 的(基本思想)代码:
Public Sub ExportToExcel()
Dim ObjXLApp As Object
Dim ObjXLBook As Object
Dim ExcelFilePath As String
ExcelFilePath = CurrentProject.Path & "\"
Set ObjXLApp = CreateObject("Excel.Application")
Set ObjXLBook = ObjXLApp.Workbooks.Open(ExcelFilePath & "filename.xlsm")
ObjXLApp.Visible = True
' Runs the "DataSetUp" macro in the Excel file.
ObjXLApp.Run ("DataSetUp")
' The DataSetUp macro saves the Excel file
' Quit Excel
ObjXLApp.Quit
' Free the memory
Set ObjXLBook = Nothing
Set ObjXLApp = Nothing
End Sub
我不知道如何解决这个问题!任何帮助将非常感激。