access表中有一个时间日期型的字段,我在程序中用下面的代码转化:
recordset1!buydate=cDate(text1.text)
在text1中我输入的是8位的数字,比如:19800101,可是程序调试的时候提示类型不匹配
请大家帮帮我,感谢大家!

解决方案 »

  1.   

    使用Format函数
    recordset1!buydate=Format(text1.text,"yyyy-mm-dd")
    之前最好把text1.text的值判断一下
      

  2.   

    在text1中输入时判断是否为日期型数据:
    private sub text1_lostfocus
        if trim(text1.text)="" then
            msgbox "请输入日期!",48,"提示"
            text1.setfocus
            exit sub
        else
            if not isdate(text1.text) then
                msgbox "请输入日期型数据!",48,"提示"
                text1.setfocus
                exit sub
            else
                text1.text=format(text1.text,"YYYY-MM-DD")
            end if
        end if
    end sub
      

  3.   

    dim s as string
    s=left(trim(text1.text),4) + "-" +mid(trim(text1.text),5,2)+"-"+right(trim(text1.text),2)
    if isdate(s) then
        recordset1!buydate=s
    else
        msgbox "输入日期有误"
    end if
      

  4.   

    If IsDate(Format(text1.Text, "0000-00-00")) Then
        recordset1!buydate = Format(text1.Text, "0000-00-00")
    End If如果是8位数字好像用format不行
      

  5.   

    19800101你这也不是日期格式啊,如果你要这种格式,可以从数据库取出来的时候再格式化成这种格式,用FORMAT函数就行!!
      

  6.   

    text1.text=format$(text1.text,"YYYY-MM-DD")
      

  7.   

    我也有点迷糊
    recordset1!buydate=Format(text1.text,"yyyy-mm-dd")
    recordset1!buydate这是日期型
    Format(text1.text,"yyyy-mm-dd")这是字符串
    字符串型数据类型 就可以这么随随便便的付给 日期型数据类型
    对日期型数据类型,我有点迷糊了.哈