读书人

应用自己编写的clone在vb中复制ADODB.

发布时间: 2012-12-17 09:31:40 作者: rapoo

求助:应用自己编写的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

读书人网 >VB

热点推荐