Supprimer des enregistrements dans une base access.

Signaler
Messages postés
166
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
16 février 2011
-
Messages postés
37
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
27 janvier 2011
-
Bonjour,

Je cherche a supprimer des enregistrements dans une base acces.
A l'écran tout fonctionne bien, mais en revanche dans le fichier mdb rien est changé
Qui peut me dire ou je me trompe ?

Le code est ultra simple :

 
    Dim con As OleDbConnection
    Dim cmd As OleDbCommand
    Dim myDA As OleDbDataAdapter
    Dim myDataSet As DataSet
    Dim dt As DataTable

    Dim dr As OleDbDataReader
       Dim memid As Long
        Dim mempoids As Double
        memid = 0
        mempoids = 0
        con = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;data source=d:\temp\bddiraffaires.mdb")
        cmd = New OleDbCommand("Select * FROM RepHisto ORDER BY id,le", con)
        con.Open()
        myDA = New OleDbDataAdapter(cmd)
        myDataSet = New DataSet()
        myDA.Fill(myDataSet, "RepHisto")
        ' Mon gridview pour visualiser
        RadGridView1.DataSource = myDataSet.Tables("RepHisto").DefaultView
        ' On boucle sur tous les enregistrement et on regarde si il faut détruire
        For Each dr1 As DataRow In myDataSet.Tables("RepHisto").Rows
            If mempoids <> dr1("Poids") Or memid <> dr1("id") Then
                mempoids = dr1("Poids")
                memid = dr1("id")
            Else
                dr1.Delete()
            End If
        Next
       myDataSet.Tables("RepHisto").AcceptChanges()
       myDA.Update(myDataSet)
      con.Close()




D'avance merci a vous


Anthony

PS Renfield, toi qui m'a si souvent dépanné si tu passes par là...

4 réponses

Messages postés
37
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
27 janvier 2011

il faut declaré le recordset
dim rs as Recordset
private sub supprim_click()
rs.delete
rs.update
end sub

Pourqoui vous ne utilsé Pas les Methode simple comme
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
--------------------------------------------------------
Private Sub Form_Load()
con.Provider = "Microsoft.Jet.OLEDB.4.0"
'Définition de la chaîne de connexion
con.ConnectionString = App.Path + "d:\temp\bddiraffaires.mdb"
'Ouverture de la base de données
con.Open

'puis on execute des requetes
rs.Open "Select * FROM RepHisto ORDER BY id,le", con

Text1 = rs!RepHisto
Text2 = rs!Poids

End Sub
-----------------------------------------------------------
Private Sub Next_click()
rs.MoveNext 'rs.MovePrevious Pour Bouton Precedent
Text1 = rs!RepHisto
Text2 = rs!Poids
end sub
----------------------------------------------------------
Private Sub Supprimé_click()
rs.Delete
rs.update
end sub
---------------------------------------------------------
Private Sub Ajouter_click()
rs.AddNew
rst![RepHisto] = Text1.Text
rst![Poids] = Text2.Text
rs.update
end sub

etc...
Messages postés
166
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
16 février 2011

Bonjour Satamoni1982

Merci pour ta réponse.
Mais je ne comprend pas tout...

Une fois avoir déclaré mon recorset j'en fait quoi ? Je m'en sert ou ?


Sinon l'autre solution a l'air trés simple, mais sauf erreur de ma part cela suppose que j'utilise un activeX et de ce que je crois c'est une méthode obsolete qui date du VB6
Messages postés
166
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
16 février 2011

Bonjour Satamoni1982

Merci pour ta réponse.
Mais je ne comprend pas tout...

Une fois avoir déclaré mon recorset j'en fait quoi ? Je m'en sert ou ?


Sinon l'autre solution a l'air trés simple, mais sauf erreur de ma part cela suppose que j'utilise un activeX et de ce que je crois c'est une méthode obsolete qui date du VB6
Messages postés
37
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
27 janvier 2011

si ma proposition ca marche pas pour ton type d'application essaie avec les Requet SQL ("Delete From RepHisto where mempoids = dr1" ...