將資料從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語句,在INSERT子句中包含特定的字段名稱:
ssql = "INSERT INTO fdFolio (fdName, fdOne, fdTwo) " ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh
以上是如何在不使用循環的情況下有效地將 Excel 資料匯出到 MS Access?的詳細內容。更多資訊請關注PHP中文網其他相關文章!