最初,您的程式碼利用循環將資料從 Excel 工作表匯出到 MS Access 表。雖然此方法對於相對較小的資料集是可行的,但在處理大量資料時效率會降低。
為了克服此限制,您尋求一種避免迭代處理的替代方法。經過探索,您偶然發現了一種解決方案,該解決方案利用單一 SQL INSERT 語句將資料批次插入 Access 表中。
Public Sub DoTrans() Set cn = CreateObject("ADODB.Connection") dbPath = Application.ActiveWorkbook.Path & "\FDData.mdb" dbWb = Application.ActiveWorkbook.FullName dbWs = Application.ActiveSheet.Name scn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath dsh = "[" & Application.ActiveSheet.Name & "$]" cn.Open scn ssql = "INSERT INTO fdFolio ([fdName], [fdOne], [fdTwo]) " ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh cn.Execute ssql End Sub
這種方法顯著縮短了導出時間,從您的觀察中可以明顯看出,插入了 27,648 條記錄只需 3 秒即可進入 Access 表。
雖然您在指定特定欄位名稱而不是依賴「SELECT *」方面遇到了挑戰,但您可以繼續探索不同的方法來達到預期的結果。
以上是Excel VBA 如何將資料批次插入 MS Access 以加快資料匯出速度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!