Bonjour !

Entre les deux façons ci-dessous de se connecter à un classeur fermé, quelqu'un pourrait-il m'énumérer les restrictions/avantages/inconvénients de chacune d'entre elles et préciser s'il existe des contexte où l'une est plus appropriée que l'autre ?

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
Public Function Requete(ByVal FichierSource As String, _
                        ByVal FeuilleSource As String, _
                        Optional ByVal ImporterEntetes As Boolean)
    ' Sert juste à tester diverses chaînes de connexion
    Dim adoConnexion As ADODB.connection
    Dim adoRst As ADODB.Recordset
    Dim strSql As String
    
    Set adoConnexion = New ADODB.connection
    
    With adoConnexion
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0" & _
                            ";Data Source=" & FichierSource & _
                            ";Extended Properties=""Excel 12.0" & _
                            ";HDR=" & IIf(ImporterEntetes, "No", "Yes") & _
                            ";IMEX=1"""

        .Open
    End With
    
    strSql = "SELECT * FROM [" & FeuilleSource & "$]"
        
    Set adoRst = adoConnexion.Execute(strSql)
    
    Requete = Transpose(adoRst.GetRows)
End Function
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
Public Function Requete(ByVal FichierSource As String, _
                        ByVal FeuilleSource As String, _
                        Optional ByVal ImporterEntetes As Boolean)
    ' Sert juste à tester diverses chaînes de connexion
    Dim adoConnexion As ADODB.connection
    Dim adoRst As ADODB.Recordset
    Dim strSql As String
    
    Set adoConnexion = New ADODB.connection
    
    With adoConnexion
        .ConnectionString = "DSN=Excel Files" & _
                            ";DBQ=" & FichierSource & _
                            ";DefaultDir=C:\data\Temp;DriverId=1046" & _
                            ";MaxBufferSize=2048" & _
                            ";PageTimeout=5;"

        .Open
    End With
    
    strSql = "SELECT * FROM [" & FeuilleSource & "$]"
        
    Set adoRst = adoConnexion.Execute(strSql)
    
    Requete = Transpose(adoRst.GetRows)
End Function
et Quid de "Provider=Microsoft.ACE.OLEDB.15.0" ?

Merci d'avance !