vb 模块中如何使ADO的记录往回移动?

来源:百度知道 编辑:UC知道 时间:2024/06/19 16:17:02
我要做一个随机抽题的东西。使用ADO控件可以这样用Adodc3.Recordset.MoveFirst
Adodc3.Recordset.Move N
但是如果要是这样调用ADO就不可以往回移动了。
dim conn as adodb.connect
dim rs as adodb.recordset

set conn=new adodb.connection
conn.open "driver={microsoft access driver (*.mdb)};dbq=" & app.path & "\数据库名.mdb"

set rs=conn.execute("select * from 表名")

msgbox rs.fields("字段名")

rs.close
conn.close
如果使用RS.MoveFirst就会出错,说什么“行”数据不可以往回移动。
现在我要在模块里做成一个随机抽题的函数,做成公用的,
请问谁有经验可以说说怎么实现比较好。或有别的办法也行。

conn.execute方法返回的是只读向前的记录集
你要用rs.open方法打开,比如:
rs.Open Sql, conn, adOpenKeyset, adLockOptimistic

set rs=conn.execute("select * from 表名") 这行改成
rs.Open "select * from 表名", conn, adOpenKeyset, adLockOptimistic