首頁 >資料庫 >mysql教程 >Excel VBA 如何將資料批次插入 MS Access 以加快資料匯出速度?

Excel VBA 如何將資料批次插入 MS Access 以加快資料匯出速度?

Patricia Arquette
Patricia Arquette原創
2025-01-05 06:25:43646瀏覽

How Can Excel VBA Bulk Insert Data into MS Access for Faster Data Export?

使用 Excel VBA 快速且有效率地將資料匯出至 MS Access 表

最初,您的程式碼利用循環將資料從 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn