Effacement avec condition...

divin1975 Messages postés 81 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 9 novembre 2013 - 5 nov. 2013 à 22:04
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 - 6 nov. 2013 à 17:03
Bonjour,

Je suis buté á une condition qui me demande d'effacer tous les enregistrements "blancs" dans ma base de donnees.
Je m'explique:
j'ai une table avec 3 colonnes (A, B, C). Toutes ces colonnes contiennent diverses données dans lesquelles nous rencontrons des enregistrements "blancs". Par exemple,
La_colonne_A La_colonne_B La_colonne_C
valeur1 0 0
valeur2 0 0
solde 0 0
valeur3 0 0

Qu'est ce que je pense faire? A travers un clic, j'aimerai filtrer et effacer tous les enregistrements "blancs" ou ayant la valeur "0". Mais à une petite condition, sauf tout enregistrement ayant la valeur "solde".
voici ce que j'ai essaye de faire:

if qryContasOrc.Filter:='la_colonne_B=' +quotedstr(edit2.Text)+ ' and ' +'la_colonne_C=' +quotedstr(edit3.Text);
qryContasOrc.Filtered:= true;
then begin
end else
showmessage('Aucun enregistrement trouvé!');
end;
qryContasOrc.Delete;

Je suis bloqué... Je voudrai poser ma condition comment n'est pas effacé toute valeur "solde" de la_colonne_A

Merci

2 réponses

sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
6 nov. 2013 à 09:02
Bonjour,

Tu peux faire une requête de suppression :
Delete from [Nom de la table]
Where La_colonne_A <> 'solde'
and (La_colonne_B = 0 or La_colonne_C = 0)
0
divin1975 Messages postés 81 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 9 novembre 2013
6 nov. 2013 à 11:08
apres avoir executé requête de suppresion. J'ai un message: " 0)

[Nom de la table]: CommandText does not return a result set"
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
6 nov. 2013 à 11:12
non mais quand même... "[nom de la table]" est à remplacer par le nom de la table sur lequel tu veux faire la requête...
Tu veux passer dans le best of ? ;-)
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
6 nov. 2013 à 11:07
Delete from [Nom de la table]
Where (La_colonne_A <> 'solde')
and (La_colonne_B = 0 or La_colonne_C = 0 or La_colonne_B = '' or La_colonne_C ='' )


0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
6 nov. 2013 à 11:11
ouiiiii, milles excuses Cantador... j'ai oublié la balise... ;-)
0
divin1975 Messages postés 81 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 9 novembre 2013
6 nov. 2013 à 11:58
Je ne veux pas quand même que l'on fasse tout pour moi. Mais je suis obligé de vous embêter encore un peu.
Voici ce que j'ai: dans la propriete de qry, j'ai écrit ceci comme vous me l'aviez demandé de faire.
Delete from [Test]
Where (La_colonne_A <> 'solde')
and (La_colonne_B = 0 or La_colonne_C = 0 or La_colonne_B = '' or La_colonne_C ='' )

Mais quand je clique sur le "Active" il me ceci: "type de donnee incorrecte dans l'expression des criteres". De toutes les façons, même si ça marcher... Je voudrai bien que cette commande ne s'execute que lorsque j'aurai cliqué sur mon "bouton" (je l'ai expliqué dans mon premier message au dessus)

Merci.
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
6 nov. 2013 à 12:05
Raaaaaaaaaaaaaaaaa !!!!!

Enlève les crochets à "[Test]" :-)
Je ne sais pas si c'est une norme, mais il me semble que les paramètres dans les doc SQL sont entre "[" et "]"... Du coup, j'ai pris cette habitude...

Si "Test" est bien le nom de ta table, ta requête doit ressembler à ça :
Delete from Test
Where (La_colonne_A <> 'solde')
and (La_colonne_B = 0 or La_colonne_C = 0 or La_colonne_B = '' or La_colonne_C ='' )
0
divin1975 Messages postés 81 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 9 novembre 2013
6 nov. 2013 à 13:17
j'ai enlevé les crochets mais ce message y reste: "type de donnee incorrecte dans l'expression des criteres"
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
Modifié par simonpelloquin le 6/11/2013 à 16:00
ah oui, pardon j'ai répondu trop vite... L'erreur vient du test de l'égalité de colonne B ou C sur la valeur '' (chaine vide). Il semble que tes colonnes soient de type numériques, donc tu dois faire un test sur null.
Delete from Test
Where (La_colonne_A <> 'solde')
and (La_colonne_B = 0 or La_colonne_C = 0 or La_colonne_B is null or La_colonne_C is null)
0
Rejoignez-nous