![]() |
Datenbank: BDE • Zugriff über: ODBC
2 Tabellen mit Quick Report
moin
ich greife mit 2 querys auf 2 tabellen zu: 1.
SQL-Code:
2.
select * from buechertabelle where buchname like :buc and
fach like :fac and klassenstufe like :kla
SQL-Code:
so rufe ich das ganze auf:
select count (*) from verknuepfungstabelle where buecherid like :bid
Delphi-Quellcode:
wenn die suche jetzt nur einen treffer ergibt haut das ganze hin,
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; findet er aber in qry_suchen mehrere datensätze dann steht im qrdbtext5 bei allen der gleiche wert |
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 |
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 |
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. |
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:
es tritt leider immernoch das gleiche problem auf
select count (*) from verknuepfungstabelle where buecherid like :id
|
Re: 2 Tabellen mit Quick Report
hab das problem gelöst
Delphi-Quellcode:
die zeile muss wech und denn hauts hin
QRY_vek.parambyname('id').asstring:=QRY_suchen.fieldbyname('id').AsString;
|
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 19:23 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