我的VB程序运行到If rs.EOF = False Then这句时,弹出错误:事实错误91 对象变量未设置,求指点! 30
PrivateSubCommand3_Click()'修改用户信息DimtxtSQLAsStringDimmAdoRAsADODB.Recordset'定义变量记录集Di...
Private Sub Command3_Click() '修改用户信息
Dim txtSQL As String
Dim mAdoR As ADODB.Recordset '定义变量记录集
Dim MsgText As String
If Text1(3) = "" Then
MsgBox "请先选择用户名称!", vbOKOnly, "提示" '提示信息,用户名不能修改
List1.SetFocus
Exit Sub
End If
If Text1(4) = "" Then
MsgBox "修改密码时需要旧密码,请输入!", vbOKOnly, "警告" '提示信息
Text1(4).SetFocus
Exit Sub
End If
If Text1(5) = "" Then
MsgBox "新的密码不能为空!", vbOKOnly, "提示" '提示信息
Text1(5).SetFocus
Exit Sub
Else
If Text1(5) <> Text1(6) Then
MsgBox "两次密码输入不同!", vbOKOnly, "提示" '新密码验证
Text1(5) = ""
Text1(6) = ""
Text1(5).SetFocus
Exit Sub
End If
End If
txtSQL = "select * from user_Form where user_ID='" & Trim(Text1(3)) & "' and user_PWD='" & Trim(Text1(4)) & "'" '设置查询语句
Set mAdoR = ExecuteSQL(txtSQL, MsgText) '查询数据库中是否有此用户与对应的密码
If mAdoR.EOF = False Then
txtSQL = "delete from user_Form where user_ID='" & Trim(Text1(3)) & "'" '若没有,则先设置删除语句,以备修改
Else
MsgBox "用户密码输入错误!", vbOKOnly, "警告" '否则提示出错
Text1(4).SetFocus
Exit Sub
End If
Set mAdoR = ExecuteSQL(txtSQL, MsgText) '调用函数删除
txtSQL = "select * from user_Form"
Set mAdoR = ExecuteSQL(txtSQL, MsgText)
mAdoR.AddNew
mAdoR.Fields(0) = Trim(Text1(3)) '添加新用户信息
mAdoR.Fields(1) = Trim(Text1(5))
mAdoR.Fields(2) = Now
mAdoR.Update '更新后得到"修改"的效果
mAdoR.Close
For i = 3 To 6
Text1(i) = ""
Next
MsgBox "用户信息已经修改成功!", vbOKOnly, "提示" '提示
End Sub
4 展开
Dim txtSQL As String
Dim mAdoR As ADODB.Recordset '定义变量记录集
Dim MsgText As String
If Text1(3) = "" Then
MsgBox "请先选择用户名称!", vbOKOnly, "提示" '提示信息,用户名不能修改
List1.SetFocus
Exit Sub
End If
If Text1(4) = "" Then
MsgBox "修改密码时需要旧密码,请输入!", vbOKOnly, "警告" '提示信息
Text1(4).SetFocus
Exit Sub
End If
If Text1(5) = "" Then
MsgBox "新的密码不能为空!", vbOKOnly, "提示" '提示信息
Text1(5).SetFocus
Exit Sub
Else
If Text1(5) <> Text1(6) Then
MsgBox "两次密码输入不同!", vbOKOnly, "提示" '新密码验证
Text1(5) = ""
Text1(6) = ""
Text1(5).SetFocus
Exit Sub
End If
End If
txtSQL = "select * from user_Form where user_ID='" & Trim(Text1(3)) & "' and user_PWD='" & Trim(Text1(4)) & "'" '设置查询语句
Set mAdoR = ExecuteSQL(txtSQL, MsgText) '查询数据库中是否有此用户与对应的密码
If mAdoR.EOF = False Then
txtSQL = "delete from user_Form where user_ID='" & Trim(Text1(3)) & "'" '若没有,则先设置删除语句,以备修改
Else
MsgBox "用户密码输入错误!", vbOKOnly, "警告" '否则提示出错
Text1(4).SetFocus
Exit Sub
End If
Set mAdoR = ExecuteSQL(txtSQL, MsgText) '调用函数删除
txtSQL = "select * from user_Form"
Set mAdoR = ExecuteSQL(txtSQL, MsgText)
mAdoR.AddNew
mAdoR.Fields(0) = Trim(Text1(3)) '添加新用户信息
mAdoR.Fields(1) = Trim(Text1(5))
mAdoR.Fields(2) = Now
mAdoR.Update '更新后得到"修改"的效果
mAdoR.Close
For i = 3 To 6
Text1(i) = ""
Next
MsgBox "用户信息已经修改成功!", vbOKOnly, "提示" '提示
End Sub
4 展开
2个回答
2017-01-02
展开全部
前面的那个 ExecuteSQL 返回了一个 Null。
可能是出错,也可能是 txtSQL 的执行结果为空。
贴这些代码都没用了,贴 ExecuteSQL 里面的吧。
可能是出错,也可能是 txtSQL 的执行结果为空。
贴这些代码都没用了,贴 ExecuteSQL 里面的吧。
追问
有邮箱吗 我发文本给你看下,谢谢了
追答
最好的办法是你自己跟踪调试。
发给 DNC 吧,我们是一个团队的,都一样。
展开全部
那你就得贴出 ExecuteSQ
这个自定义过程来看看了。
这个自定义过程来看看了。
更多追问追答
追问
cnn.Open ConnectStr
If InStr("INSERT,DELETE,UPDATE", UCase$(sCmd(0))) Then
cnn.Execute SQL
模块部分 自定义查询添加修改函数这没问题,我同一个程序复制过来的,一模一样的工程,同一个电脑出现了这个错误
追答
代码要贴全 这样很难判断
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询