Access交流中心

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

回复 加入收藏帖  复制
我要提问 帖子上移

[5分]VBA登录窗体总是提示 “输入密码有误” 实际输入密码是正确的。

丁先生 等级: 贵宾★★★★★ 积分:100 金币:0 来自:上海Access交流中心 发表于:2019-05-21 21:13:27   已结帖
楼主

一个登录窗体,运行时输入密码后 总是提示 "输入密码有误,请重新输入"

实际上密码是正确的密码,和 ”用户密码表“” 里的密码是对应的上!

请问是什么原因???VBA命令如下:


Private Sub OK_Click()



If IsNull(Me.Combo29) Then
MsgBox "用户名不能为空", vbOKOnly, "提示"
Me.Combo29.SetFocus
Exit Sub
End If


If IsNull(Me.Password) Then
MsgBox "密码不能为空", vbOKOnly, "提示"
Me.Password.SetFocus
Exit Sub
End If


If Me.Password.Value = DLookup("密码", "用户密码表", "[用户名]= '" & Me.Combo29 & " '") Then
DoCmd.Close acForm, Me.Name
DoCmd.OpenForm "主页"
Else
MsgBox "输入密码有误,请重新输入", vbOKOnly, "出错"
Me!Password.SetFocus
Exit Sub
End If
End Sub


 

access培训  诚聘access开发人员

    丁先生
      获得社区协助:请教问题(即发帖)6篇,其中获得解决的4篇;
      协助社区成员:协助他人(即回帖)0篇,其中被设为【最佳答案】的0篇;
      协助我们社区:发布技术文章0篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
Top

扫描下方工作人员的微信二维码加微信,邀您加入Access课堂微信群,进入一个技术交际圈:

网站工作人员微信

半夜罗 等级:一星会员 积分:206 金币:1240 来自:成都Access交流中心 发表于2019/5/22 13:02:52 
1楼 得分: 0

DoCmd.OpenForm "主页"'先打开

DoCmd.Close acForm, Name'后关闭

不是先关闭后打开

Exit Sub'不需要这句代码



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    半夜罗
      获得社区协助:请教问题(即发帖)67篇,其中获得解决的59篇;
      协助社区成员:协助他人(即回帖)60篇,其中被设为【最佳答案】的16篇;
      协助我们社区:发布技术文章31篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
丁先生 等级:贵宾★★★★★ 积分:100 金币:0 来自:上海Access交流中心 发表于2019/5/23 11:29:03 
2楼 得分: 0

我按照你的帖子修改了相关语句,可是还是显示同样的错误。点击下载此附件


示例数据库文件附后供参考,请回复。多谢!



    丁先生
      获得社区协助:请教问题(即发帖)6篇,其中获得解决的4篇;
      协助社区成员:协助他人(即回帖)0篇,其中被设为【最佳答案】的0篇;
      协助我们社区:发布技术文章0篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
yuhong 等级:一星会员 积分:124 金币:840 来自:天津Access交流中心 发表于2019/5/23 16:31:51 
3楼 得分: 0
我用过的,你试试点击下载此附件

    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    yuhong
      获得社区协助:请教问题(即发帖)5篇,其中获得解决的3篇;
      协助社区成员:协助他人(即回帖)145篇,其中被设为【最佳答案】的31篇;
      协助我们社区:发布技术文章21篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
半夜罗 等级:一星会员 积分:206 金币:1240 来自:成都Access交流中心 发表于2019/5/23 17:26:02 最佳答案
4楼 得分: 5

修改这句就对了,因为你的“用户名”文本框取的是2列,看起来是中文,实际上是数字,所以把“DLookup”获取的值用“Val”函数格式化成数字。

If Me.Password = Val(DLookup("密码", "用户密码表", "[用户id]= " & Me.Combo29)) Then

'DoCmd.OpenForm "主页"



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    半夜罗
      获得社区协助:请教问题(即发帖)67篇,其中获得解决的59篇;
      协助社区成员:协助他人(即回帖)60篇,其中被设为【最佳答案】的16篇;
      协助我们社区:发布技术文章31篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
丁先生 等级:贵宾★★★★★ 积分:100 金币:0 来自:上海Access交流中心 发表于2019/5/25 13:36:35 
5楼 得分: 0
多谢 半夜罗 大师!按照你上面的帖子做了修改,终于成功了!你点出了问题的实质!已经给你加了5分!

    丁先生
      获得社区协助:请教问题(即发帖)6篇,其中获得解决的4篇;
      协助社区成员:协助他人(即回帖)0篇,其中被设为【最佳答案】的0篇;
      协助我们社区:发布技术文章0篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
丁先生 等级:贵宾★★★★★ 积分:100 金币:0 来自:上海Access交流中心 发表于2019/5/25 14:11:58 
6楼 得分: 0
但是我还有一个小疑问 DLookup("密码", "用户密码表", "[用户id]= " & Me.Combo29) 这个语句返回的值(密码) 本身就是一个数字, 因为我 在用户密码表里 密码字段 的 属性是 数字,所以不用再加 VAL 函数 格式化成数字。我刚才去掉 VAL, 结果不行。看来我的上述想法是错误的,请告诉我我的上述想法错在哪里吗?

    丁先生
      获得社区协助:请教问题(即发帖)6篇,其中获得解决的4篇;
      协助社区成员:协助他人(即回帖)0篇,其中被设为【最佳答案】的0篇;
      协助我们社区:发布技术文章0篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
总记录:6篇  页次:1/1 9 1 :
您还没有在Access软件网登录不能回复帖子
  • 你没有登录,请点击后面链接登录:登录
  • 如果你没有注册,请点击后面链接注册:注册,注册完成后,请再次访问本页功能。