ERRO 3167 SOLUCAO CRIATIVA
Gostaria de agradecer as pessoas que me ajudaram na resolução deste problema, vou demonstrar o problema e a solução encontrada, espero que ajude mais programadores, vamos lá
O problema
if rs_db("nome") = form2.txt_variavel.text then
while not eof rs_clientes
rs_clientes.delete
rs_clientes.movenext
loop
end if
Este código retornava o erro 3167, devido que estava tentado mover o recordset , só que ja hávia sido deletado
A solução
Foi justamente criar um método que depois que o recordset fosse deletado , ele chamasse de novo o recordset, e assim pensei em fazer ele procurar de novo o record set , e a solução ficou
Dim contador As Long
Dim libera As String
contador = 0
inicio:
rs_colaboradores.Seek "=", Form2.txt_nome.Text
If rs_colaboradores.NoMatch Then
contador = contador
libera = "sim"
Else
rs_colaboradores.Delete
contador = contador + 1
libera = "nao"
End If
If libera = "nao" Then GoTo inicio:
MsgBox ("Existiam " & contador & "contribuições cadastradas para " & Form2.txt_nome.Text)
Vou ficando por aqui, mas notem que com este tipo de rotina é possÃvel inclusive contar quantos recordset s foram deletados.
Valeu galera
O problema
if rs_db("nome") = form2.txt_variavel.text then
while not eof rs_clientes
rs_clientes.delete
rs_clientes.movenext
loop
end if
Este código retornava o erro 3167, devido que estava tentado mover o recordset , só que ja hávia sido deletado
A solução
Foi justamente criar um método que depois que o recordset fosse deletado , ele chamasse de novo o recordset, e assim pensei em fazer ele procurar de novo o record set , e a solução ficou
Dim contador As Long
Dim libera As String
contador = 0
inicio:
rs_colaboradores.Seek "=", Form2.txt_nome.Text
If rs_colaboradores.NoMatch Then
contador = contador
libera = "sim"
Else
rs_colaboradores.Delete
contador = contador + 1
libera = "nao"
End If
If libera = "nao" Then GoTo inicio:
MsgBox ("Existiam " & contador & "contribuições cadastradas para " & Form2.txt_nome.Text)
Vou ficando por aqui, mas notem que com este tipo de rotina é possÃvel inclusive contar quantos recordset s foram deletados.
Valeu galera
Com o ADO, no método Execute, você pode apanhar o número de registros processados na mesma linha, poupando código. Por exemplo:
...
oCN.Execute "DELETE * FROM PENDENTES WHERE QUITADO = True;", nVAR
Msgbox "Foram eliminadas " & nVAR & " pendências." , vbOkOnly + vbInformation
...
...
oCN.Execute "DELETE * FROM PENDENTES WHERE QUITADO = True;", nVAR
Msgbox "Foram eliminadas " & nVAR & " pendências." , vbOkOnly + vbInformation
...
Tópico encerrado , respostas não são mais permitidas