VB求助:BOF或EOF有一个是“真”,或者当前的记录已被删除.....
VB编写mis系统,其中用户信息修改模块存在问题:1.输入数据库中存在的用户名可以进行用户信息的修改,但最后会报错,如图上部分2.输入数据库中没有的用户名不能按照程序设计...
VB编写mis系统,其中用户信息修改模块存在问题:
1.输入数据库中存在的用户名可以进行用户信息的修改,但最后会报错,如图上部分
2.输入数据库中没有的用户名不能按照程序设计运行,报错如图下部分
请VB大神看看我的程序是什么地方出问题了,代码如下:
Private Sub Command1_Click()
Dim sql As String
If Trim(Text1.Text) = "" Then
MsgBox "用户名不能为空", vbOKOnly + vbExclamation, ""
Exit Sub
Text1.SetFocus
Else
sql = "select * From Users"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = sql
Adodc1.Refresh
While (Adodc1.Recordset.EOF = False)
If Trim(Adodc1.Recordset.Fields(0)) = Trim(Text1.Text) Then
MsgBox "已有这个用户", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Combo1.Text = ""
Exit Sub
Else
Adodc1.Recordset.MoveNext
End If
Wend
If Trim(Text2.Text) <> Trim(Text3.Text) Then
MsgBox "两次密码不一致", vbOKOnly + vbExclamation
Text2.SetFocus
Text2.Text = ""
Text3.Text = ""
Exit Sub
ElseIf Trim(Combo1.Text) <> "管理员" And Trim(Combo1.Text) <> "普通" Then
MsgBox "请选择用户权限", vbOKOnly + vbExclamation
Combo1.SetFocus
Else
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields(0) = Text1.Text
Adodc1.Recordset.Fields(1) = Text2.Text
Adodc1.Recordset.Fields(2) = Combo1.Text
Adodc1.Recordset.Update
MsgBox "添加用户成功", vbOKOnly + vbExclamation
Unload Me
End If
End If
End Sub 展开
1.输入数据库中存在的用户名可以进行用户信息的修改,但最后会报错,如图上部分
2.输入数据库中没有的用户名不能按照程序设计运行,报错如图下部分
请VB大神看看我的程序是什么地方出问题了,代码如下:
Private Sub Command1_Click()
Dim sql As String
If Trim(Text1.Text) = "" Then
MsgBox "用户名不能为空", vbOKOnly + vbExclamation, ""
Exit Sub
Text1.SetFocus
Else
sql = "select * From Users"
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = sql
Adodc1.Refresh
While (Adodc1.Recordset.EOF = False)
If Trim(Adodc1.Recordset.Fields(0)) = Trim(Text1.Text) Then
MsgBox "已有这个用户", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Combo1.Text = ""
Exit Sub
Else
Adodc1.Recordset.MoveNext
End If
Wend
If Trim(Text2.Text) <> Trim(Text3.Text) Then
MsgBox "两次密码不一致", vbOKOnly + vbExclamation
Text2.SetFocus
Text2.Text = ""
Text3.Text = ""
Exit Sub
ElseIf Trim(Combo1.Text) <> "管理员" And Trim(Combo1.Text) <> "普通" Then
MsgBox "请选择用户权限", vbOKOnly + vbExclamation
Combo1.SetFocus
Else
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields(0) = Text1.Text
Adodc1.Recordset.Fields(1) = Text2.Text
Adodc1.Recordset.Fields(2) = Combo1.Text
Adodc1.Recordset.Update
MsgBox "添加用户成功", vbOKOnly + vbExclamation
Unload Me
End If
End If
End Sub 展开
展开全部
你提到了2个错误,中断分别在哪句?
建议修改查询方式:
sql = "select * From Users where 用户名='" & Trim(Text1.Text) & "'"
把
While (Adodc1.Recordset.EOF = False)
...
wend
改成
if Adodc1.Recordset.recordcount>0 Then
MsgBox "已有这个用户", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Combo1.Text = ""
Exit Sub
End If
建议修改查询方式:
sql = "select * From Users where 用户名='" & Trim(Text1.Text) & "'"
把
While (Adodc1.Recordset.EOF = False)
...
wend
改成
if Adodc1.Recordset.recordcount>0 Then
MsgBox "已有这个用户", vbOKOnly + vbExclamation, ""
Text1.SetFocus
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Combo1.Text = ""
Exit Sub
End If
展开全部
首先尽可能把存在bug的代码加以完善,
其次对于可能出现的不确定的意外可在过程开头加上
on error rusume next
不至程序直接退出.
或如下:
sub mysub()
on error goto errtrap
'自己的代码
exit sub '如果没有错误运行至此退出过程
errtrap:
msgbox err.descript '获取错误信息
end sub
其次对于可能出现的不确定的意外可在过程开头加上
on error rusume next
不至程序直接退出.
或如下:
sub mysub()
on error goto errtrap
'自己的代码
exit sub '如果没有错误运行至此退出过程
errtrap:
msgbox err.descript '获取错误信息
end sub
追问
谢谢您赐教 初学VB 程序等还是很不规范的
希望您能帮我指出代码编写的是否有逻辑错误,从而导致运行中的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Recordset设置为adOpenDynamic 就行了吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用中段调试一下,看出现的程序段在哪个语句。
追问
谢谢你的回答,错误显示在While (Adodc1.Recordset.EOF = False)该句中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询