powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Удаление строк таблицы через ADO
3 сообщений из 3, страница 1 из 1
Удаление строк таблицы через ADO
    #37963230
anvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что не верно в коде для удаления строк таблицы?
Пробую так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public Sub DeleteRecord()
    Dim pConn As New ADODB.Connection
    Dim pCom As New ADODB.Command
    pConn.Mode = adModeShareDenyNone
    pConn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\path\name.xlsm;Extended Properties=""Excel 12.0;HDR=YES"";"
    pCom.ActiveConnection = pConn
    pCom.CommandType = adCmdText
    pCom.CommandText = "Delete * From [Sheet$] Where [ID]=1"
    pCom.Execute
    pConn.Close


и так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Sub DeleteRecord2()
    Dim pConn As New ADODB.Connection
    Dim pRSet As New ADODB.RecordSet
    pConn.Mode = adModeShareDenyNone
    pConn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\path\name.xlsm;Extended Properties=""Excel 12.0;HDR=YES"";"
    pRSet.CursorLocation = adUseClient: pRSet.CursorType = adOpenStatic
    pRSet.LockType = adLockPessimistic
    pRSet.Open "Select * From [Sheet$] Where [ID]=0", pConn
    If pRSet.RecordCount > 0 Then
        pRSet.MoveFirst
        pRSet.Delete adAffectCurrent
        pRSet.Update
    End If
    pRSet.Close: pConn.Close
End Sub


В обоих случаях получаю сообщение об ошибке "Удаление данных в присоединённой (или связанной) таблице не поддерживается драйвером ISAM."
Вставка строк и обновление работают как положено. Пробовал для Provider=Microsoft.Jet.OLEDB.4.0, сохранив файл в формате 2003, получаю то же самое.
Верно ли утверждение, что в Excel нельзя удалить строки таблицы используя ADO?
...
Рейтинг: 0 / 0
Удаление строк таблицы через ADO
    #37963352
anvg
Верно ли утверждение, что в Excel нельзя удалить строки таблицы используя ADO?
Угу. Строку целиком нельзя удалить, если верить MS
MSYou are more restricted in deleting Excel data than data from a relational data source. In a relational database, "row" has no meaning or existence apart from "record"; in an Excel worksheet, this is not true. You can delete values in fields (cells). However, you cannot:
Delete an entire record at once or you receive the following error message:
Deleting data in a linked table is not supported by this ISAM.
You can only delete a record by blanking out the contents of each individual field.
Delete the value in a cell containing an Excel formula or you receive the following error message:
Operation is not allowed in this context.
You cannot delete the empty spreadsheet row(s) in which the deleted data was located, and your recordset will continue to display empty records corresponding to these empty rows.
...
Рейтинг: 0 / 0
Удаление строк таблицы через ADO
    #37963633
anvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
комплектовщик
Спасибо. По вашему тексту на хорошую статью вышел.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Удаление строк таблицы через ADO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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