以文本方式查看主题

-  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=71685)

--  作者:greathxl8
--  发布时间:2015/7/16 9:39:00
--  [求助]如何禁止一般用户修改已录入好的内容

1、我设计了一个项目,要求一般用户只有录入新内容的权限,对于已录入的内容不能再编辑修改、也不能删除(数据表中和录入窗口全部不能),请问专家我需要如何具体设置,请求给出代码。

 

2、另求一个关于打印输出(用设计好的EXCEL报表模板)生成报表的按钮代码,我是想设计录入窗口一个按钮,请专家给出实现此功能代码。

 

因为我是新手,请求专家告诉填写的具体事件和详细代码,谢谢!!!


--  作者:大红袍
--  发布时间:2015/7/16 9:59:00
--  

1、把行locked就行,BeforeSaveDataRow事件

 

e.DataRow.Locked = True

 

2、http://www.foxtable.com/help/topics/1145.htm

 


--  作者:greathxl8
--  发布时间:2015/7/20 15:49:00
--  

你好,按照你的提示我在 表属性 BeforeSaveDataRow 事件中,输入了如下代码:

 

If User.Name <> "管理员-黄旭龙" Then
       e.DataRow.Locked = True \'不允许编辑
       MessageBox.show("核对无误,此后您将无法修改!")
    ElseIf  User.Name = "管理员-黄旭龙" Then
       e.DataRow.Locked = False \'允许编辑
       MessageBox.show("成功修改,请慎重操作!")
End If

 

 

 

这段代码用来实现一般用户禁止修改、编辑和删除功能,授权管理员有修改和删除权限。

每次窗口录入内容后保存,数据行实现了不能编辑也不能删除,但是我用管理员身份登录后也无权修改和删除,请问我以上的代码哪里不对???

 


--  作者:大红袍
--  发布时间:2015/7/20 15:51:00
--  

弄一个解锁按钮。

 

Tables("表A").Current.Locked = False


--  作者:greathxl8
--  发布时间:2015/7/20 16:15:00
--  

高手,我按你的提示做了一个按钮,不过用它解锁后,所有用户都可以编辑和修改和删除行内容了。 

 

 

我这个问题需要限制一般用户权限(无权删除和编辑行内容),管理用户有特殊权限(可以删除和编辑行内容)。

 

 

请高手详细给出解决思路和代码。


--  作者:大红袍
--  发布时间:2015/7/20 17:02:00
--  

那就不要用Locked的方法。

 

表数据全部解锁,然后

 

startEdit事件

 

If User.Name <> "管理员-黄旭龙" Then
    e.Cancel = True
    MessageBox.show("核对无误,此后您将无法修改!")
End If

 

beforeDeleteDataRow事件

 

If User.Name <> "管理员-黄旭龙" Then
    e.Cancel = True
    MessageBox.show("核对无误,此后您将无法删除!")
End If