首页 >数据库 >mysql教程 >Excel VBA 如何将数据批量插入 MS Access 以加快数据导出速度?

Excel VBA 如何将数据批量插入 MS Access 以加快数据导出速度?

Patricia Arquette
Patricia Arquette原创
2025-01-05 06:25:43641浏览

How Can Excel VBA Bulk Insert Data into MS Access for Faster Data Export?

使用 Excel VBA 快速高效地将数据导出到 MS Access 表

最初,您的代码利用循环将数据从 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn