Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi 2 Tabellen mit Quick Report (https://www.delphipraxis.net/85164-2-tabellen-mit-quick-report.html)

Benna 26. Jan 2007 20:23

Datenbank: BDE • Zugriff über: ODBC

2 Tabellen mit Quick Report
 
moin

ich greife mit 2 querys auf 2 tabellen zu:

1.

SQL-Code:
select * from buechertabelle where buchname like :buc and
fach like :fac and
klassenstufe like :kla
2.

SQL-Code:
select count (*) from verknuepfungstabelle where buecherid like :bid
so rufe ich das ganze auf:


Delphi-Quellcode:
QRY_suchen.close;
QRY_suchen.ParamByName('buc').AsString := '%' + edit1.text + '%';
QRY_suchen.ParamByName('fac').AsString := '%' + combobox1.text + '%';
QRY_suchen.ParamByName('kla').AsString := '%' + combobox2.text + '%';
QRY_suchen.Open;
QRY_vek.close;
QRY_vek.parambyname('bid').asstring:=QRY_suchen.fieldbyname('id').AsString;
QRY_vek.open;
REP_suchen.dataset:=dm_buecher.QRY_suchen;
rep_suchen.qrdbtext1.dataset:=dm_buecher.QRY_suchen;
rep_suchen.qrdbtext2.dataset:=dm_buecher.QRY_suchen;
rep_suchen.qrdbtext3.dataset:=dm_buecher.QRY_suchen;
rep_suchen.qrdbtext4.dataset:=dm_buecher.QRY_suchen;
rep_suchen.qrdbtext5.dataset:=dm_buecher.QRY_vek;
REP_suchen.preview;
wenn die suche jetzt nur einen treffer ergibt haut das ganze hin,
findet er aber in qry_suchen mehrere datensätze dann steht im qrdbtext5 bei allen der gleiche wert

marabu 26. Jan 2007 22:18

Re: 2 Tabellen mit Quick Report
 
Hallo,

du musst die Master-Detail-Verknüpfung über die Eigenschaft DataSource von QRY_VEK machen. Dein Versuch muss daneben gehen, da der Fremdschlüssel-Wert nur einmal übernommen wird und sich nicht anpasst, wenn die Report Engine den Cursor im Master-Dataset QRY_SUCHEN verschiebt. Lies vielleicht nochmal die entsprechenden Hinweise in der Delphi Online-Hilfe - Stichwort DataSource Eigenschaft von TQuery.

Gute Nacht

Benna 27. Jan 2007 12:24

Re: 2 Tabellen mit Quick Report
 
ích hab leider keine ahnung wie ich das machen soll, kenn mich kaum aus mit sql.....

in der hilfe hab ich auch nichts gefunden was mir weiter geholfen/funktioniert hat

marabu 27. Jan 2007 13:11

Re: 2 Tabellen mit Quick Report
 
Hallo,

ich kenn mich ja auch kaum aus - aber zusammen schaffen wird das bestimmt.

Wenn du noch keine DataSource für deine QRY_SUCHEN hast, dann ziehe mal eine auf deine Form und nenne sie z.B. DS_SUCHEN. In deren Eigenschaft DataSet wählst du dann QRY_SUCHEN aus. In der Eigenschaft DataSource von QRY_VEK wählst du dann DS_SUCHEN aus der dortigen Auswahlliste. Dann verwendest du genau den Namen des Feldes aus QRY_SUCHEN als Parametername im SQL-Statement von QRY_VEK, über den du die Verknüpfung realisieren möchtest.

Viel Glück.

Benna 27. Jan 2007 13:22

Re: 2 Tabellen mit Quick Report
 
so hab ich es gemacht:

Delphi-Quellcode:
QRY_vek.datasource := DS_suchen;
Delphi-Quellcode:
QRY_vek.parambyname('id').asstring:=QRY_suchen.fieldbyname('id').AsString;
SQL-Code:
select count (*) from verknuepfungstabelle where buecherid like :id
es tritt leider immernoch das gleiche problem auf

Benna 27. Jan 2007 13:45

Re: 2 Tabellen mit Quick Report
 
hab das problem gelöst

Delphi-Quellcode:
QRY_vek.parambyname('id').asstring:=QRY_suchen.fieldbyname('id').AsString;
die zeile muss wech und denn hauts hin

marabu 27. Jan 2007 13:47

Re: 2 Tabellen mit Quick Report
 
Die Zuweisung an den Parameter sollst nicht du machen. Bei jedem Verschieben des Satzzeigers in der Komponente QRY_SUCHEN wird automatisch der Parameter angepasst - damit du immer die richtigen Sätze in QRY_VEK siehst.

Ist ID auch wirklich der Name des Schlüsselfeldes in der BUECHERTABELLE?
Setzt du QRY_VEK.DataSource bevor du die Query öffnest?
Hast du DS_SUCHEN.DataSet auf QRY_SUCHEN gesetzt?

Du kannst diese Einstellungen wahrscheinlich alle bereits im Object Inspector tätigen.


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