excel - 建立与 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
因为我是本节的新手,我不能自己调试代码你能指出是什么导致代码出错吗?我尝试在某个地方进行研究,但其中大多数在访问中并不擅长
非常感谢你
解决方案
您的连接字符串中缺少分号,如果您的文件名包含空格,则可能是引号。
线
.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';"
这是可能的连接字符串格式的一个很好的参考。
推荐阅读
- string - 在 Fortran 中比较字符串的问题?
- jquery - ASP.NET 复选框未设置布尔值
- php - 如何在 Linux 的 Visual Studio 代码上运行 php 文件
- c++ - 如何通过 CNG 从证书存储中将 EC 私钥导出为 PKCS#1 或 PKCS#8 格式?
- python - 使用 Python 将 TIF 图像转换为 jpg 时出错
- c - 我正在尝试永久更改字符串,但这段代码没有这样做
- java - 在 Android Q 中从外部存储访问照片
- java - 如何修复错误错误:找不到符号导入 com.stripe.android.TokenCallback;
- django-viewflow - 如何使用视图流中的编辑功能开始后退一步
- r - 为什么 boxplot() 会影响项目符号索引大小?