本人想试验一下用自编的clone在vb中复制ADODB.Recordset:窗体只有一个command1按钮,点击时将rst1 的信息clone至rst2中,这两个两个都为ADODB.Recordset按钮:
Private Sub Command1_Click()  Dim rst1 As ADODB.Recordset
  Dim rst2 As ADODB.Recordset
        
    Set rst1 = New ADODB.Recordset
    Set rst2 = New ADODB.Recordset
    Set rst2 = rst1.CloneEnd Sub克隆程序为:Public Function Clone(ByVal rstSource As ADODB.Recordset) As ADODB.Recordset
    
    Dim objSm As ADODB.Stream
    Dim rstCopy As ADODB.Recordset
    Set objSm = New ADODB.Stream
    Set rstCopy = New ADODB.Recordset
    
    rstSource.Save objSm, adPersistXML
    
    rstCopy.Open objSm
        
    Set Clone = rstCopy
       
    Set objSm = Nothing
   
    objSm.Close
           
End Function运行时点击按钮出错:3704 对象关闭时不允许操作,监视表达式发现在运行完“Set rst1 = New ADODB.Recordset”
后,rst1中的、AbsolutePosition、EOF、BOF等值均为<对象关闭时不允许操作>想让clone运行成功,我不知道应该怎么办现求助于各位大侠,本人小虾米一个,对编程不是很了解,恳请指导一二

解决方案 »

  1.   

    你的rst1就没打开过,要执行操作必先打开,示例:Dim rst1 As ADODB.Recordset
    Dim rst2 As ADODB.Recordset
      
    Set rst1 = New ADODB.Recordset        '新建一个无连接的Recordset
    rst1.Fields.Append "字段一", adBSTR, 20    '为Recordset添加一个字段
    rst1.Open                             '打开Recordset,必须要先打开,才能后继操作
    rst1.AddNew "字段一", "ppppp"              '添加一条记录Set rst2 = rst1.Clone       '复制副本,可换为你自己写的Clone,
    rst1.Close    '关闭rst1MsgBox rst2("字段一")      '显示副本字段值rst2.Close
    Set rst1 = Nothing
    Set rst2 = Nothing
      

  2.   

    http://download.csdn.net/detail/veron_04/3827200