1

我正在使用带有宏的 Excel 2010 来访问另一个每日电子表格以提取数据以形成 FTP 记录文件。我遇到的具体问题是运行时连接错误。我得到的错误是“-2147467259(80004005)”:无法识别的数据库格式“C:\Work\Daily FTP Process\Excel DBs and Files\ftp.xlsx”。我只需要它知道在哪里看。这是手表的连接字符串:

: ConnectionString : "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Work\Daily FTP >Process\Excel DBs and Files\ftp.xlsx;" : 字符串 : Module1.XLFixedFieldFile

这是相关(或不相关)的代码:

Dim conn As Object
Dim cmd As Object
Dim psidRecSet As Object
Dim loopIndex As Long
Dim connString As String
Dim sqlString As String

Set conn = CreateObject("ADODB.Connection")
Set cmd = CreateObject("ADODB.Command")

connString = "Provider=Microsoft.ACE.OLEDB.12.0;" _
   & "Data Source=" & XLName & ";"
conn.Open connString    <==== Here is the line where it is breaking
4

2 回答 2

1

解决了!有效的连接字符串如下:

    connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & XLName & 
    "';Extended Properties='Excel 12.0;HDR=NO;IMEX=1';" 

Remou,我试过了,但是出了点问题,出错了。在另一个论坛中找到的工作行的复制和粘贴是我的救赎。我很感激帮助。

对于使用此 y 解决问题的其他人,要使用 Excel 2010,我转到“工具/参考”并启用 Microsoft AcriveX 数据对象 6.1 库和 Microsoft ActiveX 数据对象 Recordset 6.0 库。

    Dim conn As Object
    Set conn = CreateObject("ADODB.Connection")
    connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & XLName & 
    "';Extended Properties='Excel 12.0;HDR=NO;IMEX=1';"
    conn.Open connString
于 2013-02-07T15:48:55.047 回答
0

你要:

 connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _ 
 & xlFile & ";Extended Properties='Excel 12.0 Xml;HDR=No;IMEX=1';"

请注意扩展属性的引号。

您可能想阅读http://support.microsoft.com/kb/257819,特别是 IMEX。

于 2013-02-06T18:28:50.277 回答