Доброго времени суток.
Стоит задача, проставлять галочки напротив строк, которые необходимо удалять, нажимать кнопку для запуска макроса и отмеченные строки нужно удалить из таблицы в БД. Я в VBA не силен... Пожалуйста помогите... Взял по аналогии вот такой чужой код, попытался переделать под себя, но выдает ошибку на строке
arr(i) = sn.Cells(t, 9)
Run-time error '6':
Overflow
Файл с таблицей приложил, код ниже и в самом файле
Стоит задача, проставлять галочки напротив строк, которые необходимо удалять, нажимать кнопку для запуска макроса и отмеченные строки нужно удалить из таблицы в БД. Я в VBA не силен... Пожалуйста помогите... Взял по аналогии вот такой чужой код, попытался переделать под себя, но выдает ошибку на строке
arr(i) = sn.Cells(t, 9)
Run-time error '6':
Overflow
Файл с таблицей приложил, код ниже и в самом файле
| Код |
|---|
Global sn
Global PosStr As Integer
Sub deletrs() 'удаление записей
Dim i, t As Integer
Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
Set sn = ThisWorkbook.Sheets("test")
PosStr = sn.Cells(6, 3).End(xlDown).Row
t = 6
i = 1
Dim arr() As Integer
ReDim arr(1 To i) As Integer
For t = 6 To PosStr
If IsEmpty(sn.Cells(t, 1)) = False Then
arr(i) = sn.Cells(t, 9)
i = i + 1
End If
Next
cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=******;Password=******;Data Source=ahdb1c;Use Procedure for Prepare=1;Auto Translate=True"
cn.Open
'открываем recordset
Set rs = CreateObject("ADODB.Recordset")
rs.cursortype = adOpenKeyset
rs.locktype = adLockOptimistic
rs.Open "select * from baza.dbo.mog_корректировка_бюджета_copy", cn
i = 1
For i = LBound(arr) To UBound(arr)
rs.Find "id=" & arr(i)
rs.Delete
rs.movenext
Next
PosStr = Empty
MsgBox ("Данные удалены")
End Sub |