Autor Beitrag
Jagg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 635



BeitragVerfasst: Mi 04.12.02 14:37 
Hallo !

Ich habe eine Tabelle (Bestell.dbf) und eine (Material.dbf) !
In beiden Tabellen ist das Feld (ArtNr) enthalten !
In die (Bestell.dbf) schreibe ich den Wert für das Feld (ArtNr) hinein !
In der (Material.dbf) sind noch zusätzlich zu dem Feld (ArtNr),noch die Felder (Wieviel),(Einheit) und (WasDenn) enthalten !

Mein Problem :

Ich suche in der (Bestell.dbf) nach dem Feld (ArtNr) !
Die Werte soll er mit der Tabelle (Material.dbf) vergleichen und ausgegeben soll (ArtNr),(Wieviel),(Einheit) und (WasDenn) !

Beispiel :

Bestell.dbf : Im Feld steht ArtNr = 100 !
Suche in Material.dbf im Feld ArtNr den Wert 100 !
Wenn gefunden,dann ausgeben Wert von (Wieviel),(Einheit) und (WasDenn),die zu "ArtNr" gehören ! (also,in derselben Zeile sind !)

Habt ihr eine Idee ?

Jagg !
Andi1982
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 497

WinXP HE
D6 Enterprise
BeitragVerfasst: Do 05.12.02 08:50 
hallo,
ich arbeite zwar mit DB2, aber bei dir müsste es genauso gehen:
ausblenden Quelltext
1:
2:
3:
SELECT ArtNr, WieViel, Einheit, WasDenn
FROM Bestell.dbf T1, Material.dbf T2
WHERE T1.ArtNr = T2.ArtNr;


So sollte es gehen, natürlich arbeitet er das dann für jede Zeile der Tabelle Bestell.dbf durch. Es kann also vorkommen dass er mehrere Rows als Result zurück bekommt.

Gruß Andi

_________________
Solange die Bombe tickt ist alles in Ordnung, erst wenn sie damit aufhört wird es problematisch...
Jagg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 635



BeitragVerfasst: Do 05.12.02 11:13 
ich arbeite aber mit Table und nicht SQL !
ist es mit SQL besser ?
Wie geht das mit Table ???

Jagg !
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Do 05.12.02 11:58 
Ja geht auch mit Tabellen. Du brauchst dazu eine Datasource an deiner Tabelle Bestell.
Die Eigenschaft MasterSource deiner Tabelle Material setzt du auf diese Datasource. Anschliessend legst du über die Eigenschaft MasterFields fest über welche Felder die Verbindung zwischen den beiden Tabellen hergestellt wird. In deinem Fall ArtNr.
Wenn du nun in der Tabelle Bestell einen Datensatz auswählst, werden automatisch in der Tabelle Material der dazugehörende Datensatz ausgewählt.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Jagg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 635



BeitragVerfasst: Fr 06.12.02 13:33 
Das ist meine Antwort !
ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
if Key = VK_F3 then
  begin
    T.DatabaseName := 'C:\BiBA\Mail\';
    T.TableName := 'Bestell.dbf';
    T.Open;
    for i := 1 to 40 do
    begin
      if TE[i].Text<>'' then
      begin
        T.Append;
        T.FieldByName('ArtNr')  .AsInteger := StrToInt(L1[i].Caption);
        T.FieldByName('Wieviel').AsInteger := StrToInt(TE[i].Text);
        T.Post;
      end;
    end;
    Form3.Memo1.Clear;
    TB := TTable.Create(form11);
    TB.DatabaseName := 'C:\BiBA\Mail';
    TB.TableName := 'Bestell.dbf';
    TM := TTable.Create(form11);
    TM.DatabaseName := 'C:\BiBA\Mail';
    TM.TableName := 'Material.dbf';
    TM.Open;
    TB.Open;
    TB.First;
    TM.SetKey;
    TM.First;
    while not TB.eof do
    begin
      TM.TableName := 'Material.dbf';
      if TM.FieldByName('ArtNr').AsString = TB.FieldByName('ArtNr').AsString then
      begin
        if Length(TB.FieldByName('Wieviel').AsString) = 1 then
          y := '  ';
        if Length(TB.FieldByName('Wieviel').AsString) = 2 then
          y := ' ';
        if Length(TB.FieldByName('Wieviel').AsString) = 3 then
          y := '';
        Form3.Memo1.Lines.Add(y+TB.FieldByname('Wieviel').AsString+' '+TM.FieldByname('Einheit').AsString
        +' '+TM.FieldByname('WasDenn').AsString);
        TB.Next;
        TM.First;
      end
      else
        TM.Next;
    end;
    Close;
    Form3.Memo1.SetFocus;
  end;


Jagg !
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Fr 06.12.02 14:02 
Hi
Jagg hat folgendes geschrieben:
Das ist meine Antwort !

Um ehrlich zu sein, versteh ich nicht was du uns damit sagen willst :nixweiss:

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Jagg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 635



BeitragVerfasst: Fr 06.12.02 20:07 
hehe ich auch nicht aber naja man lebt nur einmal ! ;)))))))))))))))))