首頁 >資料庫 >mysql教程 >如何使用 SQL INSERT 語句有效率地將 Excel 資料批次匯出到 MS Access?

如何使用 SQL INSERT 語句有效率地將 Excel 資料批次匯出到 MS Access?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-05 20:03:40395瀏覽

How Can I Efficiently Bulk Export Excel Data to MS Access Using SQL INSERT Statements?

使用SQL INSERT 將Excel 資料批次匯出到MS Access

雖然循環提供了一種將資料從Excel 匯出到MS Access 的有效方法,但它們處理大型資料集時可能會變得低效。為了提高效能,請考慮使用單一 SQL INSERT 語句進行批次插入。

現有循環的程式碼:

提供的 VBA 程式碼循環遍歷 Excel 工作表的每一行並將資料插入 MS Access表中:

For i = 1 To rcount - 1
    rs.AddNew
    rs.Fields("fdName") = Cells(i + 1, 1).Value
    rs.Fields("fdDate") = Cells(i + 1, 2).Value
    rs.Update

Next i

限制循環:

處理大量資料集時,此方法可能非常耗時,導致效能下降。

用於批次插入的 SQL INSERT:

另一個解決方案是使用單一 SQL INSERT 語句同時插入多行。此方法消除了循環的需要,顯著加速了導出過程。

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

在此程式碼中:

  • INSERT INTO 語句建立並插入到「fdFolio」表中Access 資料庫。
  • SELECT * 查詢從指定範圍內的Excel 工作表中擷取資料

其他注意事項:

  • 使用欄位>使用欄位名稱而不是“*”以獲得最佳性能。
  • 對於特定的欄位名稱,請使用此語法:

    INSERT INTO fdFolio (fdName, fdOne, fdTwo)
    SELECT fdName, fdOne, fdTwo FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh
  • 如果目標表的欄位多於資料來源,則對缺失值使用 NULL。
  • 在將上面的程式碼應用到之前,使用較小的資料集進行測試一個更大的。

以上是如何使用 SQL INSERT 語句有效率地將 Excel 資料批次匯出到 MS Access?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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