在程序的输入界面中,有两上文本框来让用户输入日期,但是不要求用户一定要输入日期,可以为空,不输入任何值!但是我在更新的时候,要怎样将这两上文本框中的值写到ACCESS数据库中呢?我是先声明两个日期型变量,代码简要如下:
Dim dtFirst as date
dim dtSecond as dateif isdate(txt1.text)=true then
    dtfirst=txt1.text
else
    dtfirst=????              '这里如果填NULL,则会出错
endifif isdate(txt2.text)=true then
    dtsecond=txt2.text
else
    dtSecond=???              '这里如果填NULL,则会出错
endif请教各位,如上的???处应该填入什么值比较好呢?

解决方案 »

  1.   

    整个这段程序都是不必要的。
    直接赋值到字段就行了,比如:
    rs.fields("日期字段名").value=iif(isdate(text1),cdate(text1),null)
      

  2.   

    我不用记录集来更新,而是用ADO的连接对象来更新,所以就需要上面这段程序了!
      

  3.   

    不想修改你的程序的话,把????改成系统当前的日期也是解决的方法,但是如果用户不输入日期就默认的系统当前日期了,看看和你的要求是否一致。if isdate(txt1.text)=true then
        dtfirst=txt1.text
    else
       dtfirst=Date
    endif
      

  4.   

    if isdate(txt1.text)=true then
        dtfirst=txt1.text
    else
       dtfirst=""
    endif
    一般情况下会变成1900-1-1这个时间
      

  5.   

    首先,申明为varient
    Dim dtFirst as Varient
    dim dtSecond as Varient其次用null(不过你这里让用户手工填个日期,不怕用户骂死你?)
    if isdate(txt1.text)=true then
        dtfirst=txt1.text
    else
        dtfirst=Null
    endif
    ...最后,写sql语句的时候
    if isnull(dtFirst) then
    'null的时候的语句
    else
    '非null的时候的语句
    endif注意了,access里日期用#分隔,而null两边不能用#,别写错了
      

  6.   

    TO  topikachu(皮皮) :
        我不想用条件语句来判断,这样的话要重复很多代码的,而且我这个界面中不只这两个日期要判断的!并且本身这条SQL语句已经很长了,有十几行,如果用条件判断,那代码太长了!
      

  7.   

    TO qingming81(晴明) :
       绝对没有这个意思,是程序需要,我这是写商用程序,不是做练习的!
      

  8.   

    别用日期不行吗?
    申明为string
    Dim dtFirst as String
    dim dtSecond as Stringif isdate(txt1.text)=true then
        dtfirst=Format(txt1.text,"yyyy/mm/dd")
    else
        dtfirst=""(你要的形式)
    endif
    再去拼你的SQL字符串
      

  9.   

    TO s_gao(Simon):
       因为我数据表中的这两个值为日期型,所以不好按你所说的方法去更新!我想要么用日期格式,要么用空值,但就是不知道空值要如何赋给这个日期型变量呢?
      

  10.   

    搂主:
    首先要搞清楚,只有不更新相关字段的原始状态才可能使字段值为Null,你不可能赋给它一个Null。只要赋值,它就不是Null了。
    如果你一定要赋值,可用的解决办法只有一个,将用户没有输入日期的值置为一个不可能的值,例如1899-12-30(相当于0,日期值实际上是double型数值)。此后只要检测到0,就是用户没有输入的值。
      

  11.   

    说一点个人想法,象我作软件数据库里一般时间就是用string的,而且我也不定义象date日期型的变量,直接用字符串就可以了,我完全可以用format来保证存入数据库的是长日期或者短日期,所以我建议你用我的方法
      

  12.   

    ydate as variant.
    ydate=Null,不报错;
    ydate="9999-12-31",也可以啊,这是极限值,如果真有用户这么输,把它认为是自动填入的也没什么问题吧
      

  13.   

    有点搞不清楚你了,最好把你后面想如何录入数据的部分贴出来,你是通过RecordSet来更新数据呢,还是通过拼SQL语句直接更新数据呢?