ADODB : "Provider=Microsoft.ACE.OLEDB.12.0" Vs "DSN=Excel Files"
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:
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:
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 !