最初,您的代码利用循环将数据从 Excel 工作表导出到 MS Access 表。虽然此方法对于相对较小的数据集是可行的,但在处理大量数据时效率会降低。
为了克服此限制,您寻求一种避免迭代处理的替代方法。经过探索,您偶然发现了一种解决方案,该解决方案利用单个 SQL INSERT 语句将数据批量插入 Access 表中。
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
这种方法显着缩短了导出时间,从您的观察中可以明显看出,插入了 27,648 条记录只需 3 秒即可进入 Access 表。
虽然您在指定特定字段名称而不是依赖“SELECT *”方面遇到了挑战,但您可以继续探索不同的方法来达到预期的结果。
以上是Excel VBA 如何将数据批量插入 MS Access 以加快数据导出速度?的详细内容。更多信息请关注PHP中文网其他相关文章!