Office中国论坛/Access中国论坛

标题: 怎样做个登录界面,然后根据登录的user来显示或者隐藏表? [打印本页]

作者: boyuanshi    时间: 2007-7-12 18:23
标题: 怎样做个登录界面,然后根据登录的user来显示或者隐藏表?
<>我想实现的效果如下:</P>
<>上来要求登录,就2个用户,admin和user,如果选择了admin显示password输入(密码写死在代码里,比如123),否则就直接点按钮进入</P>

<>如果是以user登录的话,去读一个config表,其中有所有要隐藏的表或者view的名字,隐藏它们</P>
<P>如果是以admin登录的话,就全部显示</P>

<P>谢谢,新手上路,希望大家多多关照</P>
作者: jicheng    时间: 2007-7-12 18:36
<>if 名字="admin" and password="123" then  '名字选择admin 和 密码框中是 123</P>
<>'最好建个查询窗体,登录后自动打开这些窗体,如:</P>
<>docmd.openform,"按表建的窗体"</P>
<P>end if</P>


作者: boyuanshi    时间: 2007-7-12 18:53
<>我只是为了使用者方便,不用建立表的窗体</P>
<>我就是想要admin登录之后可以看到所有的表,其他用户就看不到config表中的要隐藏的表</P>

<>还有就是窗体建立之后,编程在什么地方写? 程序倒是写过不少,但是没有用过access写过,望指点</P>

<P>谢了</P>
作者: boyuanshi    时间: 2007-7-12 19:02
<>关键是语句中怎么写隐藏表?</P>
作者: jicheng    时间: 2007-7-12 19:05
照你的思路进入到数据文件后,这些表和查询是全部可见的(因为即使隐藏也不是安全的,可以自己改成不隐藏),  除非设置安全机制(按用户设置权限)
作者: boyuanshi    时间: 2007-7-12 21:34
<DIV class=quote><B>以下是引用<I>jicheng</I>在2007-7-12 11:05:00的发言:</B><br>照你的思路进入到数据文件后,这些表和查询是全部可见的(因为即使隐藏也不是安全的,可以自己改成不隐藏),  除非设置安全机制(按用户设置权限)</DIV>
<>我只是为了user不用看到太多的表,没要求什么很高的安全控制<br>
<><br>
<>另外,我是使用:CurrentDb.TableDefs("b").Attributes = 1 来隐藏表的,b为表名<br>
<P>这样是可以隐藏的,但是要我再按一次F5,刷新一下,这个b表才会隐藏</P>
<P>怎样的语句可以实现刷新呢?</P>
<P>以上是隐藏表,如果我要隐藏query又该怎么写呢?<br></P>

[此贴子已经被作者于2007-7-12 13:45:21编辑过]


作者: 一点通    时间: 2007-7-12 21:50
<>如果要求不高,打开时直接打开窗体,用户根本是看不到表的,在启动中设置一下就可以了</P>
作者: boyuanshi    时间: 2007-7-12 21:57
<DIV class=quote><B>以下是引用<I>一点通</I>在2007-7-12 13:50:00的发言:</B><BR>
<>如果要求不高,打开时直接打开窗体,用户根本是看不到表的,在启动中设置一下就可以了</P></DIV>
<>
<>我是写了个窗体用来登录的</P>

<P>现在的情况是有上百个表,而常用的就10来个,并且用户是直接操作表的,没什么界面,表太多找起来不方便.</P>
<P>我的想法是在登录的时候用窗体来确定用户性质,</P>
<P>如果是admin就全部显示,否则就隐藏那些不需要显示的table和query</P>
作者: 一点通    时间: 2007-7-12 22:02
一般是不会这样设计程序的,你要明白一点就是"表"是作为记录数据用的,窗体是人机对话的地方,交给用户使用的是通过窗体来输入或查询数据,如果单纯用表来作为程序,已经失去数据库管理的意义
作者: boyuanshi    时间: 2007-7-12 22:10
<DIV class=quote><B>以下是引用<I>一点通</I>在2007-7-12 14:02:00的发言:</B><BR>一般是不会这样设计程序的,你要明白一点就是"表"是作为记录数据用的,窗体是人机对话的地方,交给用户使用的是通过窗体来输入或查询数据,如果单纯用表来作为程序,已经失去数据库管理的意义</DIV>
<>你说的我都理解,但是人家现在要求那样,我也没办法.
<>我现在想知道的就是如何实现</P>
作者: 一点通    时间: 2007-7-12 22:59
<>难以理解的客户要求,</P>
<>这么说只能这样了,在表的开头加上"~TMPCLP",这样用户就不能看到表了,要看到这个表再用代码将其改名</P>
<>DoCmd.Rename "新表名", acTable, "旧表名"<BR></P>
作者: hi-wzj    时间: 2007-7-12 23:18
其实在登陆后的界面上建立一个列表框来替代原界面就完了。而列表框里要显示什么表或查询那不是很简单的一件事吗?不需要那么麻烦的。




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