3

我正在尝试使用 ADO 连接从已关闭的 Excel 2007 工作簿 (.xlsx) 中复制数据。

我有连接字符串工作。但是当我尝试在记录集中打开命令时出现自动化错误(倒数第二行)。

这在下面的代码中可能不清楚,所以:

“wsSummary”是一个工作表对象 “strSourceFile”是一个字符串,其中包含我需要从中复制的目标数据(例如 Template.xlsx)

strSourceFile = wsSummary.Cells(nFirstRow + 4, 7)
strSheetSource = "Sheet1"
strSQL = "SELECT * FROM [" & strSheetSource & "]"

Set dbConnection = New ADODB.Connection
With dbConnection
    .Provider = "Microsoft.ACE.OLEDB.12.0;"
    .connectionString = "Data Source=" & strPOINTDataPath & strSourceFile & _
                        ";Extended Properties=""Excel 12.0 Xml;HDR=NO;IMEX=1"";"
    .ConnectionTimeout = 40
    .Open
End With
If dbConnection = "" Then GoTo ErrorText

Set cmd = New ADODB.Command
With cmd
    .ActiveConnection = dbConnection
    .CommandText = strSQL
End With

Set rs = New ADODB.Recordset
With rs
    .ActiveConnection = dbConnection
    .CursorLocation = adUseClient
    .CursorType = adOpenDynamic
    .LockType = adLockOptimistic
    .Open cmd
End With
4

1 回答 1

1

我认为你错过$ character了你的 SQL 语句。尝试将适当的行更改为这一行:

strSQL = "SELECT * FROM [" & strSheetSource & "$]"

或更改strSheetSource variable为:

strSheetSource = "Sheet1$"
于 2013-08-09T10:46:10.907 回答