Тема: Ошибка ADODB.Recordset: Аргументы имеют неверный тип
Пытаюсь получить из базы SQL данные для того чтобы потом их выводить в Excel. Я получаю Recordset из одной таблицы базы, а потом из другой таблицы той же базы. Проблема в том, что таблицы устроены по-разному и первую таблицу я беру как есть, а во второй мне нужно искать соответствующие записи. Метод Recordset.Find не работает, если Recordset получен с помощью Connection.Execute. И я пытаюсь создать второй Recordset с помощью Recordset.Open:
Set objSQLServer = CreateObject("ADODB.Connection")
Set RS1 = CreateObject("ADODB.Recordset")
Conn_string = "Driver={SQL Server};Server=DB1;database=E3v2011;Trusted_Connection=true"
objSQLServer.Open Conn_string
Cmd_string = "SELECT ENTRY, Version, VersionText, LASTUPDT, Class, Description, Supplier, ArticleNumber, ENTRYTYP, DeviceLetterCode, Flags FROM ComponentData ORDER BY ENTRY"
Set RS = objSQLServer.Execute (Cmd_string, adCmdText)
Cmd_string1 = "SELECT ENTRY, AttributeName, AttributeValue FROM ComponentAttribute WHERE AttributeName='D2K_Dev_Sub_Class' OR AttributeName='D2K_1C_Code' OR AttributeName='Name_1C' OR AttributeName='Naimenovanie_V4' OR AttributeName='Marka' OR AttributeName='Block_E2' OR AttributeName='Complect' OR AttributeName='D2K_Status' OR AttributeName='SubSystem' ORDER BY ENTRY"
RS1.Open Cmd_string1, objSQLServer, adOpenKeyset, adLockOptimistic, adCmdTextВ результате появляется ошибка:
Error: Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом.
Code: 800A0BB9
Source: ADODB.Recordset
System: Указанный драйвер принтера занят.
При этом вариант с Connection.Execute для обеих таблиц работает:
Set objSQLServer = CreateObject("ADODB.Connection")
Conn_string = "Driver={SQL Server};Server=DB1;database=E3v2011;Trusted_Connection=true"
objSQLServer.Open Conn_string
Cmd_string = "SELECT ENTRY, Version, VersionText, LASTUPDT, Class, Description, Supplier, ArticleNumber, ENTRYTYP, DeviceLetterCode, Flags FROM ComponentData ORDER BY ENTRY"
Set RS = objSQLServer.Execute (Cmd_string, adCmdText)
Cmd_string1 = "SELECT ENTRY, AttributeName, AttributeValue FROM ComponentAttribute WHERE AttributeName='D2K_Dev_Sub_Class' OR AttributeName='D2K_1C_Code' OR AttributeName='Name_1C' OR AttributeName='Naimenovanie_V4' OR AttributeName='Marka' OR AttributeName='Block_E2' OR AttributeName='Complect' OR AttributeName='D2K_Status' OR AttributeName='SubSystem' ORDER BY ENTRY"
Set RS1 = objSQLServer.Execute (Cmd_string1, adCmdText) Что я не так делаю в первом варианте?

