【问题标题】:MS Access Auto Link Excel SpreadsheetsMS Access 自动链接 Excel 电子表格
【发布时间】:2010-09-22 02:51:30
【问题描述】:

我有一个目录结构,我在其中管理系统的要求,该系统的每个组件都有自己的目录。每个组件的要求都存储在一个具有多个工作表的 Excel 工作簿中(工作表的数量是静态的)。我目前使用 access 作为中心位置来查看这些工作表中的信息并对其执行查询。我讨厌每次将新组件文档添加到目录时都必须手动链接新的 excel 文件。有没有一种方法,当我每次开始访问时,它都会搜索存储的 excel 文件的目录树,如果它们没有链接,它会自动将它们链接到访问,并更新我的保存查询以包含新文件。我在想我可以将子目录名称保存在一个表中,并将这些子目录中的所有文件名保存在另一个引用另一个表的表中,以便在搜索文件系统时将名称与表进行比较。如果可以的话,这是否可能有人指出我正确的方向。

【问题讨论】:

    标签: ms-access excel vba


    【解决方案1】:

    您可以递归地使用 Dir 或 FileSystemObject 从目录树中获取文件。 Access 将文件的链接信息存储在 TableDef 的 connect 属性中,或者您可以从以下位置获取:

    SELECT msysobjects.Database
    FROM msysobjects
    WHERE (((msysobjects.Database) Is Not Null));
    

    你可以得到这样的工作表:

       ''Requires reference to the Microsoft Excel x.x Object Library
    
       Dim strFileName As String
       Dim objXL As New Excel.Application 
       Dim wkb As Excel.Workbook
       Dim wks As Object
    
       ''objXL.Visible = True
    
       strFileName = "C:\Docs\LTD.xls"
       Set wkb = objXL.Workbooks.Open(strFileName)
    
       For Each wks In wkb.Worksheets
          DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel9, _
                wks.Name, strFileName, True, wks.Name & "$"
       Next
    
       ''Tidy up
       wkb.Close
       Set wkb = Nothing
       objXL.Quit
       Set objXL = Nothing
    

    或使用 ADOX.Catalogue:http://forum.lessthandot.com/viewtopic.php?f=95&t=3712

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-30
      • 1970-01-01
      • 2013-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多