Страницы: Пред. 1 2
RSS
Избавиться от цикла в запросе
 
Коллеги, появился затык)))
При обозначенном выше коде получается обрабатывать только 65536 строк. Если больше,вылезает ошибка Объект не найден. Видимо,не хватает буфера обмена...Подскажите,это в excel 2010 такое ограничение? Или в Access? Как это обойти?
Изменено: modcom - 09.01.2015 01:13:30
 
покажите текст кода, где обозначены провайдеры
 
Такой код:
Код
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")
 
драйвер (excel) указанный в строке запроса
 
Надеюсь,на этот раз я понял правильно!)
Изменено: modcom - 09.01.2015 01:14:35
 
попробуйте добавить Excel 12.0 Xml
т.е.
Код
[Excel 12.0 Xml;DATABASE=" & ThisWorkbook.FullName & ";HDR=YES;IMEX=1;].[tt$b1:c20]
Изменено: B.Key - 09.01.2015 01:14:45
 
Код
 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(((
 
разбивайте на 2 запроса, это ж не проблема сначала тысяч 60 и потом остальное.
 
Спасибо большое вам снова! А с чем может быть связано данное ограничение?
 
Скорее всего в старом драйвере который используется
[excel..................
еще не факт что прочитает строки в ексель ниже 65536
 
Большая просьба подсказать,как называется новый драйвер - прочитаю про него! По запросу excel драйвер подключения - Гугол ничего интересного не выдал.
Изменено: modcom - 08.01.2015 21:25:41
 
Я пробовал так, но увы не катит  :(

Код
[Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName _
            & ";Excel 12.0;HDR=YES;IMEX=1;]
 
 
Спасибо! Значит, буду как-то строить запросы, разбивая на части.
 
еще как вариант можно загнать критерий отбора в access и уже тогда можно спокойно получить необходимый набор данных и вернуть его в excel, но это будет медленно, так как загрузка в access займет время.
 
Спасибо еще раз!

Пошерстил форумы, ничего не нашел по этой теме (наверно, запрятано где-то))) - пришлось обратиться на др. форум - там помогли, обяснили, что это глюк Excel - точнее, недоработка!
Нужно просто в запросе не указывать диапазон.
Код
[ПОб$]
И без диапазона верно, все получилось!
Изменено: modcom - 11.01.2015 00:42:38
Страницы: Пред. 1 2
Наверх