代码如下:
strsql = "select  sum(convert(int,precipitation)) as aaa from  TabTimeData where ObservTimes >= '" & strd1 & "'" & " and  ObservTimes <= '" & mydata & mytime & "'" & " and StationNum='" & mystation & "'"
db_num.OpenRecordset (strsql)
Debug.Print aaa

解决方案 »

  1.   

    convert只在MSSQL中有,ACCESS中不行
    你可以用val代替啊,如:
    sum(val(precipitation))
      

  2.   

    access中可以使用大部分的VB函数,如format、val、instr等等!!
    其实是VBA的机制在起作用啊。
      

  3.   

    我用的是SQLServer数据库。
    strsql = "select  sum(val(precipitation)) as aaa from  TabTimeData where 条件
    db_num.OpenRecordset (strsql)
    Debug.Print aaa
    这样也不行呀!没有得到结果aaa啊!
      

  4.   

    sql server的话你的原语句就应该没有问题,至于输入,应该这样:
    debug.print db_num!aaa
    而不是:
    debug.print aaa
      

  5.   

    不对还是
    strsql = "select  sum(val(precipitation)) as aaa from  TabTimeData where 条件
    db_num.OpenRecordset (strsql)
    debug.print db_num!aaa
    提示:“在此集合中找不到此项目”
      

  6.   

    你的数据库是sql server,所以不要再用val了,还是用convert吧。
    另外问一句,你的db_num是个什么类型的对象??我的意思是:debug.print 记录集!aaa
      

  7.   

    还是把字段改成数字类型吧。"select * into tmp from TabTimeData""drop table TabTimeData""select val(precipitation) as precipitation, ObservTimes, StationNum .... into TabTimeData from tmp""drop table tmp"