以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教老师为什么Tables("人员表")并没有被锁定  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=65931)

--  作者:lzzhx
--  发布时间:2015/3/25 21:15:00
--  请教老师为什么Tables("人员表")并没有被锁定
请教老师:
人员表 - AfterLoadTableSetting  事件中,全局变量 _UserGroup = “‘其它操作人员’”

下面代码执行后,Tables("人员表")并没有被锁定,请教问题出在什么地方?
\'确定表及记录的编辑权限
If _UserGroup = "系统管理员" Then
    With  Tables("人员表")
        .AllowEdit = True
        .Cols("用户分组").AllowEdit = True
        .Cols("用户姓名").AllowEdit = True
        .Cols("部门编号").AllowEdit = False
        .Cols("部门编号").Visible = True
        .Cols("部门").AllowEdit = False
        .Cols("用户密码").AllowEdit = True
        .Cols("创建者ID").AllowEdit = False
        .Cols("创建者名称").AllowEdit = False
        .Cols("已登录").Visible = True
        .Cols("编辑者").Visible = True
        .Cols("编辑者").AllowEdit = False
        .Cols("IP地址").AllowEdit = False
        .Cols("IP地址").Visible = True
        .Cols("范围").Visible = True
    End With
Else
    If _UserGroup Like "*管理员*"  Then
        With  Tables("人员表")
            .AllowEdit = True
            .Cols("用户分组").AllowEdit = True
            .Cols("用户姓名").AllowEdit = True
            .Cols("部门编号").AllowEdit = False
            .Cols("部门编号").Visible = True
            .Cols("部门").AllowEdit = False
            .Cols("用户密码").AllowEdit = False
            .Cols("创建者ID").AllowEdit = False
            .Cols("创建者名称").AllowEdit = False
            .Cols("已登录").Visible = False
            .Cols("编辑者").Visible = False
            .Cols("编辑者").AllowEdit = False
            .Cols("IP地址").AllowEdit = False
            .Cols("IP地址").Visible = False
            .Cols("范围").Visible = False
        End With
     Else
             e.Table.AllowEdit = False
           \' .Cols("用户分组").AllowEdit = False
           \' .Cols("用户姓名").AllowEdit = False
           \' .Cols("部门编号").AllowEdit = False
           \' .Cols("部门编号").Visible = True
           \' .Cols("部门").AllowEdit = False
           \' .Cols("用户密码").AllowEdit = False
           \' .Cols("创建者ID").AllowEdit = False
           \' .Cols("创建者名称").AllowEdit = False
           \' .Cols("已登录").Visible = False
           \' .Cols("编辑者").Visible = False
           \' .Cols("编辑者").AllowEdit = False
           \' .Cols("IP地址").AllowEdit = False
           \' .Cols("IP地址").Visible = False
           \' .Cols("范围").Visible = False
       \' End With
    End If
End If

--  作者:有点甜
--  发布时间:2015/3/25 21:18:00
--  
  代码没有问题,你单独在命令窗口运行代码是否有效?
--  作者:lzzhx
--  发布时间:2015/3/25 21:19:00
--  
后来在倒数第4行增加了一个消息框,发现每次打开窗口,消息框要弹出2次,好象 AfterLoadTableSetting事件的代码执行了2次似的,但表就是不锁定。
--  作者:lzzhx
--  发布时间:2015/3/25 21:20:00
--  
没有在命令窗口试过,但设置属性时可以锁定
--  作者:有点甜
--  发布时间:2015/3/25 21:21:00
--  
以下是引用lzzhx在2015/3/25 21:19:00的发言:
后来在倒数第4行增加了一个消息框,发现每次打开窗口,消息框要弹出2次,好象 AfterLoadTableSetting事件的代码执行了2次似的,但表就是不锁定。

 

单独执行

 

DataTables("人员表").AllowEdit = False

 

------------------

 

应该是你表名写错了,注意是不是副本表。


--  作者:lzzhx
--  发布时间:2015/3/25 21:24:00
--  
在命令窗口执行后表锁定了。
不是副本表

--  作者:有点甜
--  发布时间:2015/3/25 21:26:00
--  

 直接去afteropenproject写入代码,有可能是你其它地方重新设置了其可以编辑了。

 

DataTables("人员表").AllowEdit = False


--  作者:lzzhx
--  发布时间:2015/3/25 21:26:00
--  
同样的代码,在命令窗口执行后表就锁定了,但放在 AfterLoadTableSetting事件中表就锁不住
--  作者:有点甜
--  发布时间:2015/3/25 21:27:00
--  

 呃,肯定是你其它地方重新设置了其可以编辑了。


--  作者:lzzhx
--  发布时间:2015/3/25 21:32:00
--  
加了1个消息框,执行后出现2次消息框,程序执行了2遍,就是找不到原因



\'确定表及记录的编辑权限
If _UserGroup = "系统管理员" Then
    With  Tables("人员表")
        .AllowEdit = True
        .Cols("用户分组").AllowEdit = True
        .Cols("用户姓名").AllowEdit = True
        .Cols("部门编号").AllowEdit = False
        .Cols("部门编号").Visible = True
        .Cols("部门").AllowEdit = False
        .Cols("用户密码").AllowEdit = True
        .Cols("创建者ID").AllowEdit = False
        .Cols("创建者名称").AllowEdit = False
        .Cols("已登录").Visible = True
        .Cols("编辑者").Visible = True
        .Cols("编辑者").AllowEdit = False
        .Cols("IP地址").AllowEdit = False
        .Cols("IP地址").Visible = True
        .Cols("范围").Visible = True
    End With
Else
    If _UserGroup Like "*管理员*"  Then
        With  Tables("人员表")
            .AllowEdit = True
            .Cols("用户分组").AllowEdit = True
            .Cols("用户姓名").AllowEdit = True
            .Cols("部门编号").AllowEdit = False
            .Cols("部门编号").Visible = True
            .Cols("部门").AllowEdit = False
            .Cols("用户密码").AllowEdit = False
            .Cols("创建者ID").AllowEdit = False
            .Cols("创建者名称").AllowEdit = False
            .Cols("已登录").Visible = False
            .Cols("编辑者").Visible = False
            .Cols("编辑者").AllowEdit = False
            .Cols("IP地址").AllowEdit = False
            .Cols("IP地址").Visible = False
            .Cols("范围").Visible = False
        End With
     Else
            Tables("人员表").AllowEdit = False
           \' .Cols("用户分组").AllowEdit = False
           \' .Cols("用户姓名").AllowEdit = False
           \' .Cols("部门编号").AllowEdit = False
           \' .Cols("部门编号").Visible = True
           \' .Cols("部门").AllowEdit = False
           \' .Cols("用户密码").AllowEdit = False
           \' .Cols("创建者ID").AllowEdit = False
           \' .Cols("创建者名称").AllowEdit = False
           \' .Cols("已登录").Visible = False
           \' .Cols("编辑者").Visible = False
           \' .Cols("编辑者").AllowEdit = False
           \' .Cols("IP地址").AllowEdit = False
           \' .Cols("IP地址").Visible = False
           \' .Cols("范围").Visible = False
       \' End With
         MessageBox.Show("试验!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    End If
End If