以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]审核后不得修改数据的代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43683)

--  作者:ZHX241806
--  发布时间:2013/12/12 18:42:00
--  [求助]审核后不得修改数据的代码

我表中有逻辑列(即审核列)A,数据列B,数据列C,当数据列B和C填好数据后,在逻辑列A中打勾后,数据列B和C中的数据就无法修改,如果需要修改,必须先去掉逻辑列中的勾再进行修改,请问高手们代码如何写,谢谢!!!


--  作者:sloyy
--  发布时间:2013/12/12 19:16:00
--  
If Tables("表A").current("A") =True Then
 Dim cl As Col
cl = Tables("表A").Cols("B")
cl.AllowEdit = False
End If

--  作者:有点甜
--  发布时间:2013/12/12 19:17:00
--  
参考

[此贴子已经被作者于2013-12-12 19:16:45编辑过]

--  作者:ZHX241806
--  发布时间:2013/12/12 19:29:00
--  

上面这个代码刚试过,如果我需要修改数据,那就无法修改了,我希望去掉逻辑列的勾即可以修改数据,请问代码如何写?


--  作者:有点甜
--  发布时间:2013/12/12 19:35:00
--  
 参考3楼的例子

If (e.Col.Name = "B" OrElse e.Col.name = "C") AndAlso e.Row("A") = True Then
    e.Cancel = True
End If

--  作者:ZHX241806
--  发布时间:2013/12/12 19:45:00
--  
请问有点甜,我刚试过不行,不知为什么,请帮忙再看看,谢谢!!!
--  作者:有点甜
--  发布时间:2013/12/12 19:46:00
--  
 写到prepareEdit事件里去。
--  作者:有点甜
--  发布时间:2013/12/12 19:47:00
--  
 如果不是在表里直接修改的,你要写 datacolchanging的代码,具体内容都在3楼了。
--  作者:ZHX241806
--  发布时间:2013/12/12 19:58:00
--  
太谢谢甜了.请问如果在表直接修改的话,那三楼的代码写在那里最好呢!
--  作者:有点甜
--  发布时间:2013/12/12 20:08:00
--  
 回复9楼,写到prepareEdit事件比较好。用5楼的代码。