AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Filterkriterium in Datenbank

Filterkriterium in Datenbank

Ein Thema von Stocki1990 · begonnen am 19. Apr 2009 · letzter Beitrag vom 19. Apr 2009
 
Stocki1990

Registriert seit: 26. Okt 2008
8 Beiträge
 
#1

Filterkriterium in Datenbank

  Alt 19. Apr 2009, 08:35
Datenbank: Access • Zugriff über: Microsoft.Jet.OLEDB.4.0
Servus Leute!

Bin gerade dabei, die Filterfunktion innerhalb von Datenbanken kennenzulernen.
Hab' schon einige Möglichkeiten ausprobiert, doch keine scheint zu funktionieren.

Der Filter sollte so funktionieren:

Wenn ich eine Musikkategorie auswähle, werden mir die dazugehörigen
Lieder bzw. Musikstücke präsentiert.

Wähle ich nun jedoch auf der rechten Seite einen Komponisten aus, sollen
nur Stücke dieses Interpreten angezeigt werden.




Hier wäre einmal der Delphi-Code:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ADODB, DB, ComCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    ADOTable1: TADOTable;
    TreeView1: TTreeView;
    ListView1: TListView;
    ListBox1: TListBox;
    procedure FormShow(Sender: TObject);
    procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
  private
    function DatenverbindungHerstellen(): boolean;
    procedure FillTreeview;
    procedure FillListbox;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}



procedure Tform1.FillTreeview;
var
 Node: TTreenode;
begin
 //Bereits vorhandene Knotenelemente (Items) werden gelöscht:
 Treeview1.items.clear;

 ADOQuery1.close;
 ADOQuery1.SQL.clear;
 ADOQuery1.SQL.Add('Select * from MVO_Sparten');
 ADOQuery1.Open;

 While not ADOQuery1.Eof do begin
  Node := Treeview1.items.add(nil,ADOQuery1.FieldValues['Sparten_Bezeichnung'] + ' (' + ADOQuery1.FieldValues['Sparten_Abkürzung'] + ')');
  Node.ImageIndex := 0;
  // Verwende ich zum Speichern der Tabellen-ID je Knotenelement:
  Node.StateIndex := ADOQuery1.FieldValues['Spartennummer'];
  ADOQuery1.Next;

 end;
 AdoQuery1.Close;

end;

procedure Tform1.FillListbox;
begin
 Listbox1.items.clear;

 ADOQuery1.close;
 ADOQuery1.SQL.clear;
 ADOQuery1.SQL.Add('Select * from MVO_Notenverzeichnis');
 ADOQuery1.Open;

 While not ADOQuery1.Eof do begin
 Listbox1.Items.add(ADOQuery1.FieldValues['Komponistnachname']) ;
  ADOQuery1.Next;
 end;
 
 Adoquery1.close;

end;
 
procedure TForm1.FormShow(Sender: TObject);
begin
Datenverbindungherstellen();
Filltreeview();
Filllistbox();
end;

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var

LI: TListitem;

begin
 Listview1.items.clear;

 ADOQuery1.close;
 ADOQuery1.SQL.clear;
 ADOQuery1.SQL.Add('Select * from MVO_Notenverzeichnis where Spartennummer = ' + inttostr(Node.stateindex));
 ADOQuery1.Open;

 While not ADOQuery1.Eof do begin
  LI := Listview1.items.add;
  LI.caption := ADOQuery1.FieldValues['Name'];
// LI.subitems.add(ADOQuery1.FieldValues['PR_Bezeichnung']);
  ADOQuery1.Next;

 end;

 AdoQuery1.Close;

end;

function tform1.DatenverbindungHerstellen(): boolean;
var
   Provider, DataProvider, DataSource: string;
begin
   Provider := 'MSDataShape.1';
   DataProvider := 'Microsoft.Jet.OLEDB.4.0';
   DataSource := extractfilepath(application.ExeName) + 'MVerein.mdb';

   if fileexists(DataSource) then begin
      if ADOConnection1.Connected then ADOConnection1.Close;
      ADOConnection1.ConnectionString := 'Provider=' + Provider + ';Data Provider=' + DataProvider + ';Data Source=' + DataSource;
      try
        ADOConnection1.Connected := true;
        result := true;
      except
        result := false;
      end;

   end else begin
       result := false;
   end;

end;

end.
Ich hoffe, dass ihr mir hierbei weiterhelfen könnt.

Danke schonmal jetzt im Voraus für eure Hilfe.

Grüße Christoph
Angehängte Dateien
Dateityp: zip mverein_196.zip (54,9 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:23 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