Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Table nach Datum Filtern (https://www.delphipraxis.net/81918-table-nach-datum-filtern.html)

jensenwb 5. Dez 2006 10:41

Datenbank: Paradox • Zugriff über: Table

Table nach Datum Filtern
 
Ich möchte meine Datenbank so Filtern das ich einem bestimmten Datumsbereich angebe und mir dann alle Datensätze ausgezeigt werden die ein bestimmter Empfaenger in dieser Zeit bekommen hat.

Mein Datumsfeld ist vom Typ DATE.

Wenn ich es so Probiere bekomme ich folgende Fehlermeldung:

"Arithmetische Filterausdrücke werden nicht unterstützt."


Delphi-Quellcode:
var Von, Bis : string;
begin
  Von := DateToStr(DateTimePicker1.Date);
  Bis := DateToStr(DateTimePicker2.Date);
  Table1.Filter := 'Empfaenger = ' + QuotedStr(trim(DBCombobox1.text)) + 'AND' +
                   'Datum = ' + QuotedStr(Von) + 'AND' +
                   'Datum = ' + QuotedStr(Bis);
  Table1.Filtered := true;
end;

Ines 5. Dez 2006 10:58

Re: Table nach Datum Filtern
 
Hallo,

probier's doch mal indem Du in Deiner Abfrage Klammern verwendest,
etwa so:

Delphi-Quellcode:
 Table1.Filter := 'Empfaenger = ' + QuotedStr(trim(DBCombobox1.text)) + 'AND' + 
                   '((Datum = ' + QuotedStr(Von) + ') AND ' + 
                   '(Datum = ' + QuotedStr(Bis) + '))';
Deine Abfrage liefert nur dann ein Ergebnis, wenn "Datum = von und Datum = bis".
Du könntest die Abfrage mit Datum >= von und Datum < bis eingrenzen.

Gruß
Ines

jensenwb 5. Dez 2006 11:25

Re: Table nach Datum Filtern
 
:thumb:

Danke für die schnelle Antwort.

Es Funktioniert.

alzaimar 5. Dez 2006 11:33

Re: Table nach Datum Filtern
 
Zitat:

Zitat von Ines
Delphi-Quellcode:
 Table1.Filter := 'Empfaenger = ' + QuotedStr(trim(DBCombobox1.text)) + 'AND' + 
                   '((Datum = ' + QuotedStr(Von) + ') AND ' + 
                   '(Datum = ' + QuotedStr(Bis) + '))';

Das soll funktionieren? :shock: ... Datum = '1.1.2006' AND Datum = '1.2.2006' Das ist doch niemals wahr?

Verwende lieber a) <= und >= oder b) doch besser 'BETWEEN' (falls Paradox das kann), also so:
Delphi-Quellcode:
 Table1.Filter := 'Empfaenger = ' + QuotedStr(trim(DBCombobox1.text)) + 'AND' + 
                   '(Datum BETWEEN ' + QuotedStr(Von) + ' AND ' + QuotedStr(Bis) + ')';
oder
Delphi-Quellcode:
Table1.Filter := 'Empfaenger = ' + QuotedStr(trim(DBCombobox1.text)) + 'AND' +
                   '((Datum >= ' + QuotedStr(Von) + ') AND ' +
                   '(Datum <= ' + QuotedStr(Bis) + '))';

Ines 5. Dez 2006 11:39

Re: Table nach Datum Filtern
 
@alzaimar
Zitat:

Zitat von alzaimar
Das soll funktionieren? :shock: ... Datum = '1.1.2006' AND Datum = '1.2.2006' Das ist doch niemals wahr?

Du hast scheinbar meine Antwort nicht ganz gelesen. :gruebel:

Auf den Fehler in der Abfrage habe ich auch hingewiesen!

Grüße
Ines

alzaimar 5. Dez 2006 11:42

Re: Table nach Datum Filtern
 
Zitat:

Zitat von Ines
Du hast scheinbar meine Antwort nicht ganz gelesen. :gruebel:
Auf den Fehler in der Abfrage habe ich auch hingewiesen!

Grüße
Ines

Da muss auf meinem Bildschirm ein Klecks gewesen sein. :oops: Ehrlich. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz