以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于修改权限问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132040)

--  作者:xlrboy
--  发布时间:2019/3/12 15:37:00
--  关于修改权限问题
您好!  我在表格增加了录入员列,当登陆名不是录入员,管理员、开发者 不能编辑行,写入了如下代码但是没效果。

If user.name = e.Row("录入员") OrElse User.Name = "管理员" OrElse User.Name = "开发者" Then
Else
    If user.name = "采购部" Then
        If e.Col.name = "供应商" OrElse e.Col.name = "采购反馈" Then
        Else
            e.cancel = True
        End If
    ElseIf user.name = "库管员" Then
        If e.Col.name = "到货数量" OrElse e.Col.name = "库管员" OrElse e.Col.name = "出库" OrElse e.Col.name = "到货日期" OrElse e.Col.name = "货位" Then
        Else
            e.cancel = True
        End If
    End If
    
End If

--  作者:有点甜
--  发布时间:2019/3/12 16:31:00
--  

1、你删除代码后,是否可以正常编辑?如果也不能,就不是这段代码的问题。

 

2、请对应做一个实例发上来测试。


--  作者:xlrboy
--  发布时间:2019/3/13 8:01:00
--  
版主您好!   一开始是代码是这样写的,是可以实现登陆名和录入员不一样时候不能修改该行,管理员和开发者除外。  后来增加了其他用户的权限时候代码修改一下其他用户权限可以实现了,但是录入员和登陆名不一样时对行的禁止修改权限没有了。
     原代码:
If user.name <> e.Row("录入员") Then
    e.cancel = True
End If

If User.Name = "管理员" Then 
            e.cancel =False 
        End If

If User.Name = "开发者" Then 
            e.cancel =False 
        End If
                 
[此贴子已经被作者于2019/3/13 8:02:20编辑过]

--  作者:有点甜
--  发布时间:2019/3/13 9:02:00
--  

这个意思?

 

If user.name = e.Row("录入员") OrElse User.Name = "管理员" OrElse User.Name = "开发者" Then
ElseIf
    If user.name = "采购部" Then
        If e.Col.name = "供应商" OrElse e.Col.name = "采购反馈" Then
        Else
            e.cancel = True
        End If
    ElseIf user.name = "库管员" Then
        If e.Col.name = "到货数量" OrElse e.Col.name = "库管员" OrElse e.Col.name = "出库" OrElse e.Col.name = "到货日期" OrElse e.Col.name = "货位" Then
        Else
            e.cancel = True
        End If
    Else
        e.cancel = True

    End If
End If