Delete dans un RecordSet

Signaler
Messages postés
110
Date d'inscription
jeudi 9 mai 2002
Statut
Membre
Dernière intervention
11 mars 2010
-
Messages postés
42
Date d'inscription
lundi 6 mai 2002
Statut
Membre
Dernière intervention
12 août 2003
-
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

Messages postés
105
Date d'inscription
jeudi 16 mai 2002
Statut
Membre
Dernière intervention
22 janvier 2009

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
Messages postés
42
Date d'inscription
lundi 6 mai 2002
Statut
Membre
Dernière intervention
12 août 2003

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