以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何捕获 .AllowAddNew =False 引发的系统错误提示?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=12124)

--  作者:leibnitz
--  发布时间:2011/8/23 20:28:00
--  如何捕获 .AllowAddNew =False 引发的系统错误提示?

请教狐狸爸爸及各位大侠:

 

根据帮助文档:

 

希望只能在"产品.订单"这个关联表中编辑数据,而不能在订单主表中编辑数据,只需:

Tables("订单").AllowEdit = False
Tables
("产品.订单").AllowEdit = True

 

类似的,我修改了 .AllowAddNew 属性

然后,在订单表的 BeforeAddDataRow 事件中,尝试捕获系统提示是错误(终端用户不喜欢这类提示)

 

‘-- 不成功代码1

If CurrentTable.AllowAddNew = False
  messagebox.Show("我们强烈建议您在产品所对应的项目名下增加新记录 ^_^","温馨提示")
\'  Return
End If

 

 

‘-- 不成功代码2

Try
   \'
Catch ex As Exception
   messagebox.Show("我们强烈建议您在产品所对应的项目名下增加新记录 ^_^","温馨提示")
End Try

 

[此贴子已经被作者于2011-8-23 23:24:43编辑过]

--  作者:czy
--  发布时间:2011/8/23 21:26:00
--  
如果CurrentTable.AllowAddNew = False了,系统默认就不允许增加行了,在增加一行之前执行事件中还能有效吗?
--  作者:leibnitz
--  发布时间:2011/8/23 21:42:00
--  
 如此说来,...系统错误 ...往往在事件触发之前...就不能捕获了?
--  作者:狐狸爸爸
--  发布时间:2011/8/24 9:45:00
--  

参考这个:
 
http://www.foxtable.com/help/topics/0629.htm

 


--  作者:leibnitz
--  发布时间:2011/8/25 15:31:00
--  谢谢狐狸爸爸,我后来自己也采用了类似的办法
谢谢狐狸爸爸,我后来自己也采用了类似的办法,即:不完全禁止,而是在对话框中让用户选择...当然,实际上,也就可以"总是禁止了" ,而且,这方案可以避免难以捕获的系统错误提示,而给出用户可理解的提示.