День добрый!
Возникла задача по добавлению в один лист данных из другого в Excel. Написал код:
Dim cn As New ADODB.Connection
Dim cm As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim myCommandString As String
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=c:\temp\OR Event Database v2.xls;" & "Extended Properties=""Excel 8.0;HDR=Yes;"""
cn.Open
cm.ActiveConnection = cn
myCommandString = "SELECT list2.[Nomer], list1.[Coincident Name], list1.[Internal Classification] FROM [FullTable$] list2, [Лист1$] list1 WHERE list1.[Full Description] LIKE list2.[Opisanie]"
MsgBox myCommandString
cm.CommandText = myCommandString
cm.CommandType = adCmdText
cm.Execute
rs.CursorType = adOpenStatic
rs.LockType = adLockReadOnly
rs.Open cm
Workbook.Open "c:\temp\OR Event Database v2.xls"
Dim currentRow As Long
If (Not rs.BOF And Not rs.EOF) Then
rs.MoveFirst
Do While Not (rs.EOF)
currentRow = rs.Fields(1).Value + 1
Workbooks("OR Event Database v2.xls").Worksheets("Full Table").Cells(currentRow, 6).Value = rs.Fields(2).Value
Workbooks("OR Event Database v2.xls").Worksheets("Full Table").Cells(currentRow, 7).Value = rs.Fields(3).Value
rs.MoveNext
Loop
End If
Код вешается на cm.Execute — выдает Automation Error (80040e14). Не могу понять, что ему не нравится в моём запросе. Все поля проверил, всё корректно. LIKE менял на = — бесполезно. Причём, вешается именно на сравнении (если лайк или = убрать и заменить другой командой, то всё нормально работает).
Помогите, пожалуйста, господа гуру.
Спасибо!