ACCESS 选项组控件的几个使用技巧
一.插入选项组控件后,它的默认名称是Frame+编号
如果你要遍历所有选项组控件,可能会被它的名字Frame所迷惑.以为就是要找Frame类型的对象,但其实是不对的,正确的遍历方式应该是
For Each tempF In Me.Controls If TypeName(tempF) = "OptionGroup" Then tempF.value = i End If Next tempF
二.选项组是用来给用户做单选题的.假设有这样几个选项组.
当你插入单选控件之后,单选控件的选项值是从1开始往后排的. 我们也可以自由设置每一个单选控件的选项值,前提是不能与组内的其他单选控件值重复.
通常这种只有"允许"和"禁止"的情况,通常会设置成-1和0,方便转换成布尔值.如果组内有很多单选控件的话,就另行设置.这里只讲这种情况.
三.取值.选项组控件的值 等于 用户点选的单选控件的选项值(见上图).所以我们只需要取得选项组的值即可,大可不必去判断每一个单选控件的选中状态.
当用户没有选中任何选项时,选项组控件的值为空(不是NULL也不是False).它是一个可读可写的属性,即:
'设置属性 Frame0.value=0 Frame0.value="" '读取属性 dim i as integer i = Frame0.value
四.处理空值
当Frame0.value="" 时,如果你的代码不够强壮,程序可能会报错.所以我们需要处理这个空值,
像上面的这种布局,选项组控件的值会有三种值,即空值,-1和0.当它为空值时,我希望它返回0
R = IIf(Me.Frame0.value = "", 0, Me.ReadF.value = "") '或者是遍历它们 For Each tempF In Me.Controls If TypeName(tempF) = "OptionGroup" Then If tempF.value = "" Then tempF.value = 0 End If Next
另外一种解决方案就是当有选项组的值为空时,停止程序,强制用户做出选择,这是最好的处理方法.
五.事件.如果需要在用户选择时触发事件,通常是使用选项组的"更新后事件",而不是单选控件的事件.