Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA - ошибка при выполнение SQL запроса на удаление к текущей книге / 10 сообщений из 10, страница 1 из 1
15.12.2021, 11:50
    #40120185
VBA - ошибка при выполнение SQL запроса на удаление к текущей книге
Добрый день!

Написал макрос для удаления записей из таблицы Excel.
Но при выполнения запроса на удаление (см. код ниже) выскакивает ошибка "Удаление данных в присоединенной таблице не поддерживается драйвером ISAM"

Можно ли как-то обойти эту ошибку? Что не так делаю?

Заранее всем спасибо!

код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub SQL()
Dim myConnect, mySQL As String, myRecord As Object
Dim Data As String, strAddress As String
    Set myRecord = CreateObject("ADODB.Recordset")
 '   Set myConnect = CreateObject("ADODB.Connection")
    strAddress = Replace(ThisWorkbook.Sheets(1).Cells(1, 1).CurrentRegion.Address, "$", "")
    
    Data = "[" & ThisWorkbook.Sheets(1).Name & "$" & strAddress & "]"
'        myConnect.open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
'           "Data Source=" & ThisWorkbook.FullName & ";" & _
'           "Extended Properties=""Excel 12.0;HDR=NO"""
        myConnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
           "Data Source=" & ThisWorkbook.FullName & ";" & _
           "Extended Properties=""Excel 12.0;HDR=NO"""

    mySQL = "DELETE * FROM " & Data & ""
'    myConnect.Execute mySQL
    myRecord.Open mySQL, myConnect

End Sub


Модератор: Учимся использовать тэги оформления кода - FAQ
...
Рейтинг: 0 / 0
15.12.2021, 13:51
    #40120217
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA - ошибка при выполнение SQL запроса на удаление к текущей книге
Кратко - почти все не так

Код: vbnet
1.
ThisWorkbook.Sheets(1).Name


Судя по этому - работаешь из самого Excel?
и удалить данные тоже из него хочешь
Код: vbnet
1.
Data = "[" & ThisWorkbook.Sheets(1).Name & "$" & strAddress & "]"


Зачем тогда использовать recordset?
Можно вполне использовать объектную модель самого Excel....

Код: vbnet
1.
2.
3.
mySQL = "DELETE * FROM " & Data & ""
'    myConnect.Execute mySQL
    myRecord.Open mySQL, myConnect


на инструкции DELETE собираемся открыть recordset??
Тс, извини но у тебя че-то все перепуталось......
пример открыть не удалось
...
Рейтинг: 0 / 0
15.12.2021, 14:00
    #40120222
VBA - ошибка при выполнение SQL запроса на удаление к текущей книге
Прошу прощения, поторопился
код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub SQL()
Dim myConnect, mySQL As String
Dim Data As String, strAddress As String
    Set myConnect = CreateObject("ADODB.Connection")
    strAddress = Replace(ThisWorkbook.Sheets(1).Cells(1, 1).CurrentRegion.Address, "$", "")
    
    Data = "[" & ThisWorkbook.Sheets(1).Name & "$" & strAddress & "]"

        myConnect.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
           "Data Source=" & ThisWorkbook.FullName & ";" & _
           "Extended Properties=""Excel 12.0;HDR=YES"""
    mySQL = "DELETE * FROM " & Data & ""
    myConnect.Execute mySQL
End Sub



Выдает ошибку "Удаление данных в присоединенной таблице не поддерживается драйвером ISAM"
...
Рейтинг: 0 / 0
15.12.2021, 14:29
    #40120235
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA - ошибка при выполнение SQL запроса на удаление к текущей книге
там не сводная?
...
Рейтинг: 0 / 0
15.12.2021, 14:34
    #40120238
VBA - ошибка при выполнение SQL запроса на удаление к текущей книге
Нет, обычная таблица из 2-х столбцов. В первом фамилии, во втором - количество баллов
Файл, к сожалению, не удается прикрепить
...
Рейтинг: 0 / 0
15.12.2021, 15:45
    #40120276
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA - ошибка при выполнение SQL запроса на удаление к текущей книге
Начинающий VBA Coder
Нет, обычная таблица из 2-х столбцов. В первом фамилии, во втором - количество баллов
Файл, к сожалению, не удается прикрепить

Все таки я не понимаю, зачем делать это через sql?
Почему не использовать объектную модель Excel?
...
Рейтинг: 0 / 0
15.12.2021, 17:32
    #40120323
VBA - ошибка при выполнение SQL запроса на удаление к текущей книге
Просто для того, чтобы понять, как это делать через ADO
...
Рейтинг: 0 / 0
16.12.2021, 06:41
    #40120465
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA - ошибка при выполнение SQL запроса на удаление к текущей книге
Начинающий VBA Coder
Просто для того, чтобы понять, как это делать через ADO

Ну - это достойная причина:))(Без подколов - мне самому интересно) Поскольку моих знаний не хватает для ответа на этот вопрос - подождем более опытных товарищей.
...
Рейтинг: 0 / 0
16.12.2021, 11:01
    #40120530
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA - ошибка при выполнение SQL запроса на удаление к текущей книге
Начинающий VBA Coder
Просто для того, чтобы понять, как это делать через ADO

OLE DB провайдер запрещает операцию удаления для листа Excel.
Вместо этого можно сделать Update пустыми значениями.
...
Рейтинг: 0 / 0
16.12.2021, 11:12
    #40120541
VBA - ошибка при выполнение SQL запроса на удаление к текущей книге
big-duke
Начинающий VBA Coder
Просто для того, чтобы понять, как это делать через ADO

OLE DB провайдер запрещает операцию удаления для листа Excel.
Вместо этого можно сделать Update пустыми значениями.


Да, нашел описание на stackoverflow, ссылка (правда для C#):
https://stackoverflow-com.translate.goog/questions/21170884/deleting-data-in-a-linked-table-is-not-supported-by-this-isam-exception-in-c-sha?_x_tr_sl=en&_x_tr_tl=ru&_x_tr_hl=ru&_x_tr_pto=sc

Всем спасибо!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA - ошибка при выполнение SQL запроса на удаление к текущей книге / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]