VB数据库编程问题,给看下这是什么错误?怎么解决?高手来解答~~~~

来源:百度知道 编辑:UC知道 时间:2024/05/20 22:18:38
窗体名FORM4,上面有Label1,Command1
数据库“SHIJUAN”表有题号,答案,学号三列
“题库”表编号,题,分值三列
“guize”表数量,分值两列
想实现的功能:从GUIZE表读取某一分值的题的数量,随机从题库表抽取题目,把该题题号和学号(就是窗体CAPTION属性)写入SHIJUAN表
错误提示:实时错误3021,EOF或BOF中有一个是“真”,或者当前记录已被删除,所需要的操作要求一个当前的记录。
但是我的数据库里有几十条记录,查错时显示RS4在第7条记录,绝不是EOF或BOF……这是什么错误?怎么解决?
代码如下:

Dim dbtihao As Integer, dbfenzhi As Integer, dbshuliang As Integer, tishuliang As Integer, sjpx(100) As Integer, bianhao As Integer
Dim rs1 As ADODB.Recordset, rs2 As ADODB.Recordset, rs4 As ADODB.Recordset, cn As ADODB.Connection
Private Sub Command1_Click()
Set cn = New ADODB.Connection
Set rs1 = New ADODB.Recordset
Set rs2 = New ADODB.Recordset
Set rs4 = New ADODB.Recordset
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DB.mdb;Persist Security Info=False"
rs1.ActiveConnection = cn
strsql = "select * from guize"
rs1.Open strsql, cn, adOpenKeyset, adLockPessimistic
rs2.ActiveConnect

EOF ==> 超出记录集尾
BOF ==> 超出记录集头 一个是指记录集游标指向第一条记录之前

rs4.MoveNext <====== 不要在没加判断的情况使用此类语句

if not rs4.eof then rs4.movenext

检查每条记录集移动指令