Je travaille avec MS Access 2007.
J'ai une table appelée [tblDonors]
liée aux dossiers de l'enfant dans une table appelée [tblReceipts]
.
J'essaie de définir la valeur d'un nouveau champ booléen (y/n) [tblDonors].[blInactive]
. . Je voudrais lancer un script qui passe par tous les enregistrements de [tblDonors]
et définir le champ [blInactive]
-"True"
si est plus que l'an (now())-2
Voici ma requête la dernière année de réception ([tblReceipts].[Date]
):Réglage valeur du champ enregistrement parent basé sur la valeur du champ d'enregistrement des enfants maximum
SELECT tblDonors.ID, Année ([tblReceipts]. [date]) AS [Année], tblDonors.Active
DE tblDonors
LEFT JOIN tblReceipts SUR tblDonors.ID = tblReceipts.ID
OÙ (((Année ([tblReceipts]. [Date]))> = Année (Maintenant()) - 2)) COMMANDER PAR Donors.ID;
Cette requête affiche l'enregistrement parent plusieurs fois si le donateur a fait plusieurs dons au cours des deux dernières années, ce qui crée des enregistrements en double dans un rapport.
Comment puis-je parcourir chaque enregistrement de cette requête pour définir tblDonors.Active
à TRUE
en utilisant VBA
? Ce qui suit aide à démontrer l'essentiel de ce que je tente d'accomplir.
Function fnActivity() 'locates active donors
For each record in recordset 'Go through each record in the query...
record.[Active].Value = True '...and flag as active member.
Next record
End Function
Cela a fait le charme. Merci d'avoir aidé à résoudre un problème qui a causé beaucoup d'ennuis. –