Réponse acceptée !
Salut Tu aurais dû relire ta question avant de la poster, ta phrase est incomplète et incompréhensible : "l?archivage des patients qui ne se sont pas était présent ses trois années précédentes " La mise en forme du texte est bizarre, sans saut de ligne (difficile à lire). Quel explorateur utilises-tu ? Tes deux requètes ressemblent donc à ça :
INSERT INTO Archive SELECT Patient.CodeP, Patient.Nom, Patient.Prénom, (Date()-[MaxDeDate de visite]) AS Expr1 FROM lastvisite, Patient WHERE (lastvisite.Réfpatient = Patient.CodeP) AND ((Date()-[MaxDeDate de visite])>1095)
On suppose (et il faut) que ta table Archive comporte 4 champs et seulement 4 "[MaxDeDate de visite]" appartient à quelle table ? précise-le comme tu l'as fait pour les premiers champs car sans cette info, difficile de corriger On ne peut pas faire des additions/soustraction avec des dates. Si tu veux sélectionner les enregistrements qui sont plus vieux de 3 ans : And [MaxDeDate de visite] < DateAdd("y", Date(), -3) ou qque chose comme ça, regarde l'aide de DateAdd
DELETE FROM Patient WHERE (SELECT Patient.CodeP, Patient.Nom, Patient.Prénom, (Date()-[MaxDeDate de visite]) AS Expr1 FROM lastvisite, Patient WHERE (lastvisite.Réfpatient = Patient.CodeP) AND ((Date()-[MaxDeDate de visite])>1095);
Tu as un problème de parenthèses : Manque une ) quelque part On ne peut pas faire de Select directement dans un Where. Un Delete supprimera tous les champs des enregistrements sélectionnés. On ne peut pas les lister dans un Delete. Si tu veux supprimer les enregistrements plus vieux que 3 ans : DELETE FROM Patient WHERE Patient.CodeP IN (SELECT lastvisite.Réfpatient FROM lastvisite WHERE [MaxDeDate de visite] < DateAdd("y", Date(), -3)) Là aussi, on ne sait pas à quelle table appartient "[MaxDeDate de visite]", donc impossible de dire si les tables listées dans le From sont utiles ou suffisantes.
Vala Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
|