Autor Beitrag
DelphiNewBee
Hält's aus hier
Beiträge: 6

WinXp Win 200 Win 98 Win 95
D7 Enterprise
BeitragVerfasst: Mi 04.08.04 09:09 
Hi Leute ich bin ein total delphi anfänger ! Ich hab mir ein programm geschieben was mir daten aus einer datenbank ausliest und nun will ich das ich wenn ich ein datum in ein edt memo oder ein vergleichbares feld ein datum eingebe dieses an einen button weitergegeben wird und mir nur noch die datensätze mit diesem datum anzeigt ! Der filter funktioniert auch soweit aber nur wenn ich das datum direkt in den quellcode schreibe ich will aber das ich es halt selbst eingeben (also über das edit oder memo feld ! Ich bekommdas einfach net hin ich muss doch nur den wert der in diesem feld steht an die funktion übergeben richtig?
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, DB, DBTables, Grids, DBGrids, StdCtrls, DBCtrls, Mask,
  ExtCtrls;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Table1: TTable;
    PageControl1: TPageControl;
    Browse: TTabSheet;
    Edit: TTabSheet;
    Table1Oberbegriff: TStringField;
    Table1PROJEKTBezeichnung: TStringField;
    Table1KUNDENNummer: TIntegerField;
    Table1Anrede: TStringField;
    Table1Name: TStringField;
    Table1BEGINN: TDateTimeField;
    Table1ENDE: TDateTimeField;
    Table1PROJEKTSTATUS: TStringField;
    Table1Bearbeiter: TStringField;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    Label3: TLabel;
    DBEdit3: TDBEdit;
    Label4: TLabel;
    DBEdit4: TDBEdit;
    Label5: TLabel;
    DBEdit5: TDBEdit;
    Label6: TLabel;
    DBEdit6: TDBEdit;
    Label7: TLabel;
    DBEdit7: TDBEdit;
    Label8: TLabel;
    DBEdit8: TDBEdit;
    Label9: TLabel;
    DBEdit9: TDBEdit;
    DBNavigator1: TDBNavigator;
    Button1: TButton;
    Memo1: TMemo;

    procedure Button1Click(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}




procedure TForm1.Button1Click(Sender: TObject);
 var
 Datum: string ;

begin

Datum  := (Memo1.Text);

  Table1.Active:=False;
  Table1.Filtered := False;
  Table1.Filter := 'ENDE = ' + QuotedStr('Datum');
  Table1.Filtered := True;
  Table1.Open;
end;

procedure TForm1.Memo1Change(Sender: TObject);
begin

end;

end.

könnt ihr mir helfen!!

Moderiert von user profile iconKlabautermann: Fehlerhafte Code- durch Delphi-Tags ersetzt.
neojones
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1206
Erhaltene Danke: 1



BeitragVerfasst: Mi 04.08.04 09:13 
Lass Dir mal mit ShowMessage(Table1.Filter) den Filterstring ausgeben, nachdem Du ihn gesetzt hast. Da dürfte drinstehen:

ausblenden Quelltext
1:
ENDE = 'Datum'					


Warum? Weil Du Datum als festen String übergibst und nicht die Variable.

So ists richtig:

ausblenden Delphi-Quelltext
1:
Table1.Filter := 'ENDE = ' + QuotedStr(Datum);					


Hilfreich wäre in Zukunft, wenn Du die Fehlermeldung, die Dein Programm auswirft, mit in Dein Posting setzen würdest. Das erleichtert die Suche.

Viele Grüße,

Matthias

Moderiert von user profile iconKlabautermann: Code durch Delphi-Tags ersetzt.

_________________
Ha! Es compiliert! Wir können ausliefern!
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 04.08.04 09:21 
Hallo,

desweiteren solltest du dir mal die Komponente tDateTimePicker von der Komponentenseite Win32 anschauen. Damit verhinderst du Fehleingaben, und kannst den Wert diereckt im Format tDateTime auslesen.

Gruß
Klabautermann
DelphiNewBee Threadstarter
Hält's aus hier
Beiträge: 6

WinXp Win 200 Win 98 Win 95
D7 Enterprise
BeitragVerfasst: Mi 04.08.04 09:56 
Hm ich komm mit dem dateTimepicker net so ganz klar (wäre die beste lösung damit) weil ich mich halt in delphi sogesehen null auskenne ist das ganze en bissl schwierig zu verstehen für mich( hab vorher mit c++ gearbeitet aber da konnte ich nie datenbankverbindungen aufbauen )!
Nungut werde ma schaun ob ich das noch hinbekomme thx for our tips
DelphiNewBee Threadstarter
Hält's aus hier
Beiträge: 6

WinXp Win 200 Win 98 Win 95
D7 Enterprise
BeitragVerfasst: Mi 04.08.04 10:30 
Tja leider bekomm ic das net auf die reihe wenn irgendjemand noch ne lösung hat wäre ich ihm dankbar endweder bekomm ich die meldung keine gültige datums/uhrzeitseingabe (bei verwendung eines memo oder edit feldes ) oder wenn ich den DateTimerPicker verwenden will lässt es sich erst gar nicht kompilieren!!
neojones
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1206
Erhaltene Danke: 1



BeitragVerfasst: Mi 04.08.04 10:46 
Lass Dir mal den Filterstring ausgeben und Poste den hier. Ansonsten wird Dir wohl keiner helfen können.

_________________
Ha! Es compiliert! Wir können ausliefern!
DelphiNewBee Threadstarter
Hält's aus hier
Beiträge: 6

WinXp Win 200 Win 98 Win 95
D7 Enterprise
BeitragVerfasst: Mi 04.08.04 10:49 
also als ausgabe bekomm ich dann "Ende= '02.07.2004' "

Hab meinen Code grad ma en bissl abgeändert sieht nun so aus
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure TForm1.Button1Click(Sender: TObject);
 var
 Datum: string ;


begin


Datum  := (Memo1.Text);


  Table1.Active:=False;
  Table1.Filtered := False;
  Table1.Filter := 'ENDE = ' + string(Datum);
   ShowMessage(Table1.Filter);
  Table1.Filtered := True;
  Table1.Open;

end;


end.

Das problem ist nun das ich wenn ich punkte mache beim datum ( so z.B. 02.04.2005) dann sagt er mir das ungültige filterausdrücke drin sind ! Er meint die punkte!!