VB中怎样提取记录集中的术与已知数比较??

来源:百度知道 编辑:UC知道 时间:2024/06/21 14:37:11
Private Function H1() '统计最高分函数
Dim H As Double
Dim i As Integer
H = 0 'H暂存最高值,初始值为0
If HLscore.State = adStateOpen Then HLscore.Close '?????????
If ConnectToServer = True Then
Set HLscore = New Recordset
Set HLscore = Nothing
sql = "Select Score From Score Where Score.Cname='" & FrmNew.CbCname.Text & "' And SBJ='" & FrmNew.CbSBJ.Text & "' And Score=0 "
Call HLscore.Open(sql, conn, adOpenDynamic, adLockOptimistic, -1)
For i = 1 To Sum1() 'NewAR.Fields("Cnum1")
If HLscore.EOF = False Then
If H > HLscore.Fields("Score") Then
H = HLscore.Fields("Score") '如果当前记录分数大,则将其值赋予H存放
HLscore.MoveNext
End If
Else
H1 = 0
HLscore.Close
Exit Function
End If
Next i
HLscore.Close
End If<

你参考参考吧
If SResultScore.State = adStateOpen Then SResultScore.Close
sql = "Select Score From Score Where Cname='" & FrmNew.CbCname.Text & "' And SBJ='" & FrmNew.CbSBJ.Text & "'"
Call SResultScore.Open(sql, conn, adOpenDynamic, adLockOptimistic, -1)
SResultScore.MoveFirst
For i = 1 To NewAR.Fields("Cnum1")
If H < SResultScore.Fields("Score") Then H = SResultScore.Fields("Score") '如果当前记录分数大,则将其值赋予H存放
SResultScore.MoveNext
Next i
SResultScore.Close
H1 = H '值用自身的函数名称来返回

首先你的判断语句肯定应该这样写:
If HLscore.EOF = true Then

在这句前面加上:HLscore.MoveFirst
然后执行代码看出错否,如果出错
那说明你肯定一个记录也没有取到HLscore中来。