Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Julierme Felix

[Resolvido] Excluir registro em BD ACCESS VS2003

Recommended Posts

Pessoal tenho um programinha de cadastro e estou usando BD ACCESS, estou com um probleminha e não estou conseguindo resolver.

Num form tenho uma barra com os botões (incluir, salvar, excluir, cancelar e fechar), o problema esta ocorrendo quando excluso um registro e logo depois tento adicionar um outro registro recebo a informação que o o numero do ID já esta em uso, mas ao abrir a tabela o registro foi realmente excluido.

 

Segue os códigos dos botões excluir e incluir.

 

Código do botão de numeração que gera o numero para a coluna ID.

 

<div class='codetop'>CODE</div><div class='codemain' style='height:300px;white-space:pre;overflow-y:auto'>

Private Function ProximoNumero() As Integer

cn.Open()

Dim sql As String = "Select (Max(ID)) From tblpr"

Dim Lin As OleDbCommand = cn.CreateCommand

Lin.CommandText = sql

Dim dr As OleDbDataReader

Dim cod As Integer

Dim result As Long

dr = Lin.ExecuteReader

While dr.Read()

cod = dr.GetInt32(0) + 1

result = cod

ProximoNumero = result

End While

dr.Close()

cn.Close()

End Function</div>

 

Código do Botão Incluir

 

<div class='codetop'>CODE</div><div class='codemain' style='height:300px;white-space:pre;overflow-y:auto'>

Case 0 ' Incluir

' AÇÃO DO BOTÃO Incluir

'Botões da Barra de Ferramentas

Incluir.Enabled = False

Alterar.Enabled = False

Gravar.Visible = True

Gravar.Enabled = True

Salvar.Visible = False

Cancelar.Enabled = True

Excluir.Enabled = False

Fechar.Enabled = True

 

'Vai para a pagina de Dados Pessoais

TabControl1.SelectedTab = TabPage1

'limpa os controles

EditID.Visible = True

Label1.Visible = True

EditID.DataBindings.Clear()

EditID.Text = ""

Me.EditID.Text = ProximoNumero()

EditNome.Text = ""

EditEndereco.Text = ""

EditBairro.Text = ""

EditCidade.Text = ""

EditCep.Text = ""

EditEmail.Text = ""

EditTelefone.Text = ""

EditCelular.Text = ""

EditCPF.Text = ""

cboEstado.DisplayMember = "--Selecione--"

 

EditNome.Focus.ToString()

btnFoto.Visible = False

GroupBox2.Visible = False</div>

 

Código do botão Excluir

 

 

 

 

<div class='codetop'>CODE</div><div class='codemain' style='height:300px;white-space:pre;overflow-y:auto'>Case 5 'Excluir

Dim Result As DialogResult

result = MessageBox.Show("Deseja excluir o : " + EditNome.Text, "Exclusão", MessageBoxButtons.YesNo)

If result = DialogResult.Yes Then

cn.Open()

Dim Cm As New OleDb.OleDbCommand("Delete * from tblpr Where ID=" + EditID.Text, cn)

Cm.ExecuteNonQuery()

Cm.Dispose()

MessageBox.Show("Excluído com Sucesso", "Exclusão", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

'Fecha a Conexão

cn.Close()

'Limpa os campos

EditID.Text = ""

EditNome.Text = ""

EditEndereco.Text = ""

EditBairro.Text = ""

EditCidade.Text = ""

EditCep.Text = ""

EditEmail.Text = ""

EditTelefone.Text = ""

EditCelular.Text = ""

EditCPF.Text = ""

'Ativa e desativa os botões

Incluir.Enabled = True

Alterar.Enabled = True

Gravar.Enabled = False

Gravar.Visible = False

Salvar.Visible = False

Salvar.Enabled = False

Cancelar.Enabled = False

Excluir.Enabled = False

Fechar.Enabled = True

'Vai para a pagina de pesquisa

TabControl1.SelectedTab = TabPage2

'Carrega novamente o datagrid

carregarpr()

Else

EditNome.Focus.ToString()

End If

</div>

Se continuo com o form aberto e tento incluir um novo registro ao clicar no botão salvar informa que o numero do ID já existe e não consigo gravar, mas olho na tabela e o registro foi excluido.

 

Segue o Código de GRavar

 

<div class='codetop'>CODE</div><div class='codemain' style='height:300px;white-space:pre;overflow-y:auto'>cn.Open()

Dim dat2 As OleDbDataAdapter

Dim ds2 As DataSet

Dim myLin As OleDbCommand = cn.CreateCommand()

Dim myCB As String = "select count(*) from tblpr where cpf=@col"

myLin.CommandText = myCB

myLin.Parameters.Add("@col", SqlDbType.NVarChar).Value = EditCPF.Text.Trim

dat2 = New OleDbDataAdapter(myLin)

ds2 = New DataSet

dat2.SelectCommand = myLin

Dim dr1 As OleDbDataReader

Dim resultado As Object = myLin.ExecuteScalar

If Not resultado Is Nothing AndAlso Convert.ToInt32(resultado) > 0 Then

MessageBox.Show("Usuario já cadastrado!!!Favor verificar o CPF!!!", "Cadastro", MessageBoxButtons.OK, MessageBoxIcon.Information)

EditCPF.Focus()

Else

If ValidaCPF(EditCPF.Text) = True Then

Dim DA1 = New OleDbDataAdapter("select * from tblpr", cn)

Dim cb As New OleDbCommandBuilder

cb = New OleDbCommandBuilder(DA1)

Dim ds1 = New DataSet

DA1.Fill(PrDS11, "tblpr")

 

Dim drAux As DataRow

drAux = PrDS11.Tables("tblpr").NewRow

drAux("ID") = EditID.Text

drAux("nome") = EditNome.Text

drAux("Endereco") = EditEndereco.Text

drAux("Bairro") = EditBairro.Text

drAux("Cidade") = EditCidade.Text

drAux("UF") = cboEstado.SelectedItem

drAux("CEP") = EditCep.Text

drAux("email") = EditEmail.Text

drAux("tel") = EditTelefone.Text

drAux("celular") = EditCelular.Text

drAux("cpf") = EditCPF.Text

 

PrDS11.Tables("tblpr").Rows.Add(drAux)

OleDbDataAdapter1.Update(PrDS11)

PrDS11.AcceptChanges()

Else

'Messagem de cadastramento

TabControl1.SelectedTab = TabPage2

carregarpr()

'Ativa e desativa botões da barra de botões

Incluir.Enabled = True

Alterar.Enabled = True

Gravar.Enabled = False

Gravar.Visible = False

Salvar.Visible = False

Salvar.Enabled = False

Cancelar.Enabled = False

Excluir.Enabled = False

Fechar.Enabled = True

End If

Else

MessageBox.Show("CPF INVÁLIDO", "Erro no CPF", MessageBoxButtons.OK, MessageBoxIcon.Error)

EditCPF.Focus()

End If

cn.close

</div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.