2017-08-08 38 views
0

ExcelテーブルをMsSQLテーブルまたは他のExcelテーブルにJOINできます。私は2番目のケースをテストしようとしています。 OPENROWSETを使用してExcelテーブルからデータを取得しようとしています。後でテーブルを結合するためにこれを使用しますが、今この単純なクエリでも作業できません。FROM句のVBA OPENROWSET構文エラー

Ciselnik1はTest.xlsxブックのワークシートであり、ヘッダを持つ小さなテーブルを含む:

FK__S_HEAD | Desc 
------------------------------- 
ODD AM  | ODD - description1 
ODDZP  | ODD - desc2 

follwingコードがエラー "FROM句の構文エラー" 投げている:

Sub TestExternalSQLwithCisJoin() 
Dim objConn As ADODB.Connection, objCmd As ADODB.Command, objRS As ADODB.Recordset 
Dim sPath As String, sSQL As String, sConn As String 

Set objConn = New ADODB.Connection 
Set objCmd = New ADODB.Command 
Set objRS = New ADODB.Recordset 

sSQL = "SELECT * FROM OPENROWSET(""Microsoft.ACE.OLEDB.12.0"",""Database=c:\...\Test.xlsx;Extended Properties=Excel 12.0 Xml;HDR=YES"",""SELECT * FROM [Ciselnik1$]"")" 

sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\...\Test.xlsm;Extended Properties=""Excel 12.0 Macro;HDR=YES"";" 

Set objConn = New ADODB.Connection 

'MsgBox sSQL 

objConn.Open sConn 
'objRS.Open sSQL, objConn, adOpenStatic, adLockBatchOptimistic, adCmdText 
objConn.Execute sSQL, lngRecsAff, adExecuteNoRecords 

Dim A0cell As Range 
Worksheets("Test").Activate 
Set A0cell = Worksheets("Test").Cells(1, 1) 
A0cell.CopyFromRecordset objRS 

End Sub 

答えて

0

OPENROWSETは、Microsoft.ACE.OLEDB.12.0プロバイダがサポートする関数ではありません。