Когда я использую этот код, он всегда выдает ошибку, можете ли вы кому-нибудь помочь в этом или кто-то посоветовать. Возможно ли, что я могу удалить определенные данные с помощью текстового поля или еще? ... Простите за плохой английский: D
Dim cn As New OleDbConnection
Dim cm As New OleDbCommand
cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\ProjectBsit4B\Book1.xlsx ;Extended Properties=Excel 12.0;"
cn.Open()
With cm
.Connection = cn
.CommandText = "delete [gmail$] set [NAME]= '" & txtboxName3.Text & "', [DEPARTMENT]= '" & Cb3.Text & "', [NOTES]='" & txtboxNotes3.Text & "' Where [EMAIL]='" & txtboxEmail3.Text & "' "
.ExecuteNonQuery()
End With
delete [gmail$] set [NAME] ...
=> это неправильный синтаксис запроса DELETE
, поскольку SET
всегда сочетается с UPDATE
. Используйте такой запрос на удаление: DELETE FROM [sheetname$] WHERE ...
.
Я изменил его, но это приведет к ошибке «Удаление данных в связанной таблице не поддерживается этим ISAM». .CommandText = "удалить * из [gmail $] Где [NAME] = '" & txtboxName3.Text & "', [DEPARTMENT] = '" & Cb3.Text & "', [NOTES] = '" & txtboxNotes3.Text & "'[EMAIL] ='" & txtboxEmail3.Text & "'"
Вы не можете удалять строки с помощью OleDb в Excel:
Although the Jet OLE DB Provider allows you to insert and update records in an Excel workbook, it does not allow DELETE operations. If you try to perform a DELETE operation on one or more records, you receive the following error message...
От https://social.msdn.microsoft.com
Что вы можете сделать, так это обновить каждую ячейку в строке, который вы хотите удалить, и установить их кому: NULL
Для обновления запрос может быть таким:
.CommandText = "update [gmail$] set [NAME]= '', [DEPARTMENT]= '', [NOTES]='' Where [EMAIL]='" & txtboxEmail3.Text & "' "
Это очень странный запрос DELETE. Возможно, вы захотите изучить правильный синтаксис SQL ... и, возможно, изучить SQL-инъекцию и параметры SQL