使用 SQL Insert 语句高效地将数据从 Excel 传输到 Access
在 Excel VBA 代码中,您手动循环遍历每一行data 将值插入到 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中文网其他相关文章!