首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

应用自己编写的clone在vb中复制ADODB.Recordset时出错,求点拨

2012-12-17 
求助:应用自己编写的clone在vb中复制ADODB.Recordset时出错,求点拨本人想试验一下用自编的clone在vb中复制

求助:应用自己编写的clone在vb中复制ADODB.Recordset时出错,求点拨
本人想试验一下用自编的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.Clone

End 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运行成功,我不知道应该怎么办

现求助于各位大侠,本人小虾米一个,对编程不是很了解,恳请指导一二


[最优解释]
你的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    '关闭rst1

MsgBox rst2("字段一")      '显示副本字段值

rst2.Close
Set rst1 = Nothing
Set rst2 = Nothing

[其他解释]
是不是没有引用 ado
[其他解释]
http://download.csdn.net/detail/veron_04/3827200

热点排行