首页 > 解决方案 > 建立与 Excel 文件的连接时无法识别的数据库格式

问题描述

我正在尝试构建一个加载项,它将与可选数据库(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

因为我是本节的新手,我不能自己调试代码你能指出是什么导致代码出错吗?我尝试在某个地方进行研究,但其中大多数在访问中并不擅长

非常感谢你

标签: excelvba

解决方案


您的连接字符串中缺少分号,如果您的文件名包含空格,则可能是引号。

线

.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';"

这是可能的连接字符串格式的一个很好的参考。


推荐阅读