Jump to content

Remover registos de base de dados Access


arned
 Share

Recommended Posts

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

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
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
 Share

×
×
  • 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.