请教为什么会这样...[:30]作者: tz-chf 时间: 2008-8-25 21:48
dim rs as dao.recordset作者: tanhong 时间: 2008-8-25 21:52
变量申明有问题,造成类型不匹配错,
从你的代码来看.做如下修改就可以了
Dim rs As DAO.Recordset作者: tanhong 时间: 2008-8-25 21:53
如果引用的ADO
Dim rs As ADODB.Recordset作者: fnsmydyang 时间: 2008-8-26 22:04 标题: 代码出错,谢谢了 非常感谢各位的指教,谢谢了...,为什么只有1笔记录?
Private Sub Form_Load()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = DAO.OpenDatabase("E:\程序\Northwind.mdb")
Set rs = db.OpenRecordset("SELECT 订单.* FROM 订单")
MsgBox rs.RecordCount
end sub
[attach]31760[/attach]
[ 本帖最后由 fnsmydyang 于 2008-8-26 22:27 编辑 ]作者: tz-chf 时间: 2008-8-26 23:35
不是1笔,是"有"记录.要movelast一下作者: tanhong 时间: 2008-8-27 09:23
造成记录数不准确的原因,是因为用recordset访问到的是内存中的记录数,不是所有的该记录集的数目,为了得到准确的记录集数,必须移动指针到最后一条记录,再将指针返回第一条记录,就能得到准确的记录数了,另你的代码最好加上关闭数据库及记录集语句,并释放它们所占用内存语句,这样代码才算完整,以下是本人修改的,仅供参考。
Private Sub Form_Load()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = DAO.OpenDatabase("E:\程序\Northwind.mdb")
Set rs = db.OpenRecordset("SELECT 订单.* FROM 订单")
rs.MoveLast '移动指针到最后一条记录
rs.MoveFirst '返回指针到第一条记录
MsgBox rs.RecordCount
'关闭数据库及记录集,并释放占用内存,以提高系统运行效率
rs.Close '关闭记录集
db.Close '关闭数据库