RE:Recordset desconectado
Para desconectar un recordset fijate con:
Public Function CreateDisconnectRecordset(ByVal objRecordset As Recordset, Optional AppendFields As Variant) As Recordset
Dim objDisconnect As Recordset, objColumn As Field, iLoop As Long
If objRecordset.State = adStateOpen Then
With objRecordset
Set objDisconnect = New Recordset
For Each objColumn In .Fields
objDisconnect.Fields.Append objColumn.Name, objColumn.Type, objColumn.DefinedSize, adFldIsNullable + adFldMayBeNull
objDisconnect.Fields.Item(objColumn.Name).NumericScale = objColumn.NumericScale
objDisconnect.Fields.Item(objColumn.Name).Precision = objColumn.Precision
Next
If Not IsMissing(AppendFields) Then
For iLoop = LBound(AppendFields) To UBound(AppendFields)
objDisconnect.Fields.Append AppendFields(iLoop, 0), AppendFields(iLoop, 1), AppendFields(iLoop, 2)
Next iLoop
End If
objDisconnect.Open
If Not .EOF Then
If .CursorType <> adOpenForwardOnly Then .MoveFirst
While Not .EOF
objDisconnect.AddNew
For Each objColumn In objRecordset.Fields
objDisconnect.Fields.Item(objColumn.Name).Value = .Fields.Item(objColumn.Name).Value
Next
.MoveNext
Wend
End If
If Not objDisconnect.BOF And Not objDisconnect.EOF Then objDisconnect.MoveFirst
End With
End If
Set CreateDisconnectRecordset = objDisconnect
End Function