Всем добрый день!
В декабре прошлого года после очередного обновления Windows у заказчика перестал работать SQL запрос, который до этого работал стабильно несколько лет. Возникает ошибка : "Операция не поддерживается для объектов этого типа"
На домашнем компе обновлений не было, поэтому все работает, как обычно. Обидно, т.к. этот синтаксис использовал для связи в одном запросе данных из нескольких разных файлов : в параметре Data Source задавал один файл, в Database - другой файл.
Вот сокращенный для понимания проблемы код ( для краткости Data Source и Database ссылаются на один и тот же файл) :
Sub Test()
Dim cn As Object ' Connection
Dim rs_temp As Object ' рекордсет для получения расчетных данных
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties='Excel 12.0 macro;HDR=NO;IMEX=1';"
Set rs_temp = CreateObject("ADODB.Recordset")
rs_temp.CursorType = 3 ' Статичный курсор
rs_temp.CursorLocation = 3 ' client-side курсор
'так работает
rs_temp.Open "select * from [Лист1$A1:B2]", cn
rs_temp.Close
'Здесь после обновления ОС на компах заказчика выдает ошибку "Операция не поддерживается для объектов этого типа"
rs_temp.Open "select * from [Excel 12.0 macro;Database=" & ThisWorkbook.FullName & ";HDR=NO;IMEX=1;].[Лист1$A1:B2]", cn
End Sub
Скрин ошибки :

В целом, эта тема перекликается с
Может кто из Гуру подскажет, в чем может быть дело и возможно ли это поправить кроме как откатывать обновления назад ( что в общем-то нереально) ?
В декабре прошлого года после очередного обновления Windows у заказчика перестал работать SQL запрос, который до этого работал стабильно несколько лет. Возникает ошибка : "Операция не поддерживается для объектов этого типа"
На домашнем компе обновлений не было, поэтому все работает, как обычно. Обидно, т.к. этот синтаксис использовал для связи в одном запросе данных из нескольких разных файлов : в параметре Data Source задавал один файл, в Database - другой файл.
Вот сокращенный для понимания проблемы код ( для краткости Data Source и Database ссылаются на один и тот же файл) :
Sub Test()
Dim cn As Object ' Connection
Dim rs_temp As Object ' рекордсет для получения расчетных данных
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties='Excel 12.0 macro;HDR=NO;IMEX=1';"
Set rs_temp = CreateObject("ADODB.Recordset")
rs_temp.CursorType = 3 ' Статичный курсор
rs_temp.CursorLocation = 3 ' client-side курсор
'так работает
rs_temp.Open "select * from [Лист1$A1:B2]", cn
rs_temp.Close
'Здесь после обновления ОС на компах заказчика выдает ошибку "Операция не поддерживается для объектов этого типа"
rs_temp.Open "select * from [Excel 12.0 macro;Database=" & ThisWorkbook.FullName & ";HDR=NO;IMEX=1;].[Лист1$A1:B2]", cn
End Sub
Скрин ошибки :
В целом, эта тема перекликается с
Может кто из Гуру подскажет, в чем может быть дело и возможно ли это поправить кроме как откатывать обновления назад ( что в общем-то нереально) ?