在VB中我做了一个SUB,
public sub test(test as date)
...
end sub
我发现如果TEST是NULL比如:
do test(null)时不能是NULL而是传一个1899-12-31的值,求高手怎样才能传一个日期型是NULL的值???

解决方案 »

  1.   

    Please try this:Private Sub Command1_Click()
    MsgBox Test(Null)
    End Sub
    Private Function Test(Somedate As Variant) As Date
    If IsNull(Somedate) Then
       Test = CDate("1899-12-31")
    Else
       Test = CDate(Somedate)
    End IfEnd Function
      

  2.   

    楼上的回答也许误解搂主的意思了吧
    date类型变量用null赋值的时候会自动变为1899-12-31的
    我想,楼主的意思是,如果是null的时候,不要变为1899-12-31吧
    不过楼上的做法可以借鉴,因为date类型不能设置为null的,可以把参数换为Variant型,然后做判断
      

  3.   

    我的意思就是qybao(阿宝)这样的,我发现在VB中不管是字符的还是日期的都不能正确传NULL或VBNULLSTRING到SQL的数据库中,
    do sub AA(  test as string)
    .....存储过程(参数为test)
    end sub
    因为我在SQL的存储过程中做了一个test is not null时的判断如果Call AA(vbnullstring),会出现根本不能正常传NULL到,如果在存储过程中直接用参数值为NULL时,就没有问题,可正常运行.求高手为什么是这样???
      

  4.   

    這個在sql server2000裡很好處理,但用VB來完成不好做的