以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  锁定表情况下的代码增加删除行问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=80944)

--  作者:judyhu2008
--  发布时间:2016/2/13 21:18:00
--  锁定表情况下的代码增加删除行问题
这个问题之前论坛里有人问过,不过没有得到满意的答案。

我测试了一下,把表属性里的允许修改/增加行/删除行等属性都设置为False,直接添加是不行,不过用代码,TABLES("GE").ADDNEW, TABLES(GE").CURRENT.DELETE照样可以执行。

用了另一种方法,在命令窗口写代码:
Tables("表A").allowaddnew=False
Tables("表A").addnew
ADDNEW的动作也还是执行了。

“这是为什么呢?“,有什么办法,可以真正做到不允许新增删除行吗?

--  作者:大红袍
--  发布时间:2016/2/14 0:03:00
--  

去编写 beforeAddDataRow 事件即可

 

e.cancel = not e.DataTable.AllowAddNew


--  作者:judyhu2008
--  发布时间:2016/2/17 10:06:00
--  
大红袍老师,我已经写了如下代码:

一、在表的prepareedit里:
If user.group<> "管理员" Then
e.cancel=True
End If
二、在beforeadddatarow里:
e.cancel = not e.DataTable.AllowAddNew
三、在beforedeletedatarow里:
e.cancel = not e.DataTable.Allowdelete

但是我用非管理员账号登录,照常能新增删除行啊。

--  作者:judyhu2008
--  发布时间:2016/2/17 10:08:00
--  
另外,有没有办法全局设定对所有的表有效,一个系统里有很多表,如果一个表一个表去设置会很麻烦。
谢谢指教。


--  作者:大红袍
--  发布时间:2016/2/17 10:09:00
--  

不可能,弹出值看一下

 

msgbox(e.DataTable.Allowdelete)