以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  表的一列共享  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=150483)

--  作者:15666282205
--  发布时间:2020/5/31 9:12:00
--  表的一列共享
老师,表用代码设定只能由一个人编辑,但是想把其中的“备注”列共享,登录名等于“经办人”,可以编辑“备注列”,怎么设计代码?
现在的代码:(表的startedit)
If  user.name <> "刘永杰" Then
    MessageBox.Show("对不起,您无权修改!")
    e.Cancel = True
End If

--  作者:sloyy
--  发布时间:2020/5/31 14:13:00
--  
If  user.name <> "刘永杰" Then
    For Each dc As DataCol In DataTables("表A").DataCols
        If dc.Name = "备注" Then
            dc.AllowEdit=True
        Else
            dc.AllowEdit=False
        End If
    Next
End If

--  作者:15666282205
--  发布时间:2020/5/31 14:34:00
--  
老师,还有一个条件,如果登录人等于“经办人”,则可以编辑备注列,否则不能编辑,麻烦您指导。
--  作者:sloyy
--  发布时间:2020/5/31 14:46:00
--  
If  user.name <> "刘永杰" Then
    For Each dc As DataCol In DataTables("表A").DataCols
        If dc.Name = "备注"  and user.name = "经办人" Then
            dc.AllowEdit=True
        Else
            dc.AllowEdit=False
        End If
    Next
End If

--  作者:有点蓝
--  发布时间:2020/5/31 21:19:00
--  
startedit

If user.name = "经办人"
    If e.Col.name <> "备注" Then
        e.Cancel = True
    End If
ElseIf  user.name <> "刘永杰" Then
    MessageBox.Show("对不起,您无权修改!")
    e.Cancel = True
End If

--  作者:15666282205
--  发布时间:2020/6/1 16:59:00
--  
sloyy老师的效果不好,不是备注列也可以改动一次,然后锁定表。蓝老师的基本可以,唯一缺点是备注列谁也可以改动,没实现登录人等于经办人才能改动。我试试改编一下代码。
--  作者:15666282205
--  发布时间:2020/6/1 17:15:00
--  
蓝老师,我试了一下,只要是列的类型是备注型,就能改动,而且谁都能改动,不是备注型的列可以控制。另外只有经办人等于登录人才能改动这个控制我在这里没研究好。请指导。
--  作者:有点蓝
--  发布时间:2020/6/1 17:21:00
--  
startedit

If user.name = "经办人"
    If e.Col.name <> "备注" Then
        e.Cancel = True
    End If
Else
    MessageBox.Show("对不起,您无权修改!")
    e.Cancel = True
End If

--  作者:15666282205
--  发布时间:2020/6/1 17:40:00
--  
蓝老师,新的代码没控制让刘永杰有改动权限。而且还是存在一个问题:只要列的类型设定为备注型,好几列都能改动,也不合适。想实现的功能是:刘永杰有全部权限,登录人是经办人的时候,可以改动相符的行其中一列,比如叫“回复问题”列,如果登录人不等于经办人,则这一行的“回复问题”不能改动。现在的代码如下,请您完善一下。
现在的代码:(表的startedit)
If  user.name <> "刘永杰" Then
    MessageBox.Show("对不起,您无权修改!")
    e.Cancel = True
End If
[此贴子已经被作者于2020/6/1 17:47:50编辑过]

--  作者:有点蓝
--  发布时间:2020/6/1 20:04:00
--  
说的问题颠三倒四。请一次性把需要控制的东西说完整