Der Fehler liegt im Vergleich von Now mit dem zusammengesetzten Datum. Wenn er sein Programm genau um 0:00 Uhr startet, dann funktioniert es. Anstatt Now muss Date verwendet werden. Es sollten auch alle Datensätze durchlaufen werden, und nicht nur der aktuell ausgewählte.
Lösung:
Code:
procedure TKundendaten.GeburtsdatumClick(Sender: TObject);
var
i, r: Integer;
s: string;
begin
r := DM.ADOSHaupt.RecNo;
for i := 1 to DM.ADOSHaupt.RecordCount do
begin
DM.ADOSHaupt.RecNo := i;
s := Copy(DM.ADOSHaupt.FieldByName('Geburtsdatum').AsString, 1, 6);
if (StrToDate(s + Copy(DateToStr(Date + 7), 7, 4)) <= Date + 7) and
(StrToDate(s + Copy(DateToStr(Date), 7, 4)) >= Date) then
begin
DM.ADOSHaupt.Filtered := True;
ExtraForm.Show;
end;
end;
DM.ADOSHaupt.RecNo := r;
end;