[Access] Requête de suppression par champ!

NyTrO -  
 NyTrO -
Bonjour,

Voici mon problème : Je suis en train de créer une BD pour gérer les cartes de fidélité de mes clients.

C'est une base de type "contacts" avec différents renseignements simples et surtout un système en plusieurs champs pour calculer un bon de réduction.

Je souhaite donc créer un bouton qui efface/supprime les champs me permettant de calculer la rédution une fois celleci faite pour pouvoir tout simplement recommencer!

Le problème est qu'avec une requête du type :
DELETE Contacts.ChampReduc1, ChampReduc2
FROM Contacts;


Ca ne fonctionne pas! En effet toute la ligne de ma table est supprimée ( l'enregistrement en fin de compte), et du coup tous les enregistrements de la base!!

Ce que je voudrai : Créer une requête que j'appellerai par un bouton sur le formulaire contact, me permettant de supprimer ChampReduc1 et ChampReduc2 et seulement ces champs là (pas l'enregistrement en entier) et seulement du contacts que je visionne sur le formulaire contact.

Voilà, en espérant qu'une âme charitable (ou plusieurs! ;) ) me vienne en aide!

Si vous avez des questions, si je n'est pas été assez clair, n'hésitez pas!

Par avance, merci.

NyTrO.

13 réponses

bounty206
 
UPDATE Contacts
SET ChampReduc1 = NULL
WHERE NOM_CLIENT = 'mon_nom'

de meme pour ChampReduc2
0
Nytoro Messages postés 2 Statut Membre
 
Merci! Je test dès demain et te dis si ça fonctionne!

En tout cas merci pour ta réponse bounty206 ;)
0
ego
 
exact bounty, delete c est fait pour supprimer, ici tu veux changer les valeurs de 2 champs en les rendant null donc update est necessaire.
attention toutefois a la constitution de ta table savoir si les champs peuvent etre null
0
Nytoro Messages postés 2 Statut Membre
 
Bonjour à vous!

Oki, alors voila le souci : Avec ton code bounty206 il me demande la valeur du paramètre "NOM_CLIENT", bon, même en tapant le nom du client : Zero ligne à modifier. Je change dans le code par "NomFamille" qui est le champ de ma table.
UPDATE Contacts SET ChampReduc1 = NULL
WHERE NomFamille='mon_nom';

Toujours Zero ligne à modifier...
Avec celui ci :
UPDATE Contacts SET ChampReduc1 = NULL

Tous les champs ChampReduc1 de ma table sont remis à zero! La requête fonctionne donc, mais pour l'instant pas possible de l'appliquer au contact que je consulte!
A l'aide SVP! On touche au but!!

Merci ego de te joindre à nous! ;) A parement la constitution de ma table permet à ces champs d'être null.
0

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

Posez votre question
NyTrO
 
A l'aide svp! C'est vraiment important, il ne manque plus que la condition correcte, SVP!

Merci par avance.
0
ego
 
excuses le decalage horaire.
moi je ferai un truc comme ca qui marche
UPDATE Contacts SET Contacts.ChampReduc1 = ""
WHERE (((Contacts.NomFamille)="Mon_nom"));

je subodoree que =NULL ne fonctionne pas forcement.
@+
0
ego
 
au fait attention a ne pas melanger ' et "! ca est pas pareil une fois
0
NyTrO
 
Salut!

Merci d'être revenue! ;)

Malheureusement ça ne marche pas... j'ai testé des modifications sur ton dernier code ego, mais rien n'y fait, c'est soit tous les ChampReduct1 de ma table, soit rien! :(

C'est cette variable "Mon_nom" que je ne comprends pas, est-ce une variable liée à access? Je ne trouve rien sur google à son sujet... Si! Notre post! :D

En espérant que l'on trouve une solution une fois!

@ très vite!!!!
0
@¿@ Messages postés 49 Statut Membre 6
 
Mon_nom c est la valeur que tu donneras a la personne recherchée.
il y a plusieurs manieres de decrire ce nom : soit a partir d un formulaire, soit d'une requete avec une fonction champ qui n existe pas : ACCESS te demandera la valeur souhaitee.
je te rappelle que tu voulais une requete qui mette a zero un champ reduction sur selection de la personne.
si tu mets a la place de mon_nom
[saisir_le_nom]));
ta requete serait alors

UPDATE Contacts SET Contacts.ChampReduc1 = ""
WHERE (((Contacts.NomFamille)=[Choix_du_Client]));
0
Feadin
 
je viens de faire un test sur une base access que j'ai à trainer, le SET champ=NULL , ça fonctionne très bien.
et le WHERE champ='chaine de caractère' aussi, pas besoin de parenthèses sur une requête simple comme ça ;)

en fait la requête de bounty fonctionne très bien, il faut juste remplacer mon_nom par le nom sur lequel tu veux faire ta requête ^^'
0
NyTrO
 
Salut!

Cette requête fonctionne :
UPDATE Contacts SET Contacts.ChampReduc1 = NULL
WHERE ((([Contacts].[NomFamille])=[Choix_du_Client]));

Mais il faut entrer le nom du client, le but serait de rendre l'opération automatique!
En effet l'appel de la requête via un bouton sur le formulaire contact remettrai à zero les champreduc du contact que je suis en train de visionner!
Parcequ'il va y avoir de très nombreux contacts, et une erreur de frape pourrait effacer les donner d'un autre!
Alors, qu'elle est la solution???

Merci pour votre aide à tous, j'suis sur qu'on va y arriver! ;)
0
enigmatoile Messages postés 730 Statut Membre 5
 
Bonjour,

Ben derrière ton bouton tu mets ton action (exécuter la requete ...) en remplaçant 'choix du client' par [forms]![mon formulaire]![mon champ qui va bien]

Ca devrait bien marcher :)
0
NyTrO
 
MERCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII!!!!!!!!!!!!!

Ca fonctionne comme je le souhaite!! YOUPI!! :D

Avec ce code :
UPDATE Contacts SET Contacts.ChampReduc1 = NULL, Contacts.ChampReduc1 = NULL
WHERE [Contacts].[RéfContact]=[forms]![Contacts]![RéfContact];

En effet j'ai préféré opter pour le RéfContact de sorte qu'il n'y est pas de confusion possible avec un autre nom!

Seul bémol, un fonctionnement aléatoire. Je m'explique : Il faut parfois cliquer plusieurs fois sur le bouton pour que les champs soit remis à zéro! Même après confirmation de modification de la ligne (attente pouvant dépasser une minute!)! Une idée ou c'est normal??!

En tout cas, UN IMMENSE MERCI A TOUS CEUX QUI M'ONT AIDE! Oui, merci à tous!
0