Méthode Delete d'un recordset

CochonPerdu Messages postés 42 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 12 août 2003 - 3 juin 2002 à 11:03
cs_pheno Messages postés 141 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 23 mars 2005 - 5 juin 2002 à 16:31
Je veux supprimer plusieurs enregistrements d'un coup.
Voici mon code. Les lignes sont effectivement supprimées mais il me mets une erreur :

"Key column information is insufficient or incorrect. Too many rows were affected by update"

Dim adoLASLignes As Recordset
Set adoLASLignes = New Recordset
With adoLASLignes
.Open RequeteSQL, Publicdb, adOpenStatic, adLockOptimistic
Do While Not .EOF
.Delete
.MoveNext
Loop
End With

Je ne comprends pas pourquoi le delete veut absolument supprimer tous les enregistrements d'un coup alors que la valeur par défaut du delete est justement de supprimer l'enregistrement en cours...

Remarque : Aucune erreur ne se produit quand il n'y a effectivement qu'un seul enregistrement à supprimer

5 réponses

Panterad69 Messages postés 20 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 19 avril 2007
3 juin 2002 à 11:49
Ton Code est correct, il manque juste à updater ta base. Pour celà rajoute juste avant ton
".MoveNext " un : ".Update"

celà devrait fonctionner avec bcq d'enregistrement à effacer
0
CochonPerdu Messages postés 42 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 12 août 2003
3 juin 2002 à 12:02
merci mais ça ne marche toujours pas :-p

En fait, quand j'exécute le code en pas à pas détaillé, ça plante dès que ça arrive sur .delete
donc ça ne vient pas du code qui est après :sad)
0
Panterad69 Messages postés 20 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 19 avril 2007
3 juin 2002 à 13:29
Question Bête : Il n'est pas vide ton Recordset ? car avec ton algo car il me semble que de do exécute au minimum une fois la boucle => si tu rentre dans ta boucle et essaye d'éffacer un recorset Vide ça plante !
=> Essaye d'enlever ton "Do" ne met que le While et remplace Loop par Wend
0
CochonPerdu Messages postés 42 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 12 août 2003
3 juin 2002 à 14:01
ça marche pas non plus...
En fait, c'est un peu bizarre.
J'ai plusieurs enregistrements à effacer dans ma BD (le recordset n'est pas vide). Cela plante dès que ça arrive sur .delete mais cela efface bel et bien les enregistrements dans la base (donc en passant une seule fois sur la méthode delete).

On dirait qu'il s'attend à n'avoir qu'un enregistrement à supprimer mais qu'il prend tout d'un coup...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_pheno Messages postés 141 Date d'inscription mardi 30 avril 2002 Statut Membre Dernière intervention 23 mars 2005 1
5 juin 2002 à 16:31
salut
euh juste si t as mis l instruction .update
faut mettre .Edit avant .delete

Chevalier Pheno Starboard, membre de la Freeman-Corp
0
Rejoignez-nous