Per ottenere un recordset disconnesso devi crearlo sul Client.
E non devi chiuderlo o impostarlo a Nothing.
Aggiungi le istruzioni che ti ho inserito e prova.
codice:
Public Function RecordsetOpen(ByVal strSQL As String, ByVal strConnessione As String) As ADODB.Recordset
dim DBConn As ADODB.Connection
Dim rstTemp As ADODB.Recordset
Set DBConn = New ADODB.Connection
DBConn.Open strConnessione
Set rstTemp = New ADODB.Recordset
' ------------------------------------------------
rstTemp.CursorLocation = adUseClient
' ------------------------------------------------
rstTemp.Open strSQL, DBConn, adOpenDynamic, adLockOptimistic
' ------------------------------------------------
' Effettua la disconnessione
' ------------------------------------------------
Set rstTemp.ActiveConnection = Nothing
' ------------------------------------------------
' Con questa istruzione fai riferimento a rstTemp con
' RecordsetOpen, se chiudi e annulli (vedi istruzioni
' con <-- No ...) tutto si ribalta su RecordsetOpen
Set RecordsetOpen = rstTemp
' rstTemp.Close <-- No
' Set rstTemp = Nothing <-- Neanche
DBConn.Close
Set DBConn = Nothing
end function
Ciao,