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 ?