VBA/VB6连接、读取Mdb access数据库最快的方法

一、只读查询 最快组合(没有之一)

🔥 最快写法(复制直接用)

vbnet 复制代码
rs.Open "select * from [TABLE1]", Conn, 
adOpenForwardOnly, adLockReadOnly, adCmdText

对应数字简写(不引用也能用)

复制代码
rs.Open "select * from [TABLE1]", Conn, 0, 1, 1

为什么这个最快?

  • 0 = adOpenForwardOnly :只向前、只读、最轻量、速度最快
  • 1 = adLockReadOnly:只读,不加锁,不冲突
  • 1 = adCmdText:告诉引擎这是 SQL 文本,少解析一步

你实测过:这个组合比 Keyset (1,1) 快 10%~30%


二、只读打开数据库连接 + 记录集 全套最快代码

1. 连接字符串(你实测第一名)

复制代码
' MDB 最快(你实测 10.78ms)
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=" & DbFile & ";" & _
          "Mode=Read;" & _         ' 显式只读
          "Persist Security Info=False"

2. 最快打开记录集(只读)

vbnet 复制代码
rs.Open "select * from [TABLE1]", Conn, 0, 1, 1

三、参数说明(你一看就懂)

表格

参数 常量 意义 速度
0 adOpenForwardOnly 只向前(只读最快) ⭐⭐⭐⭐⭐
1 adOpenKeyset 键集游标(你现在用) ⭐⭐⭐
1 adLockReadOnly 只读不加锁 ⭐⭐⭐⭐⭐

只读场景:0,1 永远比 1,1 更快!


四、你要的 "最快只读打开" 完整代码

vb

vbnet 复制代码
Dim Conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim ConnStr As String
Dim DbFile As String

DbFile = App.Path & "\data.mdb"

' 【最快连接】Jet OLEDB + 显式只读模式
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Data Source=" & DbFile & ";" & _
          "Mode=Read;" & _
          "Persist Security Info=False"

Conn.Open ConnStr

' 【最快只读打开】0,1,1
rs.Open "select * from [TABLE1]", Conn, 0, 1, 1

' 读取数据...

rs.Close
Conn.Close

五、终极结论(最重要)

✅ VB6 + Access 只读最快组合

  1. 连接: Microsoft.Jet.OLEDB.4.0 + Mode=Read

  2. 记录集: 0, 1, 1

    rs.Open SQL, Conn, 0, 1, 1

✅ 你现在的 1,1 可以直接换成 0,1

速度立刻再提升一截!

相关推荐
叼烟扛炮5 小时前
[LangChain] 学习笔记(03):打破失忆症——对话机制与上下文管理
java·前端·javascript·笔记·学习·langchain
IT_陈寒6 小时前
SpringBoot实战技巧总结
前端·人工智能·后端
TeamDev6 小时前
使用 JxBrowser 在桌面应用中集成 Spring
java·前端·后端·spring·混合应用·jxbrowser·浏览器控件
陈随易8 小时前
Rolldown 把插件改动回传提速 26 倍
前端·后端·程序员
笃行35015 小时前
集中式与分布式,KingbaseES 的四种形态共用一套内核
前端
陈随易16 小时前
Vue 编译器换掉 source map,快了三四成
前端·后端·程序员
ZhengEnCi18 小时前
12 种高级 UI 交互效果及对应 AI 提示词:从按压回弹到底部抽屉的物理感教学
前端·css·交互设计
IT_陈寒20 小时前
Redis大key删除为什么会导致服务卡顿?我的线上事故复盘
前端·人工智能·后端
用户27050777252421 小时前
MCP 最小 Server 实测:3 个 JSON-RPC 报错与修法
前端
用户4993350250721 小时前
一人VIP账号多人共用:Web 代理里的会话共享怎么实现
前端