首頁 > 資料庫 > mysql教程 > 如何在不使用循環的情況下有效地將 Excel 資料匯出到 MS Access?

如何在不使用循環的情況下有效地將 Excel 資料匯出到 MS Access?

Barbara Streisand
發布: 2025-01-05 18:47:43
原創
142 人瀏覽過

How Can I Efficiently Export Excel Data to MS Access Without Using Loops?

使用Excel VBA 將資料匯出到MS Access 表而不使用循環

將資料從Excel 工作表匯出到MS Access 表時,傳統方法涉及使用循環迭代地將每行資料插入表中。然而,這種方法對於大型資料集可能效率低。這是使用單一SQL INSERT 語句的替代方法,可以顯著提高效能:

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

  ' Construct SQL INSERT statement to bulk insert data
  ssql = "INSERT INTO fdFolio ([fdName], [fdOne], [fdTwo]) "
  ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh

  ' Execute SQL INSERT statement to insert data in one go
  cn.Execute ssql

End Sub
登入後複製

在此程式碼中:

  • ssql 變數建構一個SQL INSERT 語句,該語句從下列位置選擇所有資料Excel 範圍dsh 並將其插入Access 中的fdFolio 表中。
  • cn.Execute ssql 行執行 SQL INSERT 語句,一次插入所有數據,無需循環,顯著加快進程速度。

注意

對於具有特定名稱的字段,您可以可以修改ssql語句,在INSERT子句中包含特定的字段名稱:

ssql = "INSERT INTO fdFolio (fdName, fdOne, fdTwo) "
ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh
登入後複製

以上是如何在不使用循環的情況下有效地將 Excel 資料匯出到 MS Access?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板