Delete dans un RecordSet

cs_Charlie Messages postés 110 Date d'inscription jeudi 9 mai 2002 Statut Membre Dernière intervention 11 mars 2010 - 3 juil. 2002 à 15:30
CochonPerdu Messages postés 42 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 12 août 2003 - 9 juil. 2002 à 12:53
Allo... j'essaie d'effacer, dans ma table Data, tous les enregistrements dont le champ Name correspond a un certain nom.

A toute les fois qu'il arrive pour effacer le premier, il me sort ce message d'erreur:

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

Voici mon code...

rsdata est du type Adodb.recordset

Public Function DeleteImageData(Image As String)

If rsData.RecordCount > 0 Then
rsData.MoveFirst

Do While rsData.EOF = False

If Trim(GetValue(rsData!name)) = Image then
rsData.Delete adAffectCurrent
rsData.Update
End If
rsData.MoveNext
Loop

End If
rsData.Update

End Function

Merci!!!!

2 réponses

cs_6Po Messages postés 105 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 22 janvier 2009
5 juil. 2002 à 09:10
Utilise une commande plutot... = ADODB.COMMAND
avec un "DELETE * FROM x WHERE ID = y"

Mais oublie pas d'efface les references a cette donnée avant d'efface la donnée :-p

Je m'explique... Si tu effaces une images et que tu fais tjs reference a ton image dans un autre table (par une clé primaire ou etrangère) bhen ca devrait pas de laisser effacer... et meme si ca te laisse c'est pas la bonne solution.

6Po

http://www.dreamersteam.org
0
CochonPerdu Messages postés 42 Date d'inscription lundi 6 mai 2002 Statut Membre Dernière intervention 12 août 2003
9 juil. 2002 à 12:53
Moui, à mon avis, ton erreur vient de la requête source de ton recordset.
Quand tu veux effacer un enregistrement, il faut sélectionner tous les attributs de la table avec *
0
Rejoignez-nous