Funkcja XLSConnectionString strona główna:
A po co ten Excel ;-)
    Wraz z nastaniem nowych typów plików w Excelu 2007 zmienił się też istotnie sposób w jaki można importować z nich dane.
Dzięki ADO import ten jest dość łatwy i wydajny jednak ConnectionString trzeba budować dla każdego typu pliku inaczej. Zmienił się
Provider na "Microsoft.ACE.OLEDB.12.0 i  "Extended Properties" dla każdego z typów plików.
    Chciałem jednak jakoś sobie sprawę uprościć i tak powstała ta funkcja (to w sumie drugie jej wydanie)
Zadaniem funkcji jest zbudowanie poprawnego ConnectionString dla pliku z którego importujemy dane podając jedynie jego pełną
ścieżkę, oraz informacje: czy dane posiadają nagłówek, i sposób określania typu danych.
Tak powstała funkcja XLSConnectionString.
Option Explicit
Function XLSConnectionString(strXLSFileFullName As String, _
                             Optional HDR As String = "Yes", _
                             Optional IMEX As Integer = 0) As String
                              
    Dim strExtension As String
    Dim strConnString As String, strProvider As String, strExtProp As String
    
    strExtension = Right(strXLSFileFullName, _
                         Len(strXLSFileFullName) - _
                            InStrRev(strXLSFileFullName, _
                            ".", _
                            Len(strXLSFileFullName)))
    Select Case Len(strExtension)
        Case 3
            Select Case Val(Application.Version)
                Case Is > 11
                    ' ---------------'E2007-E2010---------------
                    'Excel 97-2003 Xls files with ACE OLEDB 12.0
                    'http://www.connectionstrings.com/excel#p84
                    strProvider = "Microsoft.ACE.OLEDB.12.0"
                    strExtProp = "Excel 12.0"
                    
                Case Is <= 11
                    '    Connection strings for Excel 2007
                    'http://www.connectionstrings.com/excel-2007
                    
                    strProvider = "Microsoft.Jet.OLEDB.4.0"
                    strExtProp = "Excel 8.0"
            End Select
            
        Case 4
            strProvider = "Microsoft.ACE.OLEDB.12.0"
            Select Case strExtension
                '    Connection strings for Excel 2007
                'http://www.connectionstrings.com/excel-2007
                
                Case "xlsx": strExtProp = "Excel 12.0 Xml"
                Case "xlsm": strExtProp = "Excel 12.0 Macro"
                Case "xlsb": strExtProp = "Excel 12.0"
            End Select
    End Select
    
    XLSConnectionString = "Provider=" & strProvider & ";" & _
                          "Data Source=" & strXLSFileFullName & ";" & _
                          "Extended Properties=""" & strExtProp & ";" & _
                                               "HDR=" & HDR & ";" & _
                                               "IMEX=" & IMEX & """"
End Function
2007 Office System Driver: Data Connectivity Components
Poprzednia wersja nie dopuszczała importu z plików nowych typów (xlsx, xlsm, xlsb) do Excela w wersji 2003 ( i młodszych)
Jednak jest to możliwe po doinstalowaniu Silnika: 2007 Office System Driver (AccessDatabaseEngine.exe )