VB6 RUN-TIME ERROR -2147217864 80040E38

MICROSCHEME 19/10/2009 17:52:12
#325723

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.

. . .

TECLA 20/10/2009 07:46:16
#325751
Resposta escolhida
Um DELETE FROM tabela resolveria sem problemas (e bem mais rápido), só que não teria o contador para alimentar o PROGRESSBAR.
MICROSCHEME 20/10/2009 15:50:25
#325817

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