菜鸟求教,我想点击选择listbox中的记录时,点删除按钮后运行反馈总是“内部错误”,请高手指导一下怎么修

问题如上,代码是这样的PrivateSubcmdDelStd_Click()DimrsStudentAsNewADODB.Recordset'定义记录集DimcnExam... 问题如上,代码是这样的
Private Sub cmdDelStd_Click()
Dim rsStudent As New ADODB.Recordset '定义记录集
Dim cnExam As New ADODB.Connection '定义数据连接
Dim IsDel As String

Dim SID As Variant
Dim SIDIndex As Variant
Set cnExam = New ADODB.Connection
cnExam.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\考试系统\Exam.MDB"
cnExam.Open
rsStudent.Open "Select * from StudentInfo where SID='" & SID & "'", cnExam, adOpenStatic, adLockOptimistic
If rsStudent.BOF And rsStudent.EOF Then
MsgBox "内部错误!", vbOKOnly + vbCritical, "错误"
rsStudent.Close
Exit Sub
End If
'判断考生是否有效

If rsStudent("SEnabled") Then
MsgBox "不能删除考生,该考生还处于考试有效状态,请先将考生的状态设置为“禁用”,然后在删除考生!", vbOKOnly + vbCritical, "错误"
rsStudent.Close
Exit Sub
End If
'判断考生是否还有考试科目
If rsStudent("SNum") > 0 Then
MsgBox "不能删除考生!该考生还有尚未完成的考试,考生必须完成全部考试才能删除,或者先删除考生的考试注册信息,才能删除考生。", vbOKOnly + vbCritical, "错误"
rsStudent.Close
Exit Sub
End If
'删除考生
IsDel = MsgBox("您确定要删除考生吗?" & vbCrLf & vbCrLf & "删除操作是不可恢复的", vbYesNo + vbQuestion + vbDefaultButton2, "删除考生")
If IsDel = vbYes Then

'删除考生的注册记录
rsStudent.Delete
rsStudent.Update
rsStudent.Close
'删除考生的考试注册信息
rsStudent.Open "select * From RegInfo where SID=" & SID & "", cnExam
While Not rsStudent.EOF
rsStudent.Delete
rsStudent.Update
Wend
rsStudent.Close
MsgBox "删除考生成功!", vbOKOnly + vbInformation, "成功"
lstStd.RemoveItem SIDIndex
Else
rsStudent.Close
End If
End Sub
请教怎么修改?因为是新人,非常抱歉没有悬赏分,以后有了一定补上
谢谢Xl_meme 的回答。首先肯定要判断记录是否为空,如果不为空才能执行删除命令哒。我的错误应该是在SID的值为空,所以判断成记录为空,执行了“内部错误”的语句。我想问如何完成将我单击的同时将选择的值赋给变量SID,语句不知道怎么写。(记录是显示在listbox控件中的)
展开
 我来答
Xl_meme
2010-11-22 · 超过33用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:80.3万
展开全部
If rsStudent.BOF And rsStudent.EOF Then
MsgBox "内部错误!", vbOKOnly + vbCritical, "错误"
rsStudent.Close
Exit Sub
End If
不能这样把 这是判断你的第一条记录或者最后一条是否为空
你可以直接 if rsStudent not bof then
if del ‘当点击删除按钮时 then
rsStudent.Open "select * From RegInfo where SID=" & SID & "", cnExam
end if

end if
美女耀耀
2010-11-20 · TA获得超过123个赞
知道小有建树答主
回答量:252
采纳率:100%
帮助的人:114万
展开全部
你知道怎么获取listbox中选中项的值吗?获取之后把值赋给SID变量,然后再判断考生是否有效,就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式