Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

一个密码修改的代码,为什么不能用的?

Access leev  发表于:2013-11-29 10:52:22  
复制

点击下载此附件

 

Private Sub Command5_Click()
  On Error GoTo err
    If Text9 = DLookup("[密码]", "admin", "[用户名]= " & "'" & Me.Text7 & "'") Then
If IsNull([Text1]) Or IsNull([Text2]) Then
            MsgBox "对不起,旧密码输入错误,不能更改密码", vbSystemModal + vbExclamation + vbOKOnly, "警告"
            Me.Text9.SetFocus
        Else
        If Nz(Me.Text9) = "" Then
        MsgBox "请输入旧密码!", vbCritical, ""
        Me.Text9.SetFocus
        Exit Sub
    End If
If IsNull(Text1) Then
MsgBox "请输入新密码", vbCritical, "提示"
End If
If IsNull(Text2) Then
MsgBox "请再次输入新密码", vbCritical, "提示"
End If
        If Text1 <> Text2 Then
MsgBox "两次输入不一致", vbCritical, "错误"
Text1.SetFocus
Text1 = ""
Text2 = ""
End
           DoCmd.SetWarnings False
                DoCmd.RunSQL "Update admin SET admin.密码=Text2 where  admin.密码=" & "'" & Me.Text7 & "'"
                MsgBox "Password has Update,Please Remember it", vbInformation + vbSystemModal + vbOKOnly, "Message"
                Me.Text9 = Null: Me.Text1 = Null: Me.Text2 = Null
                DoCmd.SetWarnings True
            End If
        End If
         End If
    Exit Sub
err:
    MsgBox err.Description, vbInformation + vbExclamation, "Error"
End Sub
Private Sub Command6_Click()
Me.Visible = False
DoCmd.OpenForm "登陆"
End Sub

 


 

 

Top
123木头人 发表于:2013-11-29 11:22:53

DoCmd.RunSQL "Update admin SET admin.密码=Text2 where  admin.密码=" & "'" & Me.Text7 & "'"

密码 改成 用户名对应的字段

旧密码为空的判断建议放在判断旧密码错误前面。




smileyoufu 发表于:2013-11-29 11:22:55

请打开下面的链接,使用这个开发平台吧。ACCESS版本还是免费的,很多功能都不需要你写代码的。

 

http://www.accessgood.com/index.html

 

做登录窗体,权限管理,密码验证……这些几乎是每个系统都要涉及的问题,一句经典名言总结“请不要再发明相同的轮子了”,所以有现成的轮子的话,请直接使用即可,而必须自己去造个轮子。除非你是想学习造轮子的方法。



123木头人 发表于:2013-11-29 11:55:05

刚刚细看了一下你的代码,发现是杂乱无章的,思路是乱七八糟的,程序代码讲的是流程,这样乱也能用的话,那是你运气好:


Private Sub Command5_Click()
  On Error GoTo err
    If Nz(Me.Text7) = "" Then    '首先一定要指定用户名
        MsgBox "请输入用户名!", vbCritical, ""
        Me.Text9.SetFocus
        Exit Sub
    End If
    If Nz(Me.Text9) = "" Then    '2旧密码不能为空
        MsgBox "请输入旧密码!", vbCritical, ""
        Me.Text9.SetFocus
        Exit Sub
    End If
    If IsNull(Text1) Then        '3新密码不能为空
        MsgBox "请输入新密码", vbCritical, "提示"
        Me.Text1.SetFocus
        Exit Sub
    End If
    If IsNull(Text2) Then        '4确认密码不能为空
        MsgBox "请再次输入新密码", vbCritical, "提示"
        Me.Text2.SetFocus
        Exit Sub
    End If
    If Text1 <> Text2 Then        '5新密码和确认密码相同确认
        MsgBox "两次输入不一致", vbCritical, "错误"
        Text1.SetFocus
        Text1 = ""
        Text2 = ""
    End If
    If Text9 = DLookup("[密码]", "admin", "[用户名]= " & "'" & Me.Text7 & "'") Then'6旧密码正确执行密码更新动作
           DoCmd.SetWarnings False
                DoCmd.RunSQL "Update admin SET admin.密码=Text2 where  admin.用户名=" & "'" & Me.Text7 & "'"
                MsgBox "Password has Update,Please Remember it", vbInformation + vbSystemModal + vbOKOnly, "Message"
                Me.Text9 = Null: Me.Text1 = Null: Me.Text2 = Null
                DoCmd.SetWarnings True
    Else    '7密码不正确跳出提示
    
            MsgBox "对不起,旧密码输入错误,不能更改密码", vbSystemModal + vbExclamation + vbOKOnly, "警告"
            Me.Text9.SetFocus
    End If
Exit Sub
err:
    MsgBox err.Description, vbInformation + vbExclamation, "Error"
End Sub




Access leev 发表于:2013-11-29 11:56:29

更改了,还是不行呀



smileyoufu 发表于:2013-11-29 12:02:08


123木头人 发表于:2013-11-29 12:02:14
按我修改的代码更改了要是还不行,那我就投降88了,因为我发布出来前是调试过确保能用的。

Access leev 发表于:2013-11-29 12:02:32

谢谢

 



smileyoufu 发表于:2013-11-29 13:24:44
因为木头没有将Me.Text7 修改为Me.Text9   更新查询找不到对应的控件的值,当然就更新不成功。

总记录:8篇  页次:1/1 9 1 :