Supprimer des enregistrements dans une base access.
thonyboy
Messages postés165Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention16 février 2011
-
9 déc. 2010 à 14:20
satamoni1982
Messages postés37Date d'inscriptionvendredi 24 mars 2006StatutMembreDernière intervention27 janvier 2011
-
17 déc. 2010 à 03:00
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à...
satamoni1982
Messages postés37Date d'inscriptionvendredi 24 mars 2006StatutMembreDernière intervention27 janvier 2011 11 déc. 2010 à 15:15
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
thonyboy
Messages postés165Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention16 février 2011 11 déc. 2010 à 18:14
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
thonyboy
Messages postés165Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention16 février 2011 11 déc. 2010 à 18:14
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