DAO+ACCESS 如何取得当前记录数?

xhstudio 2004-09-12 12:48:52

用什么方法能取得当前记录的记录数?
...全文
175 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
tztz520 2004-09-12
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase("C:\AA\dev.mdb")
Set rs = db.OpenRecordset("select* from tablename")

if rs.RecordCount>0 then rs.MoveLast
msgbox "当前记录总数: " & str(rs.RecordCount)
回复
xxfeiyu 2004-09-12

rs是记录集
rs.movelast
N=rs.recordcount
回复
RUKYO 2004-09-12
那可以用SQL语句来实现啊,举个例子说:
SELECT TOP 105 * FROM 表1 WHERE 房屋类型 = '大' ORDER BY 地址,房屋类型 DESC
回复
xhstudio 2004-09-12
我所用的那个表是一个相关住房信息的,里面用到地址
我正常是按地址+房屋类型排序打开表,
表打开以后,地址按序列排下去的,但不是每次都用到全部的,可能只用其中100~105条
所以想按记录号来取数据(相关打印,要不每次得取全部数据)
如果按记录号操作的话,相对的方便一些

回复
RUKYO 2004-09-12
我不明白楼主为何非要用根据一个号来表识一个记录,其实你完全可以用SQL语句结合你字段某值来查询出你所需要的记录
回复
xhstudio 2004-09-12
要是在记录里加入自动编号字段的话,那我删除记录以后,号就不连续,我想这不是取当前记录的办法,我记着自动编号字段不会把你删除记录的号重新加入,还有就是打开表的时候是按一个字段排序的,而不能用自动编号字段打开表,这样编号字段的数据也就不对了

星魂.net说的是个办法
可是还有没有别的办法啊?????
回复
starsoulxp 2004-09-12
你的记录是怎么移动的?把代码贴出来看看。
记录移动时记录序号,例如
rs.movenext
i=i+1
回复
RUKYO 2004-09-12
你可以在表中建立一个名为“ID”的自动编号字段,范例如下:

'工程->引用 Microsoft DAO3.x Object Library
Option Explicit
Public mDbs As Database
Public mWrk As Workspace
Dim mRst As Recordset

Private Sub Form_Load()
Set mWrk = CreateWorkspace("", "admin", "", dbUseJet)
Set mDbs = mWrk.OpenDatabase(App.Path & "\db1.mdb")
Set mRst = mDbs.OpenRecordset("Select * From Table1", dbOpenDynaset, dbDenyWrite)
If mRst.RecordCount > 0 Then
mRst.MoveLast '也是RecordCount属性
Debug.Print "记录总数是:" & mRst.RecordCount
mRst.MoveFirst
Do While Not mRst.EOF
Debug.Print mRst.Fields("ID") 'ID字段是你Access表中自动编号字段
mRst.MoveNext
Loop
Else
Debug.Print "记录总数是:0"
End If
mRst.Close
Set mRst = Nothing
End Sub

回复
xhstudio 2004-09-12
不好意思,是我没说明白,不是取得表的总记录数
是当前正在操作的记录是第几条
比如
当前打开的表有1000条记录
我怎么知道我正在操作的是哪条呢
回复
相关推荐
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2004-09-12 12:48
社区公告
暂无公告