注册 登录
编程论坛 VB6论坛

vb+access 程序修改密码

木合塔尔 发布于 2017-04-01 17:52, 3960 次点击
我想做一个程序可一直不能修改密码,我刚开始学的vb,所以不知道怎么改下面的代码,求各位高手帮忙改一下!!!!!!(Set rs = Execute(txtsql, msgtext)就这里出问题啦,说子程序或函数未定义!!!!!!
Private Sub Command1_Click()
Dim conn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim txtsql As String

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\stu.mdb"
   
    txtsql = "Select * from 用户信息表 where username='" & Text1.Text & "'"
Set rs = Execute(txtsql, msgtext)
If rs.EOF Then
MsgBox "没有这个用户,请重新输入!", vbOKOnly
Exit Sub
End If
If Text3.Text <> Text4.Text Then
MsgBox "两次输入密码不一致!请重新输入.", vbOKOnly
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text2.SetFocus
Exit Sub
End If
If Text2.Text <> rs.Fields(1) Then
MsgBox "原密码输入不正确,请重新输入!", vbOKOnly
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text2.SetFocus
Else
If MsgBox("确定要更改密码吗?", vbYesNo + vbExclamation, "警告") = vbOK Then
txtsql = "update 用户信息表 set Pwd='" & Text3.Text & "' where username='" & Text1.Text & "'"
Set rs = ExecuteSQL(txtsql, msgtext)
MsgBox "更改成功!", vbOKOnly
Text2.Text = ""
Text1.Text = ""
Text3.Text = ""
Text4.Text = ""
Text1.SetFocus
txtsql.updata
Exit Sub
End If
Exit Sub
End If

End Sub
6 回复
#2
xzlxzlxzl2017-04-01 20:03
sql语句修改如下试试:
txtsql = "update 用户信息表 set Pwd='" & Text3.Text & "' from 用户信息表 where username='" & Text1.Text & "'"
#3
木合塔尔2017-04-02 14:43
回复 2楼 xzlxzlxzl
试过啦,还是不行,(Executesql) 子程序或函数未定义
#4
Artless2017-04-03 14:27
Set rs = Execute(txtsql, msgtext)就这里出问题啦,说子程序或函数未定义!!!!!!

还是不行,(Executesql) 子程序或函数未定义

#5
xzlxzlxzl2017-04-03 17:38
Set rs = Execute(txtsql, msgtext)修改为Set rs = conn.Execute(txtsql)
实在不知道你Execute函数是怎么写的,msgtext是什么。conn.Execute方法就可以执行sql命令,返回的是记录集快照,不支持游标。
#6
ZHRXJR2017-04-04 13:41
程序代码:
Dim conn As New ADODB.Connection, rs As New ADODB.Recordset, txtsql As String       '数据库对象与记录集对象定义应该这样
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\stu.mdb;Persist Security Info=False"  ' 连接数据库
    txtsql = "Select * from 用户信息表 where username='" & Text1.Text & "'"
rs.Open txtsql, conn, 3, 2
If rs.EOF = True Then
MsgBox "没有这个用户,请重新输入!", vbOKOnly
rs.Close
conn.Close
Exit Sub
ElseIf Text2.Text <> rs!Pwd Then   '标号方式查询容易出错,使用字段名比较合理
MsgBox "原密码输入不正确,请重新输入!", vbOKOnly
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text2.SetFocus
rs.Close
conn.Close
Exit Sub
End If
rs.Close
If Text3.Text <> Text4.Text Then
MsgBox "两次输入密码不一致!请重新输入.", vbOKOnly
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text2.SetFocus
Exit Sub
End If
If MsgBox("确定要更改密码吗?", 33, "警告") = 1 Then
txtsql = "select * from 用户信息表 where Pwd='" & Text3.Text & "' and  username='" & Text1.Text & "'"
rs.Open txtsql, conn, 3, 2
rs!Pwd = Text3.Text   '搞不清你的密码字段是不是叫 Pwd,如果是就没有问题,如果不是修改正确的密码字段名称
rs.Update
rs.Close
conn.Close
MsgBox "密码修改成功!"
End If

用我的数据库调试了,没有问题,上面的代码已经修改为你的数据库与数据表了。
#7
i741262017-04-14 12:45
回复 6楼 ZHRXJR
感谢,学习了!
1