divin1975
Messages postés81Date d'inscriptionmardi 7 juin 2011StatutMembreDernière intervention 9 novembre 2013
-
5 nov. 2013 à 22:04
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDerniè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
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 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)
divin1975
Messages postés81Date d'inscriptionmardi 7 juin 2011StatutMembreDerniè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"
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 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 ? ;-)
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 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 ='' )
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 6 nov. 2013 à 11:11
ouiiiii, milles excuses Cantador... j'ai oublié la balise... ;-)
divin1975
Messages postés81Date d'inscriptionmardi 7 juin 2011StatutMembreDerniè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.
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 201515 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 ='' )
divin1975
Messages postés81Date d'inscriptionmardi 7 juin 2011StatutMembreDerniè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"
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)
6 nov. 2013 à 11:08
[Nom de la table]: CommandText does not return a result set"
6 nov. 2013 à 11:12
Tu veux passer dans le best of ? ;-)