Jump to content
arned

Remover registos de base de dados Access

Recommended Posts

arned

Boas, é o seguinte eu estou a desenvolver um programa que tem que mexer na base de dados, adicionar, modificar e eliminar...

Passo então a explicar, eu tenho um procurar clientes, com um botão e mostra uma listbox, depois de seleccionar o nome do cliente na listbox clico no botão para apagar esse cliente...

Agora, preciso de ir buscar o idcliente, e depois vou apagar a linha da base de dados com esse id...

PS: desde já agradeço.

E sim já li montes de post sobre isso e não cheguei a conclusão nenhuma, se me pudessem ajudar..

Visual Basic 2010...

Obrigado

Share this post


Link to post
Share on other sites
jpaulino

Mostra lá o que tens? Basicamente tens de fazer apenas um comando T-SQL "DELETE FROM tabela WHERE ID = X"

Share this post


Link to post
Share on other sites
arned

Tenho isto...

Private Sub btnapagar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnapagar.Click

        'ir buscar o valor a listbox
        Dim escolher As Integer

        escolher = ListBox1.SelectedItem

        Try
            Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\André Sousa\Desktop\desktop\Programa PSI\Programa Loja Informatica\Programa Loja Informatica\Base de Dados.mdb;"

            Dim SQLapagar As String = "DELETE FROM Clientes WHERE (?)"


            ' Inicia uma ligação à base de dados
            Using connection As New OleDbConnection(connString)

                ' Define o comando e os parâmetros
                Dim command As New OleDbCommand(SQLapagar, connection)
                command.Parameters.RemoveAt("nºcliente", OleDbType.Integer)
                'command.Parameters.RemoveAt("nºcliente",OleDbtype
                'command.Parameters.Add("Nome", OleDbType.VarChar).Value = nome
                'command.Parameters.Add("Morada", OleDbType.VarChar).Value = morada
                'command.Parameters.Add("BI", OleDbType.VarChar).Value = bi
                'command.Parameters.Add("Data de Nascimento", OleDbType.VarChar).Value = datanascimento




                ' Abre a ligação e insere o registo
                connection.Open()

                Dim x As Integer = command.ExecuteNonQuery()
                If x <> 1 Then
                    Throw New ArgumentException("Não foi possível eliminar o registo do Cliente na base de dados!")

                Else : MessageBox.Show("Cliente Eliminado")
                End If

            End Using

        Catch ex As Exception
            MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try


    End Sub

Share this post


Link to post
Share on other sites
jpaulino

De acordo com o que tens altera ...

Dim SQLapagar As String = "DELETE FROM Clientes WHERE (?)"

para

Dim SQLapagar As String = "DELETE FROM Clientes WHERE ([nºcliente] = ?)"

e

command.Parameters.RemoveAt("nºcliente", OleDbType.Integer)

para

command.Parameters.add("nºcliente", OleDbType.Integer).Value = id a apagar

Share this post


Link to post
Share on other sites
arned

já agora uma questao.

'ir buscar o valor a listbox

        Dim escolher As Integer

        escolher = ListBox1.SelectedItem

isto está certo?

dá-me erro ai.. e nao me lembro como é para ir buscar o valor seleccionado a listbox

Share this post


Link to post
Share on other sites
arned

obrigado, mas já arranjei solução.

Muitissimo Obrigado Pela ajuda, foi extremamente importante para o trabalho.

Cumps

Share this post


Link to post
Share on other sites
geira17

alterai este código para o meu projecto de apagar da bd mas n sai qual e o erro se posse-sem ajudar

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        'ir buscar o valor a listbox

        Dim escolher As Integer

        escolher = TextBox1.SelectedItem

        Try

            Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Geira\E.P.Montijo\PSI\Visual Studio\Bd ligações\ligações1\WindowsApplication1\bin\Debug\db.mdb;"

            Dim SQLapagar As String = "DELETE FROM Clientes WHERE (?)"

            ' Inicia uma ligação à base de dados

            Using connection As New OleDbConnection(connString)

                ' Define o comando e os parâmetros

                Dim command As New OleDbCommand(SQLapagar, connection)

                command.Parameters.RemoveAt("ID", OleDbType.Integer)

                'command.Parameters.RemoveAt("ID",OleDbtype

                'command.Parameters.Add("Data", OleDbType.VarChar).Value = data

                'command.Parameters.Add("Nome", OleDbType.VarChar).Value = nome

                'command.Parameters.Add("Apelido", OleDbType.VarChar).Value = apelido

                'command.Parameters.Add("Correio Electrónico", OleDbType.VarChar).Value = correioeletronico

                ' Abre a ligação e insere o registo

                connection.Open()

                Dim x As Integer = command.ExecuteNonQuery()

                If x <> 1 Then

                    Throw New ArgumentException("Não foi possível eliminar o registo da base de dados!")

                Else : MessageBox.Show("Registo Eliminado")

                End If

            End Using

        Catch ex As Exception

            MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

End Class

Share this post


Link to post
Share on other sites
Andrepereira9
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'ir buscar o valor a listbox
        Dim escolher As Integer

        escolher = TextBox1.SelectedItem

        Try
            Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Geira\E.P.Montijo\PSI\Visual Studio\Bd ligações\ligações1\WindowsApplication1\bin\Debug\db.mdb;"

            Dim SQLapagar As String = "DELETE FROM Clientes WHERE [nºcliente] = @ID"
            ' Inicia uma ligação à base de dados
            Using connection As New OleDbConnection(connString)

                ' Define o comando e os parâmetros
                Dim command As New OleDbCommand(SQLapagar, connection)
              command.Parameters.Add("@ID", OleDbType.VarChar).Value = escolher
                
               ' Abre a ligação e insere o registo
                connection.Open()

                Dim x As Integer = command.ExecuteNonQuery()
                If x <> 1 Then
                    Throw New ArgumentException("Não foi possível eliminar o registo da base de dados!")

                Else : MessageBox.Show("Registo Eliminado")
                End If

            End Using

        Catch ex As Exception
            MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub
End Class


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.