繁体   English   中英

从 Access 2007 中的查询获取 Excel 2007 中的表数据

[英]Get table data in Excel 2007 from query in Access 2007

我有一个主要在 Access 中运行的自动化流程。 但是,在中间,它将一些数据放入 Excel 中以将其整理成正确的形式(这比在 Access 中快得多),最后它打开另一个 Excel 文件并将一些 Access 查询的数据放入 Excel 文件中. 对于从 Excel 到 Access 的这些连接,我通过进入 Excel 并执行数据 --> 获取外部数据 --> 从 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

我不知道如何解决这个问题。 任何帮助将非常感激。

发生这种情况的原因可能是您的访问数据库仍处于打开状态,新的 excel 文件需要从中输入数据。 发生这种情况时数据库无法打开,这就是 excel 错误并要求连接到另一个位置的原因。

因此,我可能会通过 vba inside access 来生成所需的清理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM