【发布时间】:2018-05-07 09:24:00
【问题描述】:
我从 Excel VBA 模式管理 Access MDB 文件,并希望找到最快的方法来删除数百万行文件中的重复记录(备忘录类型,最大字符串长度约为 400 个符号)。
子访问数据库() 将 db_file 调暗为字符串 将 cn 调暗为 ADODB.Connection 暗淡 rs 作为 ADODB.Recordset db_file = "c:\文件\" db_file = db_file & "accdb.mdb" 设置 cn = New ADODB.Connection cn.ConnectionString = _ “提供者=Microsoft.Ace.OLEDB.12.0;” &_ "数据源=" & db_file & ";" &_ “持久安全信息=假” cn.Open '重复删除--------------------------------- 设置 rs = cn.Execute("SELECT Base, count(*)" & _ “从 AccessBase GROUP BY Base HAVING count(*) > 1”) cn.Execute("设置行数 1;" &_ “从 AccessBase 中删除 Base = rs.Fields(0)”) '---------------------------------------------------- ---- cn.关闭 结束子一张表(“AccessBase”)中只有一列(“Base”)。
我试图删除duplicates delete 块中的重复字符串,但我猜有一些错误。
【问题讨论】:
-
为什么你发布的代码没有删除重复的逻辑?
-
感谢 Vityata 的链接,但我不知道如何将 SQL 请求添加到我的 VBA 代码中。
-
@nicomp - 你的意思是我应该尝试添加一些对我不起作用的 sql 请求?
-
@FL.Alx - 在
Set rs = cn.Execute("SELECT COUNT (Base) FROM AccessBase")部分中写入重复主题的 SQL。