Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#23
  Alt 18. Jun 2002, 12:23
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;
  Mit Zitat antworten Zitat