2 pièce(s) jointe(s)
Application frontale WORD ADODB sur SQL Server 2005
Bonsoir,
Je teste une application frontale sous WORD 2000 qui va interroger une base SQL server 2005. La connexion au serveur et à la base s'effectue avec succès avec une première procédure VBA ci dessous :
voir code dans pièce jointe ADODB_SQLSERVER1.txt
La réponse à la requête SQL est également renvoyée correctement.
Seulement lorque j'exécute cette deuxième procédure presque similaire ((j'ai rajouté des zones de texte pour saisir les paramètres de connexion),
voir code dans pièce jointe ADODB_SQLSERVER2.txt
la connexion au serveur et à la base est réussie mais la requête ne s'exécute pas avec le message d'erreur suivant : impossible d'utiliser cette connexion pour effectuer cette opération, elle est fermée ou non valide dans ce contexte.
C'est curieux, un spécialiste pourrait-il m'aider à faire fonctionner la deuxième procédure ADODB_SQLSERVER2.txt car elle ne fait pas apparaître le mot de passe en clair.
modification de interface allant interroger SQL SERVER 2005
J'ai modifié la procédure VBA MS OFFICE 2000 de la façon suivante :
Code:
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| Private Sub CommandButton1_Click()
'Déclaration de la variable de connexion
Dim cnx As ADODB.Connection
Set cnx = New ADODB.Connection
'Définition de la chaîne de connexion
cnx.ConnectionString = "Driver={SQL Native Client};" & _
"Server=" & TextBox1.Text & ";" & _
"Database=" & TextBox2.Text & ";" & _
"Trusted_Connection=no;" & _
"User ID=" & TextBox3.Text & ";" & _
"Password=" & TextBox4.Text & ";"
'Debug.Print cnx
cnx.Open
MsgBox "Connexion au serveur et à la base Réussie"
'Déclaration du jeu d'enregistrement
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
'Définition de la requête
rs.Source = "select * from proprietaire"
'Exécution de la requête
rs.Open , cnx
'Parcourir le jeu d'enrefistrement
Do Until rs.EOF
tmp = rs.Fields.Item(0) & " - "
tmp = tmp & rs.Fields.Item(1) & " - "
tmp = tmp & rs.Fields.Item(2)
ListBox1.AddItem (tmp)
'Aller sur l'enregistrement suivant
rs.MoveNext
Loop
rs.Close
cnx.Close
End Sub |
La procédure fonctionne maintenant parfaitement donc le problème est résolu
Merci !