我想在检出一个textbox 中的输入为无效的值时,将其恢复成为
初始状态 NULL, 像以下这样做是否可以?
if not isnumeric( mytextbox.value ) then
mytextbox.value = null
endif我记得曾经看到过这样的描述:
null 对一切的运算符是透过的
(好像是说不会被执行)
可是从我运行的结果来看,以上的做法好像是正确的。请问应该怎么看这个问题?

解决方案 »

  1.   

    if not isnumeric( mytextbox.value ) or mytextbox.value is null  then
      

  2.   

    多谢回复,
    那么请问在vba里不论什么型的变量都可以这样
    进行赋值操作,使之成为null么?
      

  3.   

    如果你想用的话,当然可以,但是看下面这两条语句:
    Print X = Null
    Print X <> Null
    结果都是输出 Null(不是 True 也不是 False), 这是因为任何一个运算式只
    要含有 Null , 则该运算式就等于 Null, 实际上想要判断某一数据是否为 Null 
    绝对不能使用:
    If X = Null Then ' 永远都会得到 Null
    而要使用:
    If IsNull(X) Then
    所以哪一种数据会等于 Null 呢? 除了含有 Null 运算式之外, 就属没有输入任
    何数据的「数据字段」(在数据库中) 会等于 Null。所以呢还是根据不同类型的数据进行初始化吧。
      

  4.   

    还是不明白,
    可以把
    整数型数据初始化为0,
    字符串型数据初始化为"",
    可是如何把他们清空为NULL?
      

  5.   


    别纠结了。VBA你不可能把指定了类型的变量赋值成null。而且不知道你这么做的目的是什么?
      

  6.   

    那么2楼 ACMAIN_CHM 的回答应该怎样理解?
    莫非只有文本控件可以通过赋值成null?