AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Filter setzen: Fehler
Thema durchsuchen
Ansicht
Themen-Optionen

Filter setzen: Fehler

Ein Thema von robertthronhill · begonnen am 20. Sep 2003 · letzter Beitrag vom 21. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
robertthronhill

Registriert seit: 19. Sep 2003
15 Beiträge
 
#1

Filter setzen: Fehler

  Alt 20. Sep 2003, 07:50
Hallo!
Ich möchte für ein Datenbankprogramm eine Suche programmieren. Die Tabelle ist eine Paradox 7 Tabelle. Nun setze ich einen Filter (wenn der User auf suchen geklickt hat):
Code:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
        Table1.Close;
        Table1.Filtered := False;
        Table1.Filter := 'Stichwoerter' + QuotedStr(LabeledEdit1.Text);
        Table1.Filtered := True;
        Table1.Open;
end;
Aber nun kommt der Fehler: Filtersetzung unerfolgreich abgeschlossen. Wo liegt der Fehler?

Danke für euere Hilfe
robertthronhill
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Filter setzen: Fehler

  Alt 20. Sep 2003, 08:01
Hai robertthrohill,

willkommen im Delphi-Praxis Forum.

Zitat von robertthronhill:
Code:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
        Table1.Close;
        Table1.Filtered := False;
        Table1.Filter := 'Stichwoerter' + QuotedStr(LabeledEdit1.Text);
        Table1.Filtered := True;
        Table1.Open;
end;
Was ich bei deinem Filter vermisse ist die Filter bedingung.
z.B. = < > <>

        Table1.Filter := 'Stichwoerter = ' + QuotedStr(LabeledEdit1.Text);
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
robertthronhill

Registriert seit: 19. Sep 2003
15 Beiträge
 
#3

Re: Filter setzen: Fehler

  Alt 20. Sep 2003, 12:11
Hi Sharky!
Danke für's willkommen.
Ich weis nicht wie du das mit den <> meinst. Könntest du biite den Source verbessern?

Danke!
robertthronhill
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Filter setzen: Fehler

  Alt 20. Sep 2003, 12:22
Zitat von robertthronhill:
Hi Sharky!
Danke für's willkommen.
Ich weis nicht wie du das mit den <> meinst. Könntest du biite den Source verbessern?

Danke!
robertthronhill
Schaue dir doch einmal die letzte Zeile aus meinem Posting genau an

Code:
 Table1.Filter := 'Stichwoerter = ' + QuotedStr(LabeledEdit1.Text);
                               ^^^
Anstelle des Vergleiches mit = (gleich) geht nachtürluch auch <> (ungleich)
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#5

Re: Filter setzen: Fehler

  Alt 20. Sep 2003, 14:33
@robertthronhill:

Zur Verdeutlichung:
Zitat:
> Größer als
< Kleiner als
<> Größer und Kleiner als; oder auch Ungleich (is ja dasselbe)
= Gleich
Du muß dem Filter in der Filterbedingung ja auch mitteilen, was er filtern soll.

Also bei Tabelle mit folgenden Daten:
Zitat:
Menge
-----
20
50
70
150
200
60
55
würde bei dem Filter "Menge > '70'" nur die Werte:
Zitat:
Menge
-----
150
200
rauskommen, und bei einem Filter "Menge = '70'" die Werte:
Zitat:
Menge
-----
70
oder bei "Menge >= '70'" die Werte:
Zitat:
Menge
-----
70
150
200
usw.

Bei einem Filter "Menge'70'", den du mit deinem Quelltext erzeugst, weiß der Filter nicht:

1. Wo das Feld steht, nach welchem du Filtern willst
2. Selbst wenn er das erkennen würde, dann wüsste er nicht ob du gleich, kleiner oder größer meinst. Hellsehen gibt's nämlich erst ab Delphi 10.0, glaube ich

Darum bekommst du auch diese Meldung.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
robertthronhill

Registriert seit: 19. Sep 2003
15 Beiträge
 
#6

Re: Filter setzen: Fehler

  Alt 20. Sep 2003, 15:47
Hi!
Zunächst mal ein großen dankeschön an euch beide. Jetzt bin ich den Fehler los. Aber schon stellt sich eine neue Frage. Wie bring ich ihm bei, dass er die gefundenen Datensätze in einem StringGrid anzeigt?

Nochmals danke für die Antworten!

robertthronhill

P.S.: @Captnemo: Das mit dem Hellsehen wäre doch schön, oder?
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#7

Re: Filter setzen: Fehler

  Alt 20. Sep 2003, 16:00
Erm.. das ist ne neue Frage, da sollte man normalerweise einen neuen Thread für aufmachen.

Stellt sich jetzt die Frage, mit was für Komponenten Du arbeitest.

Im Regelfall sollte es reichen, eine DataSource (auf 'Datenzugriff' zu finden) und eine DBGrid (auf 'Datensteuerung' zu finden) auf das Formular zu ziehen.

Der Grid weist Du dann die DataSource als Datenquelle zu, und die Table die Du hast weist Du dann im Quelltext deine Table zu.

Also im Form - am besten nach dem Table1.Open:
DataSource1.DataSet := Table1; Das sollte reichen um die Daten in die Grid zu packen
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
robertthronhill

Registriert seit: 19. Sep 2003
15 Beiträge
 
#8

Re: Filter setzen: Fehler

  Alt 20. Sep 2003, 19:59
Hi phoenix!

Danke für deine Hilfe! Leider klappt deine Idee nicht. Der Compiler kennt kein DataSource1. Deswegen hab ich das ganze abgeändert:

Code:
DataModule1.DataSource1 := Table1;
Nun bekomme ich aber den Fehler: Inkompatible Typen: 'TDataSource' und 'TTable'. Das gleiche passiert auch, wenn ich das Table1 zu StringGrid1 abändere. Dann kommt aber statt 'TTable' in der Fehlermeldung 'TStringGrid'.

Ich hoffe ihr könnt mir helfen!

Danke schon im Vorraus
robertthronhill
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#9

Re: Filter setzen: Fehler

  Alt 20. Sep 2003, 21:20
Alsoooo,

du brauch mindestens:

1 x TTable (Table1)
1 x TDataSource (DataSource1)
1 x TDBGrid (DBGrid1)

Die kannst du über den OI einander zuordnen. Oder im Code:

DataSource1.DataSet:=Table1;
DBGrid1.DataSource:=DataSource1;

Damit sollte es klappen.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
robertthronhill

Registriert seit: 19. Sep 2003
15 Beiträge
 
#10

Re: Filter setzen: Fehler

  Alt 21. Sep 2003, 08:14
Hi!
Vielen herzlichen Dank, captnemo! Jetzt funktioniert es endlich! Es hätte auch schon gestern Abend funktionieren können, hätte ich bloß nicht vergessen das TDataSource einzufügen Wirklich ärgerlich!

Nochmal Danke!

robertthronhill
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz