Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

psantos98

ERRO - Botão Remover

Mensagens Recomendadas

psantos98    0
psantos98

Boas Pessoal, eu tenho um pequeno problema num botão quem terá de remover uma linha de uma das tabelas que tenho no meu access, através da chave primária.

Eu utilizo na chave primaria apenas numero, sendo que so pode existir um por cada entrada, atraves de uma consulta a tabela indica na TextBox devida o numero qe deve existir a seguir de modo a nao dar erro, ate ai todo bem mas quando clico para remover uma entrada que ainda nao existe deve aparecer uma mensagem de erro mas o programa executa o codigo como se existe e aparece a outra msgbox "Pretende mesmo remover".

Espero que me possam ajudar

Eis o codigo :

Private Sub BtRemover_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtRemover.Click

Dim t As New DataTable

Dim s As New DataSet

s.Tables.Add(t)

Dim a As New OleDbDataAdapter("SELECT * FROM ARMAZENAMENTO", connection)

a.Fill(t)

Dim coluna As DataRow

For Each coluna In t.Rows

If TBEntrada.Text = Val(coluna.Item(0) + 1).ToString Then

MsgBox("Erro - Entrada não existente", MsgBoxStyle.Critical, "Erro")

ElseIf TBEntrada.Text = "0" Then

MsgBox("Indique a Entrada", MsgBoxStyle.Critical, "Erro")

Else

Dim ask As MsgBoxResult

ask = MsgBox("Pretende mesmo Remover?", MsgBoxStyle.YesNo)

If ask = MsgBoxResult.Yes Then

Dim dt As New DataTable

Dim ds As New DataSet

ds.Tables.Add(dt)

Dim da As New OleDbDataAdapter("DELETE * FROM ARMAZENAMENTO WHERE Entrada LIKE ('" & TBEntrada.Text & "')", connection)

da.Fill(dt)

Try

MsgBox("Removido")

Catch ex As Exception

MsgBox(ex.Message, MsgBoxStyle.Critical, "Erro - Não Removido")

End Try

End If

End If

Next

limpacampos()

listaarmazenamento.Items.Clear()

listaarmazenamentos()

End Sub

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao    21
acao

boas

penso que esta linha não deve ter +1;

If TBEntrada.Text = Val(coluna.Item(0) + 1).ToString Then

mas eu propunha que o select tivesse param do valor da caixa de texto, assim se retornar algum registo é por que existe esse registo.

cumps

acao

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
psantos98    0
psantos98

boas

penso que esta linha não deve ter +1;

mas eu propunha que o select tivesse param do valor da caixa de texto, assim se retornar algum registo é por que existe esse registo.

cumps

acao

Obrigado pela sua resposta contudo não entendi o que quer dizer com a sua sugestão, podia me explicar melhor?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
psantos98    0
psantos98

Retirei o +1 e testei, não é esse o problema. Alem do mais também não poderia retirar posso eu quero o valor do ultimo item (entrada)+1.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao    21
acao

tenta colocar o nome do campo aonde tens item("nomedocampo").

caso contrario tens aqui um exemplo de como deves fazer.

http://www.portugal-a-programar.pt/topic/56348-verificar-se-o-registo-ja-existe-na-base-de-dados-access/#entry479395

http://www.jorgepaulino.com/2008/04/vbnet-gesto-de-dados-em-sql-server_16.html

1. fazer um select á base da dados com parâmetros.

2. verifica se existem registos.

3. se existe registo fazer o delete.

cumps

acao

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.