cfouche
Messages postés1Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention12 novembre 2004
-
12 nov. 2004 à 16:02
cs_Prince Charmant
Messages postés34Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention30 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