TooFatBoy
XLDnaute Barbatruc
Bonjour,
Pouriez-vous m'aider à comprendre le principe de fonctionnement de la connexion à un fichier .XLS en tant que base de données ?
J'ai une macro de connexion à la base de données :
J'ai une macro de déconnexion :
Et au milieu j'ai une macro de lecture des données :
1- Le "Set Cn = Nothing" est-il indispensable pour pouvoir effctuer une nouvelle connexion par la suite ?
2- Faut-il également faire un "Set Rst = Nothing" pour pouvoir effectuer plusieurs fois de suites la macro de lecture des données, ou bien on peut refaire un "Set Rst = New ADODB.Recordset" sans passer par cette ligne de commande ?
Pouriez-vous m'aider à comprendre le principe de fonctionnement de la connexion à un fichier .XLS en tant que base de données ?
J'ai une macro de connexion à la base de données :
Code:
Sub ConnexionBdD(Fichier)
' Connexion au fichier servant de base de données
Set Cn = New ADODB.Connection
With Cn
.Provider = "Microsoft.Ace.OLEDB.12.0" ' "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & Fichier & ";Extended Properties=Excel 8.0;"
.Open
End With
End Sub
J'ai une macro de déconnexion :
Code:
Sub DeconnexionBdD()
' Fermeture de la connexion avec le fichier servant de base de données
Cn.Close
Set Cn = Nothing
End Sub
Et au milieu j'ai une macro de lecture des données :
Code:
Sub LectureMois()
Call ConnexionBdD("F:/2014.xls")
texte_SQL = "SELECT [ListePersonnel$].Fonction, [ListePersonnel$].Nom, [ListePersonnel$].Prenom, " _
& "FROM [ListePersonnel$] " _
& "WHERE [ListePersonnel$].Fonction = " & Chr(34) & "Secrétaire" & Chr(34) _
& " AND [ListePersonnel$].Mois = " & Chr(34) & "Janvier" & Chr(34) _
Set Rst = New ADODB.Recordset
Set Rst = Cn.Execute(texte_SQL)
'Ecrit le résultat de la requête dans la cellule A2
ThisWorkbook.Sheets("ListeJanvier").Range("A2").CopyFromRecordset Rst
Call DeconnexionBdD
End Sub
1- Le "Set Cn = Nothing" est-il indispensable pour pouvoir effctuer une nouvelle connexion par la suite ?
2- Faut-il également faire un "Set Rst = Nothing" pour pouvoir effectuer plusieurs fois de suites la macro de lecture des données, ou bien on peut refaire un "Set Rst = New ADODB.Recordset" sans passer par cette ligne de commande ?