Нераспознанный формат базы данных при создании соединения с файлом Excel - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь создать надстройку, которая создаст соединение с дополнительной базой данных (Excel или файл доступа).

Это нормально с доступом, но при попытке с файлом Excel возникает ошибка ниже:

"Нераспознанный формат базы данных"

Sub export_data()
    Dim conn As ADODB.Connection
    Dim flg As FileDialog
    Dim dtpth As String


    Set flg = Application.FileDialog(msoFileDialogFilePicker)
    With flg
        .AllowMultiSelect = False
        .Filters.Clear
        .Filters.Add Description:="Database file type", Extensions:="*.xls,*.xlsx,*.xlsm,*.accdb"
        .Filters.Add Description:="All types", Extensions:="*.*"
        .Title = "Chon file database"
        If .Show = -1 Then
            dtpth = .SelectedItems(1)
            Sheet2.Range("A1").Value = dtpth
        End If
    End With

    Set conn = New ADODB.Connection
    With conn
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        If Sheet2.Range("A2").Value = "*ls*" Then
            .ConnectionString = "Data Source=" & dtpth & "Extended properties='Excel 16.0 xml;HDR=Yes;IMEX=1';"
            .Open
        Else
            .ConnectionString = "Data Source=" & dtpth & ";"
            .Open
        End If
    End With

End Sub

Потому что я новичок в этом разделе, я не могу самостоятельно отладить код Не могли бы вы указатьчто делает код не так? Я пытаюсь где-то исследовать, но большинство из них не имеют доступа

Большое спасибо

1 Ответ

0 голосов
/ 06 ноября 2019

Вам не хватает точки с запятой в строке подключения, и, возможно, кавычки, если ваше имя файла содержит пробелы.

Строка

.ConnectionString = "Data Source=" & dtpth & "Extended properties='Excel 16.0 xml;HDR=Yes;IMEX=1';"

должна выглядеть как

.ConnectionString = "Data Source='" & dtpth & "';Extended properties='Excel 16.0 xml;HDR=Yes;IMEX=1';"

Вот хорошая ссылка для возможных форматов строки подключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...