Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi auf bestimmtes feld einer datenbank zugreifen (https://www.delphipraxis.net/47608-auf-bestimmtes-feld-einer-datenbank-zugreifen.html)

fwsp 13. Jun 2005 20:41

Datenbank: dBase IV • Version: ??? • Zugriff über: ???

auf bestimmtes feld einer datenbank zugreifen
 
hallo

ich möchte auf eine datenbank folgendermaßen zugreifen:

1. ein bestimmtes feld jedes datensatzes soll in einer DBListBox zu sehen sein
2. bei onclick auf ein item dieser ListBox sollen die restlichen datensätze in DBEdits geladen werden.

wie macht man das?
danke.

Jasocul 14. Jun 2005 07:14

Re: auf bestimmtes feld einer datenbank zugreifen
 
Du brauchst eine TDataSet (TQuery oder TTable). Außerdem ein TDataSource.
Das TDataSet trägst du ins TDataSource.
Das TDataSource und den Namen des Feldes trägst du in deine TDBListBox ein.
Wenn du nun in deiner DBListBox blätterst, stehst du in deinem TDataSet auf dem entsprechenden Datensatz. Also auch beim OnClick. Ich würde aber lieber das OnChange des TDataSource verwenden.

fwsp 14. Jun 2005 08:55

Re: auf bestimmtes feld einer datenbank zugreifen
 
danke, probier ich gleich mal aus.

fwsp 14. Jun 2005 15:53

Re: auf bestimmtes feld einer datenbank zugreifen
 
hab ich gemacht, funktioniert allerdings nicht, in der listbox wird nichts angezeigt der rest funzt, hab nen navigator eingebaut.

hat jemand noch nen tipp?

marabu 14. Jun 2005 16:05

Re: auf bestimmtes feld einer datenbank zugreifen
 
Jasocul hat beschrieben, wie es geht. Magst du den nicht funktionierenden Code zeigen?

Grüße vom marabu

Jasocul 14. Jun 2005 19:28

Re: auf bestimmtes feld einer datenbank zugreifen
 
Vielleicht habe ich das zu ungenau geschrieben.
Bei der TDBListBox musst du im Objekt-Inspektor noch eintragen, welche TDataSource du nehmen willst. Außerdem musst du im Objekt-Inspektor auch eintragen, welches Tabellen-Feld du anzeigen lassen möchtest.
Wenn der Rest funktioniert, müsste es an einem der beiden Sachen liegen.

fwsp 14. Jun 2005 21:05

Re: auf bestimmtes feld einer datenbank zugreifen
 
habe ich eingestellt gehabt, funktioniert aber net.

Jasocul 15. Jun 2005 07:35

Re: auf bestimmtes feld einer datenbank zugreifen
 
Bei mir geht das.
Vielleicht solltest du wirklich mal dein Projekt zum Download bereitstellen. Der Source allein genügt ja nicht, da die Einstellungen im OI dort nicht zu sehen sind.

fwsp 15. Jun 2005 21:43

Re: auf bestimmtes feld einer datenbank zugreifen
 
Liste der Anhänge anzeigen (Anzahl: 1)
hallo

hab das anfängliche problem jetzt gelöst. hab alles einfach neu aufgesetzt und dann klappte es.

hab jetzt aber natürlich das nächste problem:

Code:
unit UMain;

interface

...

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 ListeFuellen(Self);
end;

procedure TForm1.DBListBox1Click(Sender: TObject);
begin
 ListeKlick(Self);
end;

procedure TForm1.ListeFuellen(Sender: TObject);
var Help : TStrings;
begin
 Help := TStringList.Create;
 Form1.Table1.First;
 while not Form1.Table1.Eof do
  begin
   Help.Add(Form1.Table1A01.Text);
   Form1.Table1.Next;
  end;
 Form1.DBListBox1.Items := Help;
end;

procedure TForm1.ListeKlick(Sender: TObject);
var i : integer;
begin
 Form1.Table1.DisableControls;
 Form1.Table1.First;
 for i := 0 to Form1.DBListBox1.Items.Count do
  begin
   if Form1.DBListBox1.ItemIndex = i
    then
     begin
      Form1.DBEdit1.Text := Form1.Table1A01.Value;
      Form1.DBEdit2.Text := Form1.Table1A02.Value;
      Form1.DBEdit3.Text := Form1.Table1A03.Value;
      Form1.DBEdit4.Text := Form1.Table1A04.Value;
      Form1.DBEdit5.Text := Form1.Table1A05.Value;
      Form1.DBEdit6.Text := Form1.Table1A06.Value;
      Form1.DBEdit7.Text := Form1.Table1A07.Value;
      Form1.DBEdit8.Text := Form1.Table1A08.Value;
      Form1.DBEdit9.Text := Form1.Table1A09.Value;
      Form1.DBEdit10.Text := Form1.Table1A10.Value;
      Form1.DBEdit11.Text := Form1.Table1A11.Value;
      Form1.DBEdit12.Text := Form1.Table1A12.Value;
      Form1.DBEdit13.Text := Form1.Table1A13.Value;
      Form1.DBEdit14.Text := Form1.Table1A14.Value;
     end;
   Form1.Table1.Next;
  end;
end;

end.
es klappt soweit alles, nur kann ich jetzt die datensätze nicht mehr ändern. und wenn ich Form1.Table1.EnabledControls irgendwo hinsetze kann ich die ListBox vergessen.

hab mal das projekt angefügt.
danke.

fwsp 18. Jun 2005 10:21

Re: auf bestimmtes feld einer datenbank zugreifen
 
keiner ne idee?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 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