【问题标题】:linking an access database to excel (without importing the whole table)将 access 数据库链接到 excel(不导入整个表)
【发布时间】:2017-12-01 22:35:35
【问题描述】:

有什么方法可以在不导入整个表的情况下将 Access 数据库中的表链接到 Excel?我需要在 Access 表中引用/查找单元格,但不想将整个表导入 excel 工作簿(表太大)。

我的第二个选择是将 Access 表导出到单独的 excel 工作簿中,然后只引用这个新工作簿而不是 Access 数据库本身。当我尝试这样做时,只有大约 65,000 行来自任何 Access 表的数据实际导出到 Excel,因为其余的“无法复制到剪贴板”。有没有一种简单的方法来解决这个问题? (我想实际上在excel/access文件之间建立一个连接,这样数据就可以刷新,而不仅仅是复制粘贴行)

【问题讨论】:

  • 是的,有一种方法可以将 MS Access 数据库与 Excel 连接起来。见:Connect to an Access database
  • @MaciejLos 当我这样做时,我尝试导入的表不会作为选项出现(我相信是因为它们是链接表?)
  • 使用 excel 表作为链接表非常漂亮,原因有很多。虽然我会在走这条路之前考虑数据完整性和获取不良数据的风险 - 或者进行大量体面的验证
  • 2007 年之后似乎超过 65000 行。我测试了 240000 行。有可能的。但需要很长时间。
  • @Ashley 看我的回答。

标签: excel ms-access vba


【解决方案1】:

请参阅这篇古老的文章,它应该可以帮助您获得实际需要的数据,而不是一切:

http://dailydoseofexcel.com/archives/2004/12/13/parameters-in-excel-external-data-queries/

【讨论】:

    【解决方案2】:

    您可以在 Excel 中使用 Access 数据库表格,而无需将表格导入 Excel 工作表:

    Dim cnn As ADODB.Connection  ' Needs a reference to the Microsoft ActiveX                         
    Dim rs  As ADODB.Recordset   ' Data Objects Library
    
    Set cnn = CreateObject("ADODB.Connection") 
    cnn.Open "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=database-path\Data.accdb;"
    Set rs = cnn.Execute("SELECT * FROM MyTable")
    While Not rs.EOF
      Debug.Print rs(1)
      rs.MoveNext
    Wend
    

    如果您在 x64 操作系统上使用 x86 Access 版本,您可能需要使用 /passive 选项安装 Microsoft Access Database Engine 2010 Redistributable

    【讨论】:

      【解决方案3】:

      试试下面的脚本。这应该会给你你想要的。

      Option Compare Database
      
      Private Sub Command0_Click()
      
      Dim InputFile As String
      Dim InputPath As String
      
      InputPath = "C:\your_path_here\Desktop\"
      InputFile = Dir(InputPath & "*.xlsx")
      
      Do While InputFile <> ""
      
          DoCmd.TransferSpreadsheet acLink, , InputFile, InputPath & InputFile, True '< The true is for column headers
          InputFile = Dir
      Loop
      
      
      End Sub
      

      【讨论】:

        猜你喜欢
        • 2016-02-09
        • 2018-06-18
        • 1970-01-01
        • 2014-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-19
        • 2010-12-04
        相关资源
        最近更新 更多