VBA ili može i upitima?
Ako može upitima (dosta lakše), onda to može da se izvede sa dva. Prvi:
SELECT tblArtikl.SerijskiBroj, DateAdd("yyyy",1,[DatumRegistracije]) AS DR
FROM tblArtikl LEFT JOIN tblTehnickiPregled ON tblArtikl.SerijskiBroj = tblTehnickiPregled.SerijskiBroj
WHERE DateAdd("yyyy",1,[DatumRegistracije])<Date() AND tblTehnickiPregled.SerijskiBroj Is Null;;
Time pronađeš koji artikli postoje, ali nikada nije rađen tehnički, a proteklo je godinu dana.
S sledećim pronađeš one kojima je već rađen tehnički, ali je za novi proteklo godinu dana:
SELECT tblArtikl.SerijskiBroj, Max(tblTehnickiPregled.DatumTehnickog) AS MaxOfDatumTehnickog
FROM tblArtikl INNER JOIN tblTehnickiPregled ON tblArtikl.SerijskiBroj = tblTehnickiPregled.SerijskiBroj
WHERE DateAdd("yyyy",1,[DatumTehnickog])<Date()
GROUP BY tblArtikl.SerijskiBroj;
Recimo da prvi nazoveš qryPrviTehnicki a drugi qryNaredniTehnicki. Onda rezultate ova dva možeš da spojiš u treći (kojim dobiješ sve artikle za tehnički) i kojeg recimo možeš koristiti za izveštaj:
SELECT SerijskiBroj, DateAdd("yyyy", 1, DR) FROM qryPrviTehnicki
UNION SELECT SerijskiBroj, DateAdd("yyyy", 1, MaxOfDatumTehnickog) FROM qryNaredniTehnicki;
Pozdrav,
Branislav