Hallo, da mir hier immer so genial geholfen wird und sich bisher keiner über meine Fragerei beschwert...*hüstel*:
Also ich hab immer noch meine
Paradox 7 Datenbank (Zugriff via TQuery und
SQL). Die ist inzwischen auf 2 Tabellen "gewachsen".
Code:
Tabelle 1:
Artikelnummer
.
.
.
LNR
und
Ich erstelle jetzt einen QuickReport, in dem ich einige Daten aus Tabelle 1 ausdrucken möchte.
Code:
QuickReport:
Artikelnummer . . . LNR
Nun soll aber in den Report noch der zur Spalte "LNR" gehörende "Name" aus Tabelle 2.
Also:
Code:
Artikelnummer(Tabelle1) . . . Name(Tabelle2) . . .LNR(Tabelle1)
So rufe ich den QuickReport auf:
Delphi-Quellcode:
procedure TFArtikel.BVorschauClick(Sender: TObject);
var
slSQL : TStrings;
sMessage :
string;
begin
//Artikelnummer
If RadioButtonArtNr.Checked
Then
If (Length(EDArtNrVon.Text) = 5)
AND (Length(EDArtNrBis.Text) = 5)
Then
Begin
slSQL :=
DB.SQL;
DB.SQL.Clear;
DB.SQL.Add('
SELECT * FROM "c:\artikel.db" WHERE ArtNr BETWEEN ' + EDArtNrVon.Text + '
AND ' + EDArtNrBis.Text + '
ORDER BY ArtNr');
DB.Open;
FQRArtNr.QuickRep1.Preview;
DB.SQL := slSQL;
DB.Open;
End;
end;
Das Dataset vom Quickreport, der sich auf einer anderen Form befindet steht auf dem
Query von der ersten Form (wo ich noch ein DBGrid hab' und die ganze Bearbeitung der Daten passiert).
Frage: Wie bekomm ich es so hin, das er automatisch zur Spalte "LNR" aus Tabelle 1 im Quickreport den Wert von "Name" aus Tabelle 2 holt?
Ich dachte irgendwie mit einem
SQL-Join (was ich nebenbei gesagt noch nie gemacht hab'
), so von wegen
SQL-Code:
SELECT Name
FROM artikel, tabelle2
WHERE tabelle2.lnr = QRDBText.Caption
... könnte es so funktionieren? Und wenn ja, WANN muss ich das aufrufen
)
Ich freue mich schon auf eure Antworten
Edit: Oder geht das irgendwie über so ein Lookup Field?