Коллеги, появился затык))) При обозначенном выше коде получается обрабатывать только 65536 строк. Если больше,вылезает ошибка Объект не найден. Видимо,не хватает буфера обмена...Подскажите,это в excel 2010 такое ограничение? Или в Access? Как это обойти?
Dim sCon, sSql As String
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
sCon = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=d:\Database2.accdb;Uid=Admin;Pwd=;"
cn.Open sCon
Set rs = CreateObject("ADODB.Recordset")
sSql = "SELECT ПОб FROM SKU_искл as b" _
& " RIGHT OUTER JOIN [Excel 12.0 Xml;DATABASE=" & ThisWorkbook.FullName & ";HDR=YES;IMEX=1;].[ПОб$b1:c70000] as a ON b.ТК=a.ТК AND b.Товар=a.Товар"
Sheets("ПОб").[E2].CopyFromRecordset cn.Execute(sSql)
Код выше по-прежнему отказывается работать с кол-вом строк более 65000(((
еще как вариант можно загнать критерий отбора в access и уже тогда можно спокойно получить необходимый набор данных и вернуть его в excel, но это будет медленно, так как загрузка в access займет время.
Пошерстил форумы, ничего не нашел по этой теме (наверно, запрятано где-то))) - пришлось обратиться на др. форум - там помогли, обяснили, что это глюк Excel - точнее, недоработка! Нужно просто в запросе не указывать диапазон.