2010-09-21 62 views
0

我有一個目錄結構,我管理系統的要求,該系統的每個組件都有自己的目錄。每個組件的要求都存儲在一個有多個工作表的Excel工作簿中(工作表的數量是靜態的)。我目前使用訪問作爲中心位置來查看這些表中的信息並對它們執行查詢。我討厭每次將新的組件文檔添加到目錄時都必須手動鏈接新的excel文件。有沒有辦法,當我每次開始訪問它將搜索存儲的Excel文件的目錄樹,並自動鏈接他們訪問,如果他們沒有鏈接和更新我的保存查詢,包括新文件。我在想,我可以將子目錄名保存在一個表中,並將所有文件名保存在另一個表中引用另一個表的子目錄中,以便在搜索文件系統時將名稱與表進行比較。如果有人能指引我朝着正確的方向行事,這是否可能?微軟Access自動鏈接Excel電子表格

回答

2

您可以遞歸地使用Dir或FileSystemObject從目錄樹中獲取文件。訪問存儲文件中的TableDef或你的連接屬性鏈接信息能夠得到它:

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

+0

沒有,這是過渡性的,我現在已經糾正它。 – Fionnuala 2010-09-21 18:52:02