Avec ADO - Le projet VBA reste ouvert en quittant
Bonjour,
Dans une feuille nommée Feuil1, la liste suivante :
Nom....Prénom
DURAND...Martin
DUPOND...Yves
etc...
et voici mon code VBA :
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 51 52 53 54 55 56 57 58 59 60
| Sub test_sql_excel()
Dim Conn As ADODB.Connection
Dim rsT As ADODB.Recordset
Dim Fichier As String, Direction As String, rSQL As String
Direction = ThisWorkbook.Path
Fichier = ThisWorkbook.Name
chemin = Direction & "\" & Fichier
'Mise en place de la connexion avec le fichier
Set Conn = New ADODB.Connection
With Conn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & chemin & ";Extended Properties=Excel 8.0;"
.Open
End With
'Déclaration de la Recherche au format SQL (% remplace * dans la recherche)
rSQL = "SELECT * FROM [FEUIL1$] WHERE [NOM] = 'DURAND'"
'Exécution de la Recherche SQL
Set rsT = New ADODB.Recordset
With rsT
.ActiveConnection = Conn
.Open rSQL, , adOpenKeyset, adLockOptimistic, adCmdTableDirect
End With
Nb_résultats = rsT.RecordCount
'Récupération des enregistrements...
For i = 0 To rsT.RecordCount - 1
'...dans une msgbox
MsgBox rsT.Fields(1).Value
rsT.MoveNext
Next i
If Nb_résultats = 0 Then MsgBox "Aucune réf. trouvée !", vbInformation
'Fermeture de la connexion avec la table
rsT.Close
Conn.Close
End Sub |
Ce code fonctionne parfaitement.
Il permet de faire une recherche SQL à partir d'une liste contenue sur la "feuil1".
Mon soucis, c'est en quittant le fichier (juste en fermant le fichier, sans fermer Excel complètement... en fait le Projet VBA reste ouvert !!
Pourquoi !? Ceci est anormal et pose problème lorsque l'on protège le projet VBA par un mot de passe... Dans ce cas à la fermeture il demande le mot de passe à chaque fois !!
A l'aide svp
Merci
A+
Dams'