ValidateEdit
结束编辑单元格前执行,通常用于验证输入的内容。
e参数属性:
Table: 所编辑的表
Row: 所编辑的行
Col: 所编辑的列
Text: 字符型,表示所输入的文本内容
Cancel: 逻辑型,设为True表示无法通过验证,禁止退出编辑模式。
ValidateEdit和DataColChanging有些类似,但是ValidateEdit针对的是输入验证,而DataColChanging使用范围更广,因为任何形式导致的数据变动,包括输入以及通过代码设置,都会触发DataColChanging事件。 所以实际开发的时候,最好用DataColChanging事件,除非你的代码仅仅用于输入验证。
我们先来看看ValidateEdit事件是如何进行输入验证的。
假定在订单表中输入数据,要求折扣不能大于0.15,代码非常简单,在订单表的ValidateEdit事件中输入:
If
e.Col.Name = "折扣" Then '如果正在输入的是折扣列上面的代码首先判断在折扣列 输入的内容是否大于0.15,如果是,则禁止退出编辑模式,除非你修改折扣值直到符合要求,或者按Esc键退出编辑。
如果你想幽默一点、友善一点,可以加上提示:
If
e.Col.Name = "折扣" Then '如果正在输入的是折扣列再例如只允许输入10天内的日期,则可以将ValidateEdit事件可以设为:
If
e.Col.Name = "日期" Then一旦将e.Cancel参数设为True,你将无法退出编辑状态,直到重新输入符合要求的数据,或者按Esc键撤销此次编辑。
利用ValidateEdit事件,也可以实现代码录入:
If
e.Col.Name = "产品" Then设置上述代码后,如果你在产品列输入tv,将自动替换为电视机,如果输入tel,自动替换为电话机。
例子很简单,实际应用的时候,希望你能举一反三。