[ACCESS] suppression d enregistrements

Fermé
violette42 Messages postés 2 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 17 mars 2007 - 16 mars 2007 à 19:30
 herman - 23 janv. 2008 à 13:23
Bonjour,

Voici mon problème:
J'ai 2 tables: la première, appelée [Référence] a pour champs [Réf](ex enregistrement: "Ref1") et [Date] (ex: "20070316") et la seconde, appelée [Temps] a pour champs [Date] (ex: "20070327")et [JourSemaine] (ex: "Dimanche").

Je voudrais supprimer les enregistrements de la table "Référence" qui ont une date qui tombe un dimanche par exemple. C'est à dire que j utilise le critère de la deuxième table pour décider des enregistrements à supprimer dans la 1ère table.

J'ai bien essayé avec une requête suppression, mais rien à faire!

Merci de votre aide.


Violette
A voir également:

7 réponses

Dans une base ACCESS, j'ai plusieurs tables.

Je souhaiterai au moyen d'une seule requete SQL, effacer la totalité des enregistrements des tables . La commande "delete" marche pour une seule table.

merci de vos réponses.
1
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
16 mars 2007 à 22:31
Bonsoir,


S'agit-il d'exemples ou de données réelles?
Quelles sont les relations entre tes tables?

Si ce sont des données réelles, elles sont redondantes.Il est inutile de préciser à Access (ou à Excel) quel est le jour correspondant à une date donnée.

Une requête du style

DELETE * FROM REF WHERE weekday ([Date])=0;

Devrait faire l'affaire...

Après avoir vérifié comment sont configurés tes paramètres régionaux (Dimanche peut valoir 0 ou 1)

et à condition qu'il n'y ait pas de relation entre tes tables, sinon, tu risques de violer les règles d'intégrité.

Tu vas aussi avoir des problèmes si tu appelles un champ "Date" (c'est un mot réservé qui désigne justement la date en cours...)
0
violette42 Messages postés 2 Date d'inscription vendredi 16 mars 2007 Statut Membre Dernière intervention 17 mars 2007
17 mars 2007 à 10:59
Bonjour,

en fait il ne s agit que d'exemples. J ai rencontré ce problème plusieurs fois et je n'ai jamais su comment le résoudre.
Tu peux donc mettre n importe quel titre aux champs, je veux juste éliminer les enregistrements d'une table à partir de ceux d une autre table.
Je suis assez débutante en Access (je conais beaucoup mieux Excel), donc tous les problèmes d intégrité, connais pas trop...
Merci de ton aide.

Violette
0
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
17 mars 2007 à 15:45
Bin, il semble que tu aies raison: je n'avais jamais essayé mais effectivement, dès que je mets une référence à une autre table, j'ai un message d'erreur...

Comme ça à première vue, je ne vois qu'une solution:

récupérer la valeur dans une variable et l'intégrer au code SQL
0

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

Posez votre question
guy2mars Messages postés 204 Date d'inscription dimanche 18 février 2007 Statut Membre Dernière intervention 24 janvier 2013 71
18 mars 2007 à 01:36
en principe tu etablis une relation entre les 2 tables soit iso-sens, soit descendante, et tu entres le champ table2.ref1 par ex , tu declares where pour la condition te a partir de pour l action.
ca marche comme ca :o)
dur d ecrire correctement ca, mais je peux t envoyer un truc a entrer en mode sql sur ta requete
delete table*, table.ref from table where ((true & form!accueil!ref=true));
ca flingue les recordset a true si ma selection est a false . a toi de modifier
@+
0
j'ai le même problème dans une table des enregistrements et dans l'autre ceux que je dois supprimer et je ne connais pas sql ni visual basic
0
bonjour,
voilà ce que j'ai trouvé comme solution sans connaitre ni sql ni vba
faire une requete selection ajouter les 2 tables (avec un champ numerique entier ) faire un lien sur le numéro, le champ identique verifier que la jointure est 1 vers1(double clic sur le lien)
dans la partie descrition (bas de la requête ) pour la première table prendre * (tout)
erreur au moment de l'execution
clic droite sur la barre de titre de la requête : propriété clic OUI dans 'enr unique'
j'ai bien supprimer tous les enregistrement qui sont dans la table
0