VB6 RUN-TIME ERROR -2147217864 80040E38
Este é o único form em meu projeto com controle vinculado ADODC e está dando o erro aima na linha
[ô] Apostas.Recordset.Delete [ô] na programação de um commandbutton de nome [ô] Del_Apostas [ô].
Ocorre que na gravação do acess com um lote de 210 registros, deleta todos e não dá erro, mas com um
lote de 420, 640, . . . registros, deleta 02 registros e retorna o erro acima. Cada gravação gera um lote
de 210 registros.
Estou enferrujado na programação (a mais de uma ano sem mexer com nada) e acredito que o erro acima é simples, porem não estou conseguindo resolver.
Se alguém puder ajudar eu agradeço muito.
Meu código:
Private Sub Del_Apostas_Click()
If Apostas.Recordset.RecordCount <> 0 Then
Screen.MousePointer = vbHourglass
ProgressBar1.Visible = True
ProgressBar1.Max = Apostas.Recordset.RecordCount
While Not Apostas.Recordset.EOF
DoEvents
ProgressBar1.Value = ProgressBar1.Value + 1
Apostas.Recordset.Delete
Apostas.Recordset.MoveNext
Wend
ProgressBar1.Visible = False
Screen.MousePointer = vbDefault
End If
If Apostas.Recordset.RecordCount <> 0 Then
Label2.Caption = [Ô]Registro: [Ô] & Format$(Format(CStr(Apostas.Recordset.AbsolutePosition), [Ô]###,##0[Ô]), [Ô]@@@@@@@[Ô]) & [Ô] de: [Ô] & Format$(Format(Apostas.Recordset.RecordCount, [Ô]###,##0[Ô]), [Ô]@@@@@@@[Ô]) & [Ô] Registros[Ô]
Else
Label2.Caption = [Ô]Registro: [Ô] & Format$(Format(CStr(0), [Ô]###,##0[Ô]), [Ô]@@@@@@@[Ô]) & [Ô] de: [Ô] & Format$(Format(Apostas.Recordset.RecordCount, [Ô]###,##0[Ô]), [Ô]@@@@@@@[Ô]) & [Ô] Registros[Ô]
End If
If Apostas.Recordset.RecordCount = 0 Then
FrmBolaoMegaSena.MenuApostasRelatorio.Enabled = False
FrmBolaoMegaSena.MenuApostasConsultaMsHflexgrid.Enabled = False
FrmBolaoMegaSena.MenuApostasPremiadasRelatório.Enabled = False
FrmBolaoMegaSena.MenuApostasPremiadas.Enabled = False
FrmBolaoMegaSena.MenuVolantesImpressao.Enabled = False
Else
FrmBolaoMegaSena.MenuApostasRelatorio.Enabled = True
FrmBolaoMegaSena.MenuApostasConsultaMsHflexgrid.Enabled = True
FrmBolaoMegaSena.MenuApostasPremiadasRelatório.Enabled = True
FrmBolaoMegaSena.MenuApostasPremiadas.Enabled = True
FrmBolaoMegaSena.MenuVolantesImpressao.Enabled = True
End If
End Sub
A mensagem completa do erro é:
Run-time Erro -2147217864 (80040e38) A linha não pode ser localizada para atualização. alguns valores
podem ter sido alterados desde que ela foi lida pela última vêz.
No support. microsoft diz que precisa do resync, mas com o resync retorna novo erro:
Run-time error -2147467159 (80004005) informações insuficientes ou incorretas sobre a coluna-chave.
muitas linhas foram afetadas pela atualização.
A intenção do código é apagar todos os registros, independenteda quantidade, mostrando o progresso
por uma progressbar.
Agradeço a quem puder disponibilizar alguma explanação sobre o assunto.
. . .
Um DELETE FROM tabela resolveria sem problemas (e bem mais rápido), só que não teria o contador para alimentar o PROGRESSBAR.
Concordo plenamente.
Só que o programa em sà não dá pau, porque é para mega sena e desmembra 10 dezenas em 210 apostas de 06 dezenas sem
repetir, e toda vêz que que vou fazer nova combinação ele zera os registros do bd. Com apenas 210 registros nunca deu pau.
Ocorre que um amigo meu me pediu pra que o programa continuasse armazenando palpites para vários concursos e derrepente ele
pode resolver zerar o bd, mas quer que a barra continue operando, é quando tive a surpresa de saber que tá dando o erro acima.
Se não conseguir resolver o erro, vou usar a sql delete from como tu indicou.
Obrigado, saúde e muito trabalho e prosperidade pra ti.
Blz . . .
Tópico encerrado , respostas não são mais permitidas