小弟最近做一程序
  学生成绩系统
在打印学生成绩时遇见一问题
   想将各专业学生的毕业成绩连续打印出来,我利用两个adodb.recordset
   先建立一连接cnn
    str1 = "select * from xsjbxxb  where o_zyh='" & t_zyh & "'  order  by o_xh"
    Set rs1.ActiveConnection = cn
    rs1.Open str1
    If rs1.RecordCount <> 0 Then
      t_xh = rs1!o_xh
      Do While rs1.EOF = False
   str = "select * from xscjzb where o_xh='" & t_xh & "' order by o_xq "
         Set rs2.ActiveConnection = cn
         rs2.Open str
         If rs2.RecordCount <> 0 Then
              rs2.MoveFirst
              Do While rs2.EOF = False
                  ......
               rs2.movenext
               loop
           运行提示错误,这个程序出什么问题了,请高手指教

解决方案 »

  1.   

    报什么错误, 记得每次 set rs2.activeconnection = cn 之前都需要
    if rs2.state<>0 then rs.close
    另外, 完全可以够照一个sql语句联合2个表查询
    select xcjzb.xxx, xcjzb.xxx2.... from xscjzb,xsjbxxb where xsjbxxb.o_zyh = '" & 
    t_zyh & "' and xcjzb.o_xh = xsjbxxb.o_xh order by xcjzb.o_xh"
      

  2.   

    是 if rs2.state<>0 then rs2.close
      

  3.   

    if rs2.state<>0 then rs2.close
      

  4.   

    你还要设定
     recordset.Open Source, ActiveConnection, CursorType, LockType, Options要设cursortype,locktype,才能用recordcount属性使用 RecordCount 属性可确定 Recordset 对象中记录的数目。ADO 无法确定记录数时,或者如果提供者或游标类型不支持 RecordCount,则该属性返回 –1。读已关闭的 Recordset 上的 RecordCount 属性将产生错误。如果 Recordset 对象支持近似定位或书签(即 Supports (adApproxPosition) 或 Supports (adBook) 各自返回 True),不管是否完全填充该值,该值将为 Recordset 中记录的精确数目。如果 Recordset 对象不支持近似定位,该属性可能由于必须对所有记录进行检索和计数以返回精确 RecordCount 值而严重消耗资源。Recordset 对象的游标类型会影响是否能够确定记录的数目。对仅向前游标,RecordCount 属性将返回 -1,对静态或键集游标返回实际计数,对动态游标取决于数据源返回 -1 或实际计数。