![]() |
Datenbank: Advantage Data Architect • Version: 8.1 • Zugriff über: AdsConnection
In der Tabelle suchen
Also wenn man ein Suchbegriff in das vorgesehen Editfeld schreibt und auf suchen klickt, soll er die datenbank danach absuchen und mit nur die datensätze anzeigen, auf die es zutrifft.
und wenn man das editfeld leer lässt und auf suchen klickt, soll er alle wieder anzeigen. leider weiß ich überhaupt nicht wie ich das realisieren soll. Kann jemand mir vielleicht ein kleinen tipp geben, welche befehle ich mir anschauen sollte oder so? Lg Kleine :) |
AW: In der Tabelle suchen
Schau einmal
![]() |
AW: In der Tabelle suchen
danke das schau ich mir erstmal an :)
|
AW: In der Tabelle suchen
Eine Alternative wäre eine Query?
Gruß K-H |
AW: In der Tabelle suchen
Würde ich eigentlich auch bevorzugen, aber wie ich anhand der bisherigen Fragen den Wissensstand beurteile ist das noch etwas hoch gegriffen.
|
AW: In der Tabelle suchen
|
AW: In der Tabelle suchen
AdsQuery mit AdsConnection verbinden und öffnen. Danach kannst du zB mit AdsQuery.SQL.Add('SELECT * FROM <Tabelle> WHERE <FeldX> LIKE '#39'%' + EditSuchFeld.Text + '%'#39) die Tabelle durchsuchen. Wenn das Edit leer ist, lässt du einfach die "... WHERE ..."-Klausel weg.
Alternativ solltest du aber parametrisierte Query-Parameter nutzen, ist sicherer und effizienter. |
AW: In der Tabelle suchen
uh danke, ich werds versuchen :)
|
AW: In der Tabelle suchen
Ich würde erst den Edit.Text prüfen
Delphi-Quellcode:
und dann
if length(trim(edit.Text))>0 then
Code:
für ein nicht leeres Editfeld
Select * from Tabelle where Wert=:Editwert
oder
Code:
für ein leeres Editfeld nutzen.
Select * from Tabelle
Gruß K-H |
AW: In der Tabelle suchen
Beim suchen vergeleich ich jetzt bestimmte spalten mitdem editfeld und lass den datensatz dann in einem memo ausgeben :)
nur hab ich jetzt ein weiteres problem.. wenn ich ein datensatz im grid auswähle,soll er mir die zusätzlichen kontaktdaten wie telefon usw in einer list box ausgeben. Vorher war das grid auch eine list box und da sah der quelltext so aus
Delphi-Quellcode:
jetzt wollte ich das umändern und hab bisjetzt das
procedure TFormMain.AdresseListBoxClick(Sender: TObject);
var Adresse : tAdresse ; begin Adresse := tAdresse( AdresseListBox.Items.Objects[ Adresselistbox.ItemIndex ] ) ; RefreshKontaktListe( adresse ) ; end;
Delphi-Quellcode:
Nur leider hab ich überhaupt keine ahnung, wie er die kontaktdaten speziell zu dem ausgewählten datensatz ausgeben soll :?
procedure TFormMain.GridAdressenCellClick(Column: TColumn);
var lAdresse : tAdresse; i : Integer; begin for I := 0 to GridAdressen.SelectedRows.Count - 1 do begin lAdresse := tAdresse (GridAdressen.DataSource.DataSet[GridAdressen.SelectedRows[i]]); RefreshKontaktListe( lAdresse ) ; end; end; |
AW: In der Tabelle suchen
Dafür ist wohl das Event AfterScroll der Table/Query besser geeignet. Und darin dann z.B. mit
Delphi-Quellcode:
weiterarbeiten :wink:
MeineTable.FieldByName('xyz')...
|
AW: In der Tabelle suchen
hast du vielleicht ein beispiel quelltext?
|
AW: In der Tabelle suchen
damit komme ich nun nicht wirklich weiter :|
als ich noch die listbox hatte so der code so aus
Delphi-Quellcode:
theoretisch müsste nur die zeile
procedure TFormMain.AdresseListBoxClick(Sender: TObject);
var Adresse : tAdresse ; begin Adresse := tAdresse( AdresseListBox.Items.Objects[ Adresselistbox.ItemIndex ] ) ; RefreshKontaktListe( adresse ) ; // FormAdresse.Adresse := Adresse ; end; Adresse := tAdresse( AdresseListBox.Items.Objects[ Adresselistbox.ItemIndex ] ) ; geändert werden. Nur weiß ich nicht genau wie |
AW: In der Tabelle suchen
Sry, ich weiß nun mal nicht wie deine Software aufgebaut ist.
Aber rein aus der Beschreibung "Beim wählen eines Datensatzes sollen gewisse Felder in einer ListBox angezeigt werden" würde ich es als Beispiel so machen:
Delphi-Quellcode:
(Falls die Einträge in der ListBox aber wirklich so - mit Name-Werte-Paaren - sein sollten, wäre eine ListView imho praktischer. Naja, anderes Thema.)
procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
begin ListBox1.Items.BeginUpdate; try ListBox1.Items.Clear; ListBox1.Items.Add('Telefon: ' + Table1.FieldByName('Telefon').AsString); ListBox1.Items.Add('E-Mail: ' + Table1.FieldByName('EMail').AsString); finally ListBox1.Items.EndUpdate; end; end; |
AW: In der Tabelle suchen
Vor allem musst Du Dich von Deinen Adressklassen gedanklich verabschieden (es sei denn, Du willst gleich eine Art OPF schreiben, aber das ist schon hohe Kunst).
[edit] BTW: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:40 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