程序前晚运行一切正常,但昨晚运行时被自动关闭,今早检查时发现错误:
部分代码如下:
      Set xlSheet = xlBook.Worksheets("卡帐数据")    '设置活动工作表
      i = 3
      Set rs = New ADODB.Recordset
      rs.Open "Select * from err_kz_detail where  err_mode='2'  and balance=0 order by check_date,cardno ", Cn_Access    
      If Not rs.EOF Then
      Do While (Not rs.EOF)
         i = i + 1
         xlSheet.cells(i, 1) = rs!check_date
         xlSheet.cells(i, 2) = rs!kz
         xlSheet.cells(i, 3) = rs!kqb
         xlSheet.cells(i, 4) = rs!cardno
         xlSheet.cells(i, 5) = rs!kz - rs!kqb
         xlSheet.cells(i, 7) = rs!err_type
         rs.MoveNext
      Loop
      End If
      '不平的卡帐数据,错误类型为2
      Set xlSheet = xlBook.Worksheets("全部卡帐不平数据")    '设置活动工作表
      i = 3      Set rs = New ADODB.Recordset
      rs.Open "Select * from err_kz_detail where  balance=0 order by cardno ", Cn_Access    ‘昨晚原程序运行到此处被踢出
      If Not rs.EOF Then
      Do While (Not rs.EOF)
         i = i + 1
         xlSheet.cells(i, 1) = rs!check_date
         xlSheet.cells(i, 2) = rs!kz
         xlSheet.cells(i, 3) = rs!kqb
         xlSheet.cells(i, 4) = rs!cardno
         xlSheet.cells(i, 5) = rs!kz - rs!kqb
         xlSheet.cells(i, 7) = rs!err_type
         xlSheet.cells(i, 10) = rs!err_mode
         rs.MoveNext
      Loop
      End If
      xlBook.Close (1) '关闭工作簿

解决方案 »

  1.   

    今天在被踢出的地方“set rs=new adodb.recordset ”前加上Set Cn_Access = New ADODB.Connection
    Cn_Access.Open "Provider=MSDASQL.1;Password=sinopec;User ID=sa;Extended Properties='DRIVER={Sybase System 11};UID=sa;PWD=sinopec;DB=ic;SRVR=FJIC-LINCQ'"当本次DO while循环到30时出现提示“多步OLE DB操作产生错误。请检查每个 OLE DB 状态值。没有工作被完成。” 请各位大侠们救命啊
      

  2.   

    程序从3月14日起就一直运行正常,昨天装了个sql server,昨晚就这样了,跟这有没关系啊?