代码如下:
For Each t As Table In Tables '显示所有表和列 t.Visible = True
t.AllowEdit = True
For Each c As Col In t.Cols
c.Visible = True
c.AllowEdit = True
Next
Next
Tables("授权表").Visible = (User.Type <> UserTypeEnum.User )
If User.Type <> UserTypeEnum.User Then
Return
End If
For Each dr As DataRow In DataTables("授权表").Select("',' + 用户名 + ',' like '%," & User.Name & ",%'" )
If dr.IsNull("列名") Then
Tables(dr("表名")).Visible = Not dr("不可见")
Tables(dr("表名")).AllowEdit = Not dr("不可编辑")
Else
Dim nms() As String = dr("列名").Split(",")
For Each nm As String In nms
Tables(dr("表名")).Cols(nm).Visible = Not dr("不可见")
Tables(dr("表名")).Cols(nm).AllowEdit = Not dr("不可编辑")
Next
End If
Next
我的表都是窗口下的Table,用户是外部数据库,用了上面代码,进入软件后,只勾选表,不勾选列,部分表照样可以编辑,
现在我把列都勾选上了,权限就生效了。
这是什么情况啊。
[此贴子已经被作者于2016/4/2 14:59:52编辑过]