Office中国论坛/Access中国论坛

标题: [求助]验证密码执行一个命令 [打印本页]

作者: zx1688    时间: 2005-3-6 02:05
标题: [求助]验证密码执行一个命令
[attach]9211[/attach]

你好,我找到了不能发帖子的原因,原来是我的诺顿防火墙的原因。

现在有两问题求教:

DB1:我在增加窗体更新前加了名称简称不能为空的代码,现增加一个供应商,假设名称没填的话,点右上角的叉叉正常运行,但是点下面的“刷新”却不行,出现错误提示:3021,无当前记录。不知为什么?

DB2:因为取消结帐属于非正常操作,我想在运行前,有一个窗体出现,要求输入正在登陆用户的登陆密码进行验证,对了,就可以操作,不对则不能。好多财务软件都是这样做的。

谢谢![em07]

[此贴子已经被作者于2005-3-5 19:48:34编辑过]


作者: 情比金坚    时间: 2005-3-6 04:12
DB1的刷新按钮增加错误陷阱:Private Sub Command18_Click()

On Error GoTo Err_Command18_Click

    DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70Exit_Command18_Click:

    Exit SubErr_Command18_Click:

    MsgBox Err.Description

    Resume Exit_Command18_Click

End SubDB2用INPUTBOX()函数就应该可以啦。
作者: zx1688    时间: 2005-3-6 04:28
你好!谢谢!这样更好些。On Error GoTo Err_Command18_Click

DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70

Forms!供应商资料设置窗体!供应商资料表子窗体.Form.Requery

Exit_Command18_Click:

Exit Sub

Err_Command18_Click:

    'MsgBox Err.Description

Resume Exit_Command18_Click'DoCmd.RunCommand acCmdSaveRecord

End Sub这样就可以立即把新增的记录显示在主窗体里,而不需要退出再打开才显示。请问第二个问题函数要加在哪个地方?
作者: 情比金坚    时间: 2005-3-6 04:48
那就这样:Private Sub Command18_Click()

On Error GoTo Err_Command18_Click

DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

Exit_Command18_Click:

Exit Sub

Err_Command18_Click:

   

Resume Exit_Command18_Click在这个地方:If (MsgBox("是否取消本月结帐?", 4 + 32 + 0, "存货核算系统") = 6) Then

If InputBox("请输入密码") = DLookup("[登陆密码]", "用户表", "[编号] = '100'") Then
作者: 情比金坚    时间: 2005-3-6 04:53
《专家门珍——ACCESS开发答疑200问》你买了吗?很值得呀。
作者: zx1688    时间: 2005-3-6 05:22
谢谢!没有买,李寻欢说送一本我,但没时间去拿。密码是指登陆的用户密码,不一定是“100”,那么100改成什么呢?
作者: zx1688    时间: 2005-3-6 05:48
你好!我这样做:If InputBox("请输入密码") = DLookup("[登陆密码]", "用户表", "[编号] = DLookup('参数4', '系统参数表', '[项目]='登陆用户'')") Then  结果提示:错误3075,操作符丢失。请赐教!
作者: 情比金坚    时间: 2005-3-6 06:15
以下是引用zx1688在2005-3-5 21:21:50的发言:



谢谢!没有买,李寻欢说送一本我,但没时间去拿。

密码是指登陆的用户密码,不一定是“100”,那么100改成什么呢?

这样也行?

[em03]

那王宇虹应该送我一本!

你如果是用access工作组登录的,那就=UserName

记得你是自己做的登录窗体,这样在登录时把登录姓名记在公共变量里,方便以后调用,其实我习惯在登录后把登录窗体隐藏而不是关闭,这样也很方便,还可以把其它的一些代码也写在这个窗体上,比如退出提示。

另,InputBox还有很多的参数,你参看一下帮助。


作者: zx1688    时间: 2005-3-6 18:47
你好,王宇虹应该送一本你啊!用户登陆我是用“参数”表来记录的,退出系统提示我是在“程序”背景卸载事件加入的。你说的隐藏登陆窗体办法也很好。我把代码改成这个样子就行了,原来是标点符号打错了。If InputBox("请输入您的登陆密码") = DLookup("[登陆密码]", "用户表", "[编号] = DLookUp(""参数4"",""系统参数表"",""[项目]='登陆用户'"")") Then。。。。。Else

MsgBox "对不起,您的密码不对,不能取消结帐!", vbExclamation, "存货核算系统"

End IfInputBox的确有很多的参数,我想把标题改成“存货核算系统”,输入密码时显示为*****。我正在看帮助,不行又要麻烦你了。谢谢!
作者: zx1688    时间: 2005-3-6 19:28
你好,标题已搞定。但输入密码的地方还是不能用***号显示,你有办法吗?
作者: 静儿    时间: 2005-3-6 21:55
InputBox("请输入您的登陆密码")   取消掉,用自定义的窗体,里面是文本框来代替,就能显示为星号
作者: zx1688    时间: 2005-3-6 22:45
你的意思是说InputBox函数不能把密码设成星号?还是怎么的?自定义做一个可以,我库里本身就有,但用在取消结帐里,进度条功能就不能用啊
作者: 情比金坚    时间: 2005-3-7 00:32
自定义就得做成类模块了。我还不会,寻欢一定会!我只能教一个比较土的方案:你的密码验证框也做在[取消结帐]窗体里,平时是不可见的,按按钮后显示出来,而背后提示文字隐藏,再判断是否有效来进行下一步操作。
作者: zx1688    时间: 2005-3-7 01:06
标题: [求助]
[attach]9223[/attach]

你好,按你的意思做了一个,但不执行代码啊,你看看错在哪?谢谢!
作者: 情比金坚    时间: 2005-3-7 02:20
[attach]9225[/attach]


作者: zx1688    时间: 2005-3-7 03:28
你好!效果非常好。但是命令22和Command14两者是什么关系呢?Command14怎么不见了呢?




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3