Получение "[Microsoft] [Драйвер ODBC SQL Server] [SQL Server] Неверный синтаксис рядом с" Microsoft. " - PullRequest
0 голосов
/ 26 марта 2010

Я получаю сообщение об ошибке: «[Microsoft] [Драйвер ODBC SQL Server] [SQL Server] Неверный синтаксис рядом с« Microsoft ».

Вот код:

Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim stSQL As String




Public Sub loadData()
 'This was set up using Microsoft  ActiveX Data Components version 6.0.



 'Create ADODB connection object, open connection and 
 '       construct the connection string object which is the DSN name.
 Set conn = New ADODB.Connection
 conn.ConnectionString = "sql_server"

conn.Open
'conn.Execute (strSQL)

On Error GoTo ErrorHandler

'Open Excel and run query to export data to SQL Server.
strSQL = "SELECT * INTO SalesOrders " & _
         "FROM OPENDATASOURCE(Microsoft.ACE.OLEDB.12.0;" & _
         "Data Source=C:\Workbook.xlsx;" & _
         "Extended Properties=Excel 12.0; [Sales Orders])"

conn.Execute (strSQL)

'Error handling.
ErrorExit:
 'Reclaim memory from the cntection objects
 Set rst = Nothing
 Set conn = Nothing

Exit Sub

ErrorHandler:
   MsgBox Err.Description, vbCritical
   Resume ErrorExit


'clean up and reclaim memory resources.
conn.Close
If CBool(cnt.State And adStateOpen) Then
Set rst = Nothing
Set conn = Nothing

End If

End Sub

Ответы [ 2 ]

0 голосов
/ 26 марта 2010

Аргумент провайдера, передаваемый в OPENDATASOURCE, является строкой, поэтому должен быть заключен в кавычки. Вы также обращаетесь к листу в вызове OPENDATASOURCE, что неверно;

     strSQL = "SELECT * INTO SalesOrders " & _
       "FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0'," & _
       "'Data Source=C:\Workbook.xlsx;" & _
       "Extended Properties=Excel 12.0')...[Sales Orders]"
0 голосов
/ 26 марта 2010

Попробуйте следующий синтаксис

xls

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[FilePath];Extended Properties=”Excel 8.0;HDR=YES;IMEX=1”

XLSX

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[FilePath];Extended Properties=Excel 12.0 Xml;HDR=YES;IMEX=1

HDR = Да указывает, что первая строка данных содержит имена столбцов, а не данные, поэтому установите их соответствующим образом (Да, Нет)

IMEX = 1 указывает, что драйвер должен всегда читать «смешанные» столбцы данных как текст

ref: http://weblogs.asp.net/rajbk/archive/2009/05/02/uploading-an-excel-file-to-sql-through-an-asp-net-webform.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...