Office中国论坛/Access中国论坛

标题: 简单的对数据表指定的行中的2到20列的数据比对一遍 [打印本页]

作者: cycad    时间: 2007-11-10 00:38
标题: 简单的对数据表指定的行中的2到20列的数据比对一遍
如题,

现有一数据表,结构如图,[attach]26863[/attach]

登陆后,用户名是一定的,表中列标题1-10对应相应的菜单,想对这几列循环一遍,以此对没有权限的菜单进行控制,不知道怎么读取列,谁能指点一下,感激不尽,主要是每添加一个菜单就要添加一行判断语句太麻烦了,所以想这样做,搞了半天还是没明白

If DLookup("列标签", "表名", "用户名='" & CurrentName & "'") = False Then
            Visible = False
Else
            Visible = True
End If
作者: xianbin555    时间: 2007-11-10 20:40
将1—10控件的TAG(标记)设置为key (或任意)输入:
for   each   control    in    me.controls
if     control.tag="key"  then
If DLookup(control.name, "表名", "用户名='" & CurrentName & "'") = False Then
            Visible = False
Else
            Visible = True
End If
end if
next
作者: cycad    时间: 2007-11-10 22:12
谢谢xianbin555

还请再给看看,运行是变量未定义,看了帮助,不很明白,对这个的使用,我吧实例传上来,应为我再2007下弄的,所以我只把连接表和这个模块给提了出来,弄成了2000格式的。函数再模块的最下面一个

谢谢

[ 本帖最后由 cycad 于 2007-11-10 22:47 编辑 ]
作者: cycad    时间: 2007-11-10 22:48
最近打开这里的网页超级慢,还总连不上,但是别的网站没问题,郁闷
作者: xianbin555    时间: 2007-11-11 09:46
ACCESS2007下的程序代码在ACCESS2000下是不兼容的,试试:
Public Sub OnGetVisible01(ctl As Control, ByRef Visible)
ctl   as   IRibbonControl在ACCESS2000下认不出来
ctl   as  control     在access2000下是标准的控件引用
作者: cycad    时间: 2007-11-11 18:01
Controls 集合包含窗体、报表或子窗体中以及另一控件中或附加到另一控件的所有控件 (控件:允许用户控制程序的图形用户界面对象,如文本框、复选框、滚动条或命令按钮等。可使用控件显示数据或选项、执行操作或使用户界面更易阅读。)。Controls 集合是 Form、Report 和 SubForm 对象的成员

这是帮助里面的原文,好像这个不能用在表上面吧,用户的权限存在一个链接表里面的,ctl   as   IRibbonControl 这个是不能改掉的,传递的是07下功能区菜单的参数的,去掉或者更改就运行不了,

在登陆界面点登陆的时候,加载功能区菜单时加载的这个函数的。运行的时候只是提示Control变量未定义,
作者: cycad    时间: 2007-11-11 18:40
顺便说明,俺是一个菜鸟,呵呵
作者: cycad    时间: 2007-11-11 19:02
解决了,非常感谢xianbin555

最后正确的是这样的,我是笨了,查资料发现功能区有tag属性的,直接引用然后,读取值就好了,循环都不需要的,
Public Sub OnGetVisible1(ctl As IRibbonControl, ByRef Visible)

            If DLookup(ctl.Tag, "userlist", "username='" & CurrentName & "'") = False Then
                Visible = False
            Else
                Visible = True
            End If

   
End Sub
作者: pengkuo    时间: 2007-11-13 00:44
不错的例子哦!有学习的必要啊!!




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