ADO 数据操作 一些不为人知的提速方法!
以下是我的一些常使用的方法,并且比较少人使用,贴出来与大家分享,希望大家有什么
好的方法也不要吝啬.本贴以后仍然会陆续更新
1. 在RecordSet 循环中的优化,
预先初始化 Fields 并不会带来代码的其他变化,很方便,而且在大的循环中 提速也很明显
Dim R As New ADODB.Recordset
Dim Flds As ADODB.Fields
Dim II As Long
'这里没有用 For Next 的循环方式
'因为 要获得 RecordCount 对于某些记录集不支持
R.Open "Select * from 表", Cn
'这里,预先初始化 Fields 对象
Set Flds = R.Fields
Do Until R.EOF = True
'访问字段的每个元素
For II = 0 To Flds.Count - 1
Debug.Print Flds(II).Value
Next
R.MoveNext
Loop
2.速度最快的访问字段元素的做法
Flds(II).Value , 不要吝啬 .Value ,能使用字段索引号就使用索引号
3. 提高 Find 查找得速度
使用 Find 必须配合索引,默认情况下,Find 没有使用到索引,是进行行扫描,速度当然巨慢
CursorLocation = adUseClient '必须是客户端光标才能使用索引
关键初
打开记录集后
Dim Fld As ADODB.Field
Set Fld = rs.Fields("jobcode") '需要索引得字段
Fld.Properties("Optimize") = True
再进行 Find ,你会发现速度有百倍得提升