ERRO AO EXCLUIR
DUVIDA: Caso meu banco de dados esteja vazio e eu grave um novo registro e clico em Excluir ele da o erro que está
na imagem postada ai. Obs: ao clicar em debug.....da erro em [Ô]rs.delete[Ô]
mas se eu fechar o programa e abrir novamente e clicar em excluir , ele exclui normalmente.
alguem pode ajudar ? Obrigado
na imagem postada ai. Obs: ao clicar em debug.....da erro em [Ô]rs.delete[Ô]
mas se eu fechar o programa e abrir novamente e clicar em excluir , ele exclui normalmente.
alguem pode ajudar ? Obrigado
O Codigo é esse:
Private Sub cmdExcluir_Click()
If rs.RecordCount = 0 Then
MsgBox [Ô]Não há nenhum produto cadastrado?[Ô], vbInformation, [Ô]Aviso[Ô]
cmdProximo.Enabled = False
cmdAnterior.Enabled = False
Else
If MsgBox([Ô]Deseja realmente excluir este produto?[Ô], vbQuestion + vbYesNo, [Ô]Atenção[Ô]) = vbYes Then
rs.Delete
On Error Resume Next
rs.MoveLast
rs.Requery
carregaDados
txtCod.Caption = [Ô][Ô]
txtProduto.Text = [Ô][Ô]
txtCategoria.Text = [Ô][Ô]
txtProduto.Text = [Ô][Ô]
txtEstoque.Text = [Ô][Ô]
txtValor.Text = [Ô][Ô]
txtPago.Text = [Ô][Ô]
End If
End If
End Sub
Private Sub cmdExcluir_Click()
If rs.RecordCount = 0 Then
MsgBox [Ô]Não há nenhum produto cadastrado?[Ô], vbInformation, [Ô]Aviso[Ô]
cmdProximo.Enabled = False
cmdAnterior.Enabled = False
Else
If MsgBox([Ô]Deseja realmente excluir este produto?[Ô], vbQuestion + vbYesNo, [Ô]Atenção[Ô]) = vbYes Then
rs.Delete
On Error Resume Next
rs.MoveLast
rs.Requery
carregaDados
txtCod.Caption = [Ô][Ô]
txtProduto.Text = [Ô][Ô]
txtCategoria.Text = [Ô][Ô]
txtProduto.Text = [Ô][Ô]
txtEstoque.Text = [Ô][Ô]
txtValor.Text = [Ô][Ô]
txtPago.Text = [Ô][Ô]
End If
End If
End Sub
O erro deve está na rotina que grava os dados. Ele grava mas não atualiza o rs. Tenta fechar e abrir o Rs após inclusão ou edição. Se não conseguir, passa o código da inclusão para ser analisado.
Private Sub cmdExcluir_Click()
If rs.RecordCount = 0 Then
MsgBox [Ô]Não há nenhum produto cadastrado?[Ô], vbInformation, [Ô]Aviso[Ô]
cmdProximo.Enabled = False
cmdAnterior.Enabled = False
exit sub
Else
If MsgBox([Ô]Deseja realmente excluir este produto?[Ô], vbQuestion + vbYesNo, [Ô]Atenção[Ô]) = vbYes Then
rs.Delete
rs.MoveLast
if rs.eof then
txtCod.Caption = [Ô][Ô]
txtProduto.Text = [Ô][Ô]
txtCategoria.Text = [Ô][Ô]
txtProduto.Text = [Ô][Ô]
txtEstoque.Text = [Ô][Ô]
txtValor.Text = [Ô][Ô]
txtPago.Text = [Ô][Ô]
exit sub
else
txtCod.Caption = [Ô][Ô]
txtProduto.Text = [Ô][Ô]
txtCategoria.Text = [Ô][Ô]
txtProduto.Text = [Ô][Ô]
txtEstoque.Text = [Ô][Ô]
txtValor.Text = [Ô][Ô]
txtPago.Text = [Ô][Ô]
carregaDados
end if
End If
End If
End Sub
If rs.RecordCount = 0 Then
MsgBox [Ô]Não há nenhum produto cadastrado?[Ô], vbInformation, [Ô]Aviso[Ô]
cmdProximo.Enabled = False
cmdAnterior.Enabled = False
exit sub
Else
If MsgBox([Ô]Deseja realmente excluir este produto?[Ô], vbQuestion + vbYesNo, [Ô]Atenção[Ô]) = vbYes Then
rs.Delete
rs.MoveLast
if rs.eof then
txtCod.Caption = [Ô][Ô]
txtProduto.Text = [Ô][Ô]
txtCategoria.Text = [Ô][Ô]
txtProduto.Text = [Ô][Ô]
txtEstoque.Text = [Ô][Ô]
txtValor.Text = [Ô][Ô]
txtPago.Text = [Ô][Ô]
exit sub
else
txtCod.Caption = [Ô][Ô]
txtProduto.Text = [Ô][Ô]
txtCategoria.Text = [Ô][Ô]
txtProduto.Text = [Ô][Ô]
txtEstoque.Text = [Ô][Ô]
txtValor.Text = [Ô][Ô]
txtPago.Text = [Ô][Ô]
carregaDados
end if
End If
End If
End Sub
Acredito que o erro esta no cursor do seu banco de dados, talvez porque ele nao esteja localizado no registro que voce quer excluir.
Tente excluir via SQL
Assim:
Funciona Assim
Deleto Todos os Campos da tabela tal de acordo com o Campotabela (Ex.: CODIGO) e do que esta escrito no campo txtCod
[ SQL = [Ô]DELETE * FROM SUATABELA WHERE CODIGOTABELA =[ô][Ô] & TXTCOD.TEXT & [Ô][ô][Ô] ]
Aqui o Banco de dados vai executar o que esta na variavel SQL
[Banco.Execute SQL]
Tenta aÃ
Tente excluir via SQL
Assim:
Dim SQL As String
SQL = [Ô]DELETE * FROM SUATABELA WHERE CODIGOTABELA =[ô][Ô] & TXTCOD.TEXT & [Ô][ô][Ô]
[ô]Aqui voce chama o nome da declaração do seu banco de dados ( BANCO = NOME DECLARAÇÃO DO MODULO )
BANCO.Execute SQL [ô]O banco de dados vai excluir o registro
msgbox[Ô]Registro ExcluÃdo[Ô]
Funciona Assim
Deleto Todos os Campos da tabela tal de acordo com o Campotabela (Ex.: CODIGO) e do que esta escrito no campo txtCod
[ SQL = [Ô]DELETE * FROM SUATABELA WHERE CODIGOTABELA =[ô][Ô] & TXTCOD.TEXT & [Ô][ô][Ô] ]
Aqui o Banco de dados vai executar o que esta na variavel SQL
[Banco.Execute SQL]
Tenta aÃ
Ta i O codigo do botão Gravar:
Private Sub cmdGravar_Click()
If txtCategoria.Text = [Ô][Ô] Then
MsgBox [Ô]Prencha o campo Categoria[Ô], vbInformation, [Ô]Atenção[Ô]
txtCategoria.SetFocus
txtCategoria.BackColor = &HFFFFC0
Exit Sub
End If
[ô]--------------
If txtProduto.Text = [Ô][Ô] Then
MsgBox [Ô]Prencha o campo Produto[Ô], vbInformation, [Ô]Atenção[Ô]
txtProduto.SetFocus
txtProduto.BackColor = &HFFFFC0
Exit Sub
End If
[ô]--------------
If txtEstoque.Text = [Ô][Ô] Then
MsgBox [Ô]Prencha o campo Estoque[Ô], vbInformation, [Ô]Atenção[Ô]
txtEstoque.SetFocus
txtEstoque.BackColor = &HFFFFC0
Exit Sub
End If
[ô]--------------
If txtValor.Text = [Ô][Ô] Then
MsgBox [Ô]Prencha o campo Valor[Ô], vbInformation, [Ô]Atenção[Ô]
txtValor.SetFocus
txtValor.BackColor = &HFFFFC0
Exit Sub
End If
[ô]--------------
If txtPago.Text = [Ô][Ô] Then
MsgBox [Ô]Prencha o campo Valor Pago[Ô], vbInformation, [Ô]Atenção[Ô]
txtPago.SetFocus
txtPago.BackColor = &HFFFFC0
Exit Sub
End If
rs.AddNew
txtCategoria.Text = Trim(txtCategoria.Text)
rs!Catergoria = txtCategoria.Text
txtProduto.Text = Trim(txtProduto.Text)
rs!Produto = txtProduto.Text
rs!Estoque = txtEstoque.Text
rs!Valor = txtValor.Text
rs!Valorpago = txtPago.Text
rs.Update
MsgBox [Ô]Produto cadastrado com sucesso![Ô], vbInformation, [Ô]Inclussão[Ô]
cmdExcluir.Enabled = True
cmdAnterior.Enabled = True
cmdProximo.Enabled = True
cmdAlterar.Enabled = True
txtCategoria.BackColor = &H80000005
txtProduto.BackColor = &H80000005
txtEstoque.BackColor = &H80000005
txtValor.BackColor = &H80000005
txtPago.BackColor = &H80000005
carregaDados
End Sub
Private Sub cmdGravar_Click()
If txtCategoria.Text = [Ô][Ô] Then
MsgBox [Ô]Prencha o campo Categoria[Ô], vbInformation, [Ô]Atenção[Ô]
txtCategoria.SetFocus
txtCategoria.BackColor = &HFFFFC0
Exit Sub
End If
[ô]--------------
If txtProduto.Text = [Ô][Ô] Then
MsgBox [Ô]Prencha o campo Produto[Ô], vbInformation, [Ô]Atenção[Ô]
txtProduto.SetFocus
txtProduto.BackColor = &HFFFFC0
Exit Sub
End If
[ô]--------------
If txtEstoque.Text = [Ô][Ô] Then
MsgBox [Ô]Prencha o campo Estoque[Ô], vbInformation, [Ô]Atenção[Ô]
txtEstoque.SetFocus
txtEstoque.BackColor = &HFFFFC0
Exit Sub
End If
[ô]--------------
If txtValor.Text = [Ô][Ô] Then
MsgBox [Ô]Prencha o campo Valor[Ô], vbInformation, [Ô]Atenção[Ô]
txtValor.SetFocus
txtValor.BackColor = &HFFFFC0
Exit Sub
End If
[ô]--------------
If txtPago.Text = [Ô][Ô] Then
MsgBox [Ô]Prencha o campo Valor Pago[Ô], vbInformation, [Ô]Atenção[Ô]
txtPago.SetFocus
txtPago.BackColor = &HFFFFC0
Exit Sub
End If
rs.AddNew
txtCategoria.Text = Trim(txtCategoria.Text)
rs!Catergoria = txtCategoria.Text
txtProduto.Text = Trim(txtProduto.Text)
rs!Produto = txtProduto.Text
rs!Estoque = txtEstoque.Text
rs!Valor = txtValor.Text
rs!Valorpago = txtPago.Text
rs.Update
MsgBox [Ô]Produto cadastrado com sucesso![Ô], vbInformation, [Ô]Inclussão[Ô]
cmdExcluir.Enabled = True
cmdAnterior.Enabled = True
cmdProximo.Enabled = True
cmdAlterar.Enabled = True
txtCategoria.BackColor = &H80000005
txtProduto.BackColor = &H80000005
txtEstoque.BackColor = &H80000005
txtValor.BackColor = &H80000005
txtPago.BackColor = &H80000005
carregaDados
End Sub
Ajuda me...Obrigado
o projeto ta ai
Após inserir logo abaixo coloque este comando.
rs.requery e tenta excluir depois disso.
rs.requery e tenta excluir depois disso.
Tópico encerrado , respostas não são mais permitidas