Bonjour,

J'essaye de lancer des commandes SLQ sur une base de données via VBA (Excel2007).

J'ai réussi à me connecter sur la base via un DSN, et j'arrive à lancer des requêtes grâce à l'objet RecordSet et à récupérer les résultats.
En revanche, pas moyen d'utiliser l'objet Command. J'ai constamment l'erreur

"runtime 3709: The connection cannot be used to perform this operation. It is either closed or invalid in this content".

Ci-dessous mon code, quasi-directement tiré du tutoriel de Sébastien Curutchet, trouvé sur ce site. Quelqu'un pourrait-il me dire ou il pêche?

""""""

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub tutoriel()
 
'Déclaration des variables
Dim cnx As ADODB.Connection
Dim cmd As ADODB.Command
Dim prm1 As ADODB.Parameter
Dim rst As ADODB.Recordset
 
'Instanciation des variables
Set cnx = New ADODB.Connection
Set cmd = New ADODB.Command
Set prm1 = New ADODB.Parameter
Set rst = New ADODB.Recordset
 
'Connexion à la base de données
cnx.ConnectionString = "DSN=SQL_CONNECT; UID=MTa; PWD=DSDSDE"
cnx.Open
 
 
rst.Open "Select R_SNAPC, R_IDFD from AQR_BPI_COLLAT", cnx  'Fonctionne sans problème
 
 
'Préparation de l'objet Command
cmd.CommandText = "Select R_SNAPC, R_IDFD from LISTE"
 
'Exécution de la requête
Set rst = cmd.Execute       ''''''' L'ERREUR SE SITUE LA ''''''''''
 
End Sub
"""""""

Merci d'avance pour votre aide