这段程序每次运行完***就出现 91 错误,对象变量为定义,我也不知道要怎么改,在什么地方改,麻烦指点一下Private mrsFrmPrintData As ADODB.Recordset
Private mrsFrmSource As ADODB.RecordsetIf Not (rsFrmPrintData.EOF And rsFrmPrintData.BOF) Then
        rsFrmPrintData.MoveLast
        Public Property Get rsFrmPrintData() As ADODB.Recordset   '***这是错误所在
    Set rsFrmSource = mrsFrmPrintData
End PropertyPublic Property Set rsFrmSource(ByVal vData As ADODB.Recordset)
    Set mrsFrmSource = vData
End PropertyPublic Property Get rsFrmSource() As ADODB.Recordset
    Set rsFrmSource = mrsFrmSource
End PropertyPublic Property Get rsFrmSource() As ADODB.Recordset
    Set rsFrmSource = mrsFrmSource
End Property我试了将两个纪录集变量new了一下,可是提示还是说3704 纪录集关闭迷茫ing

解决方案 »

  1.   

    1、这样试试行不行?
    Public Property Get rsFrmPrintData() As New ADODB.Recordset   '***这是错误所在
        Set rsFrmSource = mrsFrmPrintData
    End PropertyPublic Property Set rsFrmSource(ByVal vData As New ADODB.Recordset)
        Set mrsFrmSource = vData
    End Property
    2、你的工程是ActiveX DLL吗?如果不是,而是EXE工程里边的类,那么,象Recordset这样的外部对象是不能用来作为参数传递的。
      

  2.   

    而且,一般这种用Recordset直接传递的函数,一般这样写:
    Public Property Get rsFrmPrintData() As New ADODB.Recordset   '***这是错误所在
        Set rsFrmSource = mrsFrmPrintData.clone
    End PropertyPublic Property Set rsFrmSource(ByVal vData As New ADODB.Recordset)
        Set mrsFrmSource = vData.clone
    End Property