使用SQL Insert 語句有效率地將資料從Excel 傳送到Access
在Excel VBA 程式碼中,您手動循環遍歷每一行資料將值插入Access 表。雖然此方法適用於小型資料集,但對於 25,000 筆記錄等大型資料集來說,效率很低。
相反,您可以利用 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 ssql = "INSERT INTO fdFolio ([fdName], [fdOne], [fdTwo]) " ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh cn.Execute ssql End Sub
透過使用第 11 行所示的 SQL INSERT 語句,Excel 範圍中的所有行都會立即插入到 Access 表中。這消除了對循環的需要並顯著提高了性能。
儘管您提到要指定欄位名稱而不是使用“SELECT *”,但提供的程式碼並未證明這一點。如果您需要協助設定特定欄位名稱,請提供所需的欄位名稱,我們可以協助您相應修改程式碼。
以上是如何使用 SQL 有效率地將大型資料集從 Excel 傳輸到 Access?的詳細內容。更多資訊請關注PHP中文網其他相關文章!