3

ADO 接続を使用して、閉じた Excel 2007 ブック (.xlsx) からデータをコピーしようとしています。

接続文字列が機能しています。しかし、Recordset で Command を開こうとすると、オートメーション エラーが発生します (最後から 2 行目)。

これは、以下のコードでは明確でない可能性があるため、次のようになります。

「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

$ characterSQLステートメントを見逃したと思います。適切な行を次のように変更してみてください。

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

またはstrSheetSource variableこれに変更:

strSheetSource = "Sheet1$"
于 2013-08-09T10:46:10.907 に答える