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

速度立刻再提升一截!

相关推荐
xiaofeichaichai15 分钟前
React Hooks
前端·javascript·react.js
问心无愧051336 分钟前
ctf show web入门110
前端·笔记
拉拉肥_King41 分钟前
Vue 3 主题切换深度解析:从炫酷动画到零闪烁方案
前端·vue.js
excel43 分钟前
为什么 Pinia + localForage 持久化后,页面初始化拿不到数据?
前端
雨雨雨雨雨别下啦1 小时前
vant介绍
前端
小小小小宇1 小时前
大模型失忆问题探讨
前端
wordbaby1 小时前
rn-cross-calendar:一个兼容 React 18/19、RN/RNOH 的跨平台日历组件
前端·react native·harmonyos
weixin_523185321 小时前
Collections.unmodifiableMap详解:真的不可修改吗?
java·linux·前端
江米小枣tonylua1 小时前
关掉 VSCode:在 NeoVim12 上配置 Claude Code
前端·程序员
2301_773643621 小时前
ceph镜像
前端·javascript·ceph