Fermeture d'objet ADODB prématuré

cfouche Messages postés 1 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 12 novembre 2004 - 12 nov. 2004 à 16:02
cs_Prince Charmant Messages postés 34 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 30 novembre 2004 - 12 nov. 2004 à 17:30
Bonjour,

J'écris actuellement un script vb qui se connecte à une base de donnée DB2, qui y extrait des données et qui les affiches dans une feuille excel.

Enfin c'est ce qui se devrait se passer normalement. Mais j'ai une erreur 3704 : "Operation is not allowed when the object is closed" (désolé mon OS est tout en anglais).

Après une longue recherche, j'ai trouvé la ligne à l'origine du problème. il s'agit de : "rst.Open sql , con , adOpenForwardOnly"
Où rst est la variable associé à ADODB.recordset , sql la variable contenant la requête qui est parfaitement bien formée et con est la variable associé à ADODB.connection.

Ce qui se passe, c'est que cette ligne se crash. C'est à dire que rst se ferme au lieu de rester ouvert pour prendre le résultat de la requête.

Je vous demande si vous n'aviez pas une solution à ce problème de fermeture d'objet prématuré.

Voici le script vb :

Dim con As New ADODB.Connection
Dim rst As ADODB.Recordset
Dim sql As String

con.ConnectionString= "chaine de connection"
con.Open

\*saut de toute la partie formation de la requête*\

On Error GoTo AdoError

Set rst = New ADODB.Recordset
rst.Open sql, con, adOpenForwardOnly

If rst.BOF() & rst.EOF() Then
ActiveSheet.Range("A1").Select
ActiveCell.CopyFromRecordset rst
Else
MsgBox "erreur"
End If

\*saut de toute la fin de script*\

thesnac

1 réponse

cs_Prince Charmant Messages postés 34 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 30 novembre 2004
12 nov. 2004 à 17:30
Salut,

Es-tu vraiement obligé d'utiliser un ForwardOnly ?

Essayes en ne mettant pas ce paramètre (laisse Ms-Jet décider du type le plus approprié).

A+
0
Rejoignez-nous