For i = 1 To 12
    .Open "select sum(fy) as Sfy  from  tbluseinfo where year(intime) = " & NYear & " and month(intime) =" & i
    McrNdsy.Row = i
    If .EOF Then
       McrNdsy.Data = 0
    Else
       McrNdsy.Data = .Fields(0) '???????
    End If
    .Close
 Next运行时程序提示无效的NULL值,可是数据库里面明明是有数据的,不知道是不是语法错误,请知道的朋友帮我看一下!

解决方案 »

  1.   

    请高手指点统计查询语句SUM的用法,先谢了!我要睡觉了,一个通宵下来,满眼的星星!
      

  2.   

    For i = 1 To 12
        if .state=adsatteopen then .close
        .Open "select sum(fy) as Sfy  from  tbluseinfo where year(intime) = " & NYear & " and month(intime) =" & i
        McrNdsy.Row = i
        If .EOF Then
           McrNdsy.Data = 0
        Else
           McrNdsy.Data = .Fields(0) & ""
        End If
        .Close
     Next
      

  3.   

    '测试这样有全部符合的记录吗
    select year(intime),month(intime),sum(fy) as Sfy  from  tbluseinfo group by year(intime),month(intime)
      

  4.   

    .open strselect("select sum(fy) as Sfy  from  tbluseinfo where year(intime) = '" & NYear & "' and month(intime) ='" & i & "'"),conn或是你定义strselect="select sum(fy) as Sfy  from  tbluseinfo where year(intime) = '" & NYear & "' and month(intime) =" & i & "'"
    conn.excuit strselect, i(循环用I此处可能要再定义一个integer)或直接用3,1sql语句语法应该没太大问题吧
      

  5.   

    For i = 1 To 12
        .Open "select sum(fy) as Sfy  from  tbluseinfo where year(intime) = " & NYear & " and month(intime) =" & i
        McrNdsy.Row = i
        If .EOF Then
           McrNdsy.Data = 0
        Else
           McrNdsy.Data =iif( .Fields(0)<>"",.fields(0),"") '???????
        End If
        .Close
     Next
    是不是这个原因!
      

  6.   

    用SUM、COUNT等做统计时,不用判断记录是否存在,因为一定会有记录存在的。
    For i = 1 To 12
        .Open "select sum(fy) as Sfy  from  tbluseinfo where year(intime) = " & NYear & " and month(intime) =" & i
        McrNdsy.Row = i
        McrNdsy.Data = iif(isnull(.Fields(0)),0,.Fields(0))
        .Close
     Next
    数据库里面有值存在的话,则说明你的SQL语句本身有问题,因为没有看到实际的数据库,成以没有办法帮你了。
      

  7.   

    刚刚起床,看到这么多回复,好开心,谢谢各位热心的朋友To: Leftie(左手,为人民币服务) 在字段后面加&""这个方法不错!!!,嘿嘿,调试成功了To:cqq_chen(我是谁) ,相比较左手的方法,您的办法再加人性化一些,学习Ing!To:1410104(兔子) ,不明白您为什么在year(intime) = '" & NYear & "' and month(intime) ='" & i & "'"里面使用单引号来引住NYear,I两个数值型变量