什麼是從Access 2007應用程序中讀取(只讀)Excel文件的「最佳」方式。我只想循環遍歷行並將數據放入Access表中。將Excel文件讀入Access數據庫的最佳方法
我不想通過VBA手動導入(獲取外部數據對話框)。用戶通過瀏覽按鈕獲取表單,然後指向具有定義的內容/格式的Excel文件。之後,VBA代碼讀取數據並將其放入Access數據庫。
什麼是從Access 2007應用程序中讀取(只讀)Excel文件的「最佳」方式。我只想循環遍歷行並將數據放入Access表中。將Excel文件讀入Access數據庫的最佳方法
我不想通過VBA手動導入(獲取外部數據對話框)。用戶通過瀏覽按鈕獲取表單,然後指向具有定義的內容/格式的Excel文件。之後,VBA代碼讀取數據並將其放入Access數據庫。
您可以嘗試DoCmd.TransferSpreadsheet方法。
DoCmd.TransferSpreadsheet acImport, , "from_excel","C:\Access\demo.xls", True
將電子表格數據導入名爲from_excel的表中,並假定電子表格的第一行包含字段名稱。有關更多詳細信息,請參閱TransferSpreadsheet的訪問幫助或在線here。
如果要讀取整個電子表格,可以將Excel電子表格直接導入到Access中。見here或here。
您也可以選擇鏈接到Excel電子表格,而不是導入它。這樣,Excel電子表格中的任何更改都會反映在鏈接表中。但是,您將無法從Access內進行更改。
第三個選項是在Access中編寫一些VBA代碼來打開一個記錄集並讀取電子表格。請參閱KeithG的答案this thread。你可以做這樣的事情在VBA來打開電子表格:
Dim xl As Excel.Application
Dim xlsht As Excel.Worksheet
Dim xlWrkBk As Excel.Workbook
Set xl = CreateObject("Excel.Application")
Set xlWrkBk = GetObject("H:/ggg.xls")
Set xlsht = xlWrkBk.Worksheets(1)
嘗試是這樣的:通過行和列
Dim excelApp As Excel.Application
Dim workbook As Excel.Workbook
Dim worksheet As Excel.Worksheet
Set excelApp = CreateObject("Excel.application")
Set workbook = excelApp.Open("C:\someFileName.xls")
Set worksheet = workbook.Worksheets(1)
然後循環,從細胞中提取數據,並插入它進入數據庫。 (您可以使用worksheet.cells方法。)嘗試在Google上搜索代碼示例。
那麼,您如何遍歷行和列?我想將xlsx導入到表中,但由於列不一定與表中的列匹配,所以我需要手動執行一些重定向。 – Hill 2017-04-29 17:43:55
謝謝,優秀的內容,但我的意思是VBA的一個選項。我已經擴展了這個問題,參見上文 – waanders 2010-05-25 14:31:56
查看我的編輯帖子,瞭解如何通過VBA訪問電子表格的一些信息。 – TLiebe 2010-05-25 14:37:38
您可以使用DoCmd.TransferSpreadsheet在VBA中運行導入。這個答案似乎很不完整,沒有提到這一點,在我看來。 – 2010-05-25 18:08:41