Access数据库,想用Vb做一个修改密码的窗体,出现两个bug,求高手指教
修改密码窗体是以“用户”表为基础设置的,用户表包括这么几个字段:ID,用户名,密码修改密码窗体有这么几个控件,“用户名”选择列表框(列表框名称yhm),“旧密码”文本框(...
修改密码窗体是以“用户”表为基础设置的,用户表包括这么几个字段:ID,用户名,密码
修改密码窗体有这么几个控件,“用户名”选择列表框(列表框名称yhm),“旧密码”文本框(名称jmm),“新密码”文本框(xmm),“确认密码”文本框(qr)和“确定”按钮。以下是“确定”按钮的代码:
Private Sub 确定_Click()
Dim ai, aj, temp3, temp4
ai = "[用户名]='" & yhm & "'"
aj = "[密码]='" & jmm & "'"
temp3 = 0
temp4 = 1
temp3 = DLookup("ID", "用户", ai)
temp4 = DLookup("ID", "用户", aj)
If temp3 = temp4 Then
If Nz(xmm) = Nz(qr) Then
DoCmd.RunSQL "UPDATE 用户 SET 密码=" & xmm & " WHERE 用户名=[forms]![修改密码]![yhm]"
MsgBox xzh & "密码修改成功"
Else
MsgBox "新密码和确认密码不一致,不能修改密码"
End If
Else
MsgBox "旧密码输入有误"
End If
End Sub
出现的bug1:按规定输入各控件内容,点确定后修改了某个用户的密码,关闭该窗体,再打开“用户”表发现表中第一个用户的用户名被改成了刚刚将其密码修改了的用户的用户名(比如,第一个用户的用户名是“aaa”,修改了“bbb”用户的密码,关闭窗体再打开表后第一个用户的用户名变成了“bbb”)
bug2:有时在输入了新密码并确认后,弹出一个“输入参数值”对话框,对话框正文的内容就是我刚输入的新密码的内容,然后下面有个文本框要我把这个新密码再输入一遍
就是这两个问题,求各位大神帮帮忙!问题比较紧急(毕设快要结题了)!多谢! 展开
修改密码窗体有这么几个控件,“用户名”选择列表框(列表框名称yhm),“旧密码”文本框(名称jmm),“新密码”文本框(xmm),“确认密码”文本框(qr)和“确定”按钮。以下是“确定”按钮的代码:
Private Sub 确定_Click()
Dim ai, aj, temp3, temp4
ai = "[用户名]='" & yhm & "'"
aj = "[密码]='" & jmm & "'"
temp3 = 0
temp4 = 1
temp3 = DLookup("ID", "用户", ai)
temp4 = DLookup("ID", "用户", aj)
If temp3 = temp4 Then
If Nz(xmm) = Nz(qr) Then
DoCmd.RunSQL "UPDATE 用户 SET 密码=" & xmm & " WHERE 用户名=[forms]![修改密码]![yhm]"
MsgBox xzh & "密码修改成功"
Else
MsgBox "新密码和确认密码不一致,不能修改密码"
End If
Else
MsgBox "旧密码输入有误"
End If
End Sub
出现的bug1:按规定输入各控件内容,点确定后修改了某个用户的密码,关闭该窗体,再打开“用户”表发现表中第一个用户的用户名被改成了刚刚将其密码修改了的用户的用户名(比如,第一个用户的用户名是“aaa”,修改了“bbb”用户的密码,关闭窗体再打开表后第一个用户的用户名变成了“bbb”)
bug2:有时在输入了新密码并确认后,弹出一个“输入参数值”对话框,对话框正文的内容就是我刚输入的新密码的内容,然后下面有个文本框要我把这个新密码再输入一遍
就是这两个问题,求各位大神帮帮忙!问题比较紧急(毕设快要结题了)!多谢! 展开
1个回答
展开全部
Private Sub 确定_Click()
Dim ai, aj, temp3, temp4
ai = "[用户名]='" & yhm & "'"
aj = "[密码]='" & jmm & "'"
temp3 = 0
temp4 = 1
temp3 = DLookup("ID", "用户", ai)
temp4 = DLookup("ID", "用户", aj)
If temp3 = temp4 Then
If Nz(xmm) = Nz(qr) Then
DoCmd.RunSQL "UPDATE 用户 SET 密码='" & xmm & "' WHERE 用户名='" & [forms]![修改密码]![yhm] & "'"
MsgBox xzh & "密码修改成功"
Else
MsgBox "新密码和确认密码不一致,不能修改密码"
End If
Else
MsgBox "旧密码输入有误"
End If
End Sub
更多追问追答
追问
亲,那个……bug2解决了,可是bug1仍然存在……还有,“where用户名”后面双引号里面那两个&是做什么用的啊
追答
Private Sub 确定_Click()
Dim ai, aj, temp3, temp4
ai = "[用户名]='" & yhm & "'"
aj = "[密码]='" & jmm & "'"
temp3 = ai+" and "+aj
temp4 = DLookup("ID", "用户", temp3)
If not isnull(temp4) Then
If Nz(xmm) = Nz(qr) Then
DoCmd.RunSQL "UPDATE 用户 SET 密码='" & xmm & "' WHERE ID=" & temp4
MsgBox xzh & "密码修改成功"
Else
MsgBox "新密码和确认密码不一致,不能修改密码"
End If
Else
MsgBox "旧密码输入有误"
End If
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询