sql语句是这样写的sqltxt = "select h_date as 发生时间,sum(l_time) as 持续总时间,sum(area_disa) as 受灾总面积 from datainfo where h_date like '%" & st.Text & "%'  group by h_date"
但是下面这段代码
rs.Open sqltxt, conn, adOpenKeyset, adLockReadOnly
MsgBox rs.RecordCount
If rs.RecordCount = 0 Then Exit Function
With MSChart1
      '设置图形显示的类型
      .RowCount = rs.RecordCount   '设置显示的图形数
      .ColumnCount = rs.RecordCount '设置标签数
      .FootnoteText = "气象查询系统统计图表"
      .TitleText = mscinfo & "统计图"
      .ShowLegend = True
      For K = 1 To .Plot.SeriesCollection.Count
       .Plot.SeriesCollection(K).DataPoints(-1).DataPointLabel.LocationType = VtChLabelLocationTypeAbovePoint
      Next
  
    For j = 1 To rs.RecordCount
    If rs.EOF Then Exit Function
    .Row = j
    .RowLabel = rs(j - 1).Value
    
    For i = 1 To rs.RecordCount
        .Column = i
          .ColumnLabel = "党" & i     '
          .Data = rs(i).Value  '填充当前活动列的值
          rs.MoveNext
    Next
    'rs.MoveNext
    Next
 End With提示.Data = rs(i).Value  '填充当前活动列的值这一行错误,原因是   无效使用null  但是调试的时候,data是有值的意思就是调试的时候,data可以看到是有具体的数字的,但是后面的rs这个值就是null  不知道是为什么,请大侠帮帮忙

解决方案 »

  1.   

    Data有值可能是上一个记录的值,并不代表每一个记录都有
      

  2.   

    For j = 1 To rs.RecordCount 
      

  3.   

    For j = 1 To rs.RecordCount 中還有    For i = 1 To rs.RecordCount 
    給人感覺很別扭
    在第二個 FOR中,加入 :If rs.EOF Then Exit Function 
      

  4.   

    .Data = rs(i).Value&""
    就算是Null也可行!试试看
      

  5.   

    .Data = rs(i).Value  '填充当前活动列的值 
    rs(i).Value 的值为NULL就会出现这样的问题.
    大概rs(i).value是一个数值型,可以改成这样
    .Data=iif(isnull(rs(i).value),0,rs(i).value)
      

  6.   

    sqltxt = "select h_date as 发生时间,sum(l_time) as 持续总时间,sum(area_disa) as 受灾总面积 from datainfo where h_date like '%" & st.Text & "%'  group by h_date" 
    改为
    sqltxt = "select h_date as 发生时间,sum(ISNULL(l_time,0)) as 持续总时间,sum(ISNULL(area_disa,0)) as 受灾总面积 from datainfo where h_date like '%" & st.Text & "%'  group by h_date"