Office中国论坛/Access中国论坛

标题: 求助!关于权限查询的问题 [打印本页]

作者: sammyang    时间: 2011-2-19 01:52
标题: 求助!关于权限查询的问题
表结构:
列:  ID,  合同号,申请人,
行: 1     PI001      A君
         2     PI002     B君
         3     PI003     A君


一般,在建立上面表的查询时,如果想只列出 A君的合同,就会把条件 设为A君就行了,

但是我想根据登录名称去作为条件,也就是说,a君登录系统了,这个查询就会显示A君的合同。相同B君登录系统的时候,这个查询就显示B君的合同,也就是这个查询的条件是外部的,而不是在查询里的。

应该怎样去做这个条件呢?我怎样都想不到办法,参考了好多例子和相关书籍都没有解决。

本人正在构思一个解决的办法,不知道能不能行得通,就是建立一个表作为中介,当登录系统后,把登录者的名字copy到这个表中,然后以这个表和刚才的表联合一起查询应该可以解决。当退出系统的时候,删除那个表里面的记录

请问各位高人,这个方法能行吗?如何上面的办法行得通,应该怎样做呢?有没有现有的办法解决以上的问题呢?



作者: roych    时间: 2011-2-19 02:20
本帖最后由 roych 于 2011-2-19 02:39 编辑

其实,你可以这样考虑,登录后把登录窗体隐藏起来(这时候窗体仍然是打开的),然后用Dlookup函数去查找用户的合同。例如Dlookup("合同","合同表","申请人='"&forms!登录窗体!登录用户名&"'"),或者干脆就直接引用隐藏窗体的用户作为条件来做查询(详细参考附上的实例)。
[attach]44865[/attach]

作者: sammyang    时间: 2011-2-19 11:34
谢谢roych,我尝试一下,非常感谢你的热心帮忙!
作者: sammyang    时间: 2011-2-19 12:31
延伸问题,就是这个条件,能不能用IIF语句做条件的?
作者: roych    时间: 2011-2-19 13:06
是查询里的条件吗?那当然是可以的,但是,既然已经开了登录窗体,就固定了是登录用户了,为什么还要用if呢?
作者: sammyang    时间: 2011-2-19 14:38
这里涉及到一个部门权限的问题了,因为虽然自己能看自己的合同,但是如果像老板,他应该是全权限的,他就可能可以查看所有人的资料了,这样就要用条件语句去显示了,我想问一下,iif语句是不是和excel vba的语句一样的呢?
作者: tzk    时间: 2011-2-19 15:58
可以使用IIF的。
作者: USB礼品厂家    时间: 2019-4-16 17:46
最简单的方法,针对不同用户,用宏来判断,当currentuser()="A君”时,运行A君对应的查询。




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