Dim cn As ADODB.connection
Dim rs1 As ADODB.recordset 
Dim Arry1() As Double
Dim Arry2() As Integer
redim Arry1(0 to 81)
redim Arry2(0 to 81)
   :
   :
  
For j = 0 To 81
    sqlstr = "select sum(降雨量),count( distinct Year(日期)) from NewWeatherData where 城市名称 = '"& cityArry(j) & "' "         
rs1.Open sql, connection, 1, 3    
Arry1(j)=rs1(0)
Arry2(j)=rs1(1)
   
Next j
rs1.close
上面代码完成的是输出指定城市的降雨总量和年份数目,并用两个数组保存。
运行后出现两处错误:
1 语法错误(操作符丢失)在'count( distinct Year(日期))'中
但把distinct去掉便可运行。运行时两数组里面的值为空和零,不知是何原因,rs是不是不能这样用啊?请高手们指教,小弟先谢了!!!

解决方案 »

  1.   

    你不只是定义了一个rs1,怎么在下面Arry1(j)=rs1(0)
    Arry2(j)=rs1(1),哪来的两个rs1呀?你没有定义rs1为recordset的数据呀?而且你在rs1.Open sql, connection, 1, 3 ,前面应该加上客户端游标rs1.CursorLocation = adUseClient的.
      

  2.   

    recordset里有查询出的两列信息,rs1(0)是第0列的,rs1(1)是第1列的。这样不对吗。
      

  3.   

    不是rs不能这样用,估计你用的是Access,不支持这样写吧,用MSSQL,这样写是没问题的
    另外,rs1.close 这句应该放到循环体里去
      

  4.   

    *************请大家分析这两个问题,一是为什么加上distinct会出现问题,二是,上面的recordset第一个循环是没问题的,从第二次开始,便都为空????????