Suppression d'un enregitrement dans une table

mokoli2005 Messages postés 6 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 11 décembre 2006 - 23 mars 2006 à 12:56
cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 - 23 mars 2006 à 13:35
Salut je suis un débutant en vb6 et j’ai un problème au niveau de la suppression d’un enregistrement.


Je vous donne ici mon code et je vous dirai par la suit où se trouve mon problème.








Option Explicit


Dim db As dao.Database


Dim cli As dao.Recordset






Private Sub Form_Load()


Set db = dao.OpenDatabase ("d:\GesCom1.mdb")


Set cli = db.OpenRecordset("Client", dbOpenTable)


Me.codeclient.Text = cli.RecordCount + 1


End Sub






Private Sub Supprimer_Click()


Dim rep As Integer


cli.Index = "primarykey"


cli.Seek "= ", Me.Num.Text


If cli.NoMatch = False Then


rep = MsgBox ("Voulez-vous vraiment supprimer cet enregistrement ?", vbYesNo + vbCritical, "Suppression")


If rep = vbNo Then


Exit Sub


End If


If rep = vbYes Then


cli.Delete


MsgBox ("Suppresion effectuée")


End If


End If


End Sub











PROBLEME





Lorsque j’ai 3 enregistrements que je supprime le deuxième, j’ai un message d’erreur :


Risque de doublon……..








Voici plus ou moins mon problème


Je vous remercie déjà votre disponibilité et pour la solution que vous me donnerez certainement.

1 réponse

cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 2
23 mars 2006 à 13:35
Il y a des erreurs dans le code. En plus, il est plus facile de retrouver un numéro existant lorsque l'on ne fourni que ceux qui existent à l'utilisateur.
Pour celà, utiliser une combobox (que nous appelerons cbCli)
Dans la zone de déclarations du module du formulaire
Dim db As DAO.Database
Dim cli As DAO.Recorset

Private Sub Form_Load()
Set db=DBEngine(0).OpenDatabase("d:\GesCom1.mdb")
Set cli=db.OpenRecordset("Select Num FROM Client ORDER BY Num;",dbOpenSnapshot)
With cbCli
.Clear
If Not cli.EOF Then
Do
.AddItem cli("Num")
cli.MoveNext
Loop Until cli.EOF
End If
.Text=.List(0)
End With
cli.Close
Set cli=db.OpenRecordset("Client",dbOpenTable)
codeclient.Text = cli.RecordCount + 1
End Sub

Private Sub Supprimer_Click()
Dim rep As Integer
Beep
rep=MsgBox("Vous allez supprimer l'enregistrement de numéro " & cbCli.Text & vbCrLf & "Voulez vous continuer?...", vbQuestion+vbYesNo+vbDefaultButton2,"Suppression d'un enregistrement")
If rep=vbYes Then
cli.Close 'Fermer le recordset Client pour le réinitialiser après suppression
db.Execute "DELETE * FROM Client WHERE Num=" & cbCli.Text & ";"
Set cli=db.OpenRecordset("Client",dbOpenTable)
End Sub
Bon courage!...
0
Rejoignez-nous