Foxtable(狐表)用户栏目专家坐堂 → [求助]如何禁止一般用户修改已录入好的内容


  共有2321人关注过本帖树形打印复制链接

主题:[求助]如何禁止一般用户修改已录入好的内容

帅哥哟,离线,有人找我吗?
greathxl8
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:5 积分:96 威望:0 精华:0 注册:2015/6/19 11:14:00
[求助]如何禁止一般用户修改已录入好的内容  发帖心情 Post By:2015/7/16 9:39:00 [只看该作者]

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

 

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/16 9:59:00 [只看该作者]

1、把行locked就行,BeforeSaveDataRow事件

 

e.DataRow.Locked = True

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
greathxl8
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:5 积分:96 威望:0 精华:0 注册:2015/6/19 11:14:00
  发帖心情 Post By: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

 

 

 

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

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/20 15:51:00 [只看该作者]

弄一个解锁按钮。

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
greathxl8
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:5 积分:96 威望:0 精华:0 注册:2015/6/19 11:14:00
  发帖心情 Post By:2015/7/20 16:15:00 [只看该作者]

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

 

 

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

 

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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

 

 


 回到顶部