AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datensuche mit mehreren Tabellen
Thema durchsuchen
Ansicht
Themen-Optionen

Datensuche mit mehreren Tabellen

Ein Thema von MCOP2001DE · begonnen am 23. Okt 2004 · letzter Beitrag vom 12. Nov 2004
Antwort Antwort
Seite 1 von 2  1 2      
MCOP2001DE

Registriert seit: 19. Jun 2004
89 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Datensuche mit mehreren Tabellen

  Alt 23. Okt 2004, 00:54
Hallo

Ich habe eine Tabelle mit dem Namen Ersatzteil eine mit dem Namen Anlagentyp und eine mit dem Namen Zuordnung.
In der Tabelle Ersatzteil habe ich alle Ersatzteile gelistet in der Anlagentyp alle Anlagentyp.
Da aber mehrere Anlagentypen die gleichen Ersatzteile habe habe ich die Tabelle Zuordnung erstellt und diese mit den Feldern Zuordnungs_ID,Anlagentyp_ID und Ersatzteil_ID versehen.
Ich möchte jetzt eine Anlagentyp auswählen und es sollen mir mittels eines DBGrid alle Ersatzteile die in der Zuordnungstabelle zu diesem Anlagentyp zugeordnet sind angezeigt werden.

Hat jemand ne Lösung??

MFG

MCOP2001DE
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Datensuche mit mehreren Tabellen

  Alt 23. Okt 2004, 03:47
Hallo MCOP2001DE,

ein ähnlichen Problem hatten wir gerade hier. Das sollte dir schon einmal weiter helfen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
MCOP2001DE

Registriert seit: 19. Jun 2004
89 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Datensuche mit mehreren Tabellen

  Alt 24. Okt 2004, 01:59
Hallo MrSpock

Die Lösung geht zwar aber ich habe noch ein Problem und zwar gibt es für einen Anlagentyp auch mehrere Ersatzteile
jetzt wird mir aber nur das erste angezeigt.Ein weiters Problem ist das ich über ein weite DBLoobComboBox und eine ADOQuery schon nach Hersteller suchen lasse.
Gibt es nicht eine Möglichkeit über eine SQL Code erst die Zuordnungstabelle nach den Anlagentypen zu durchsuchen und die Ersatzteil_ID´s aus dem ergebnis an den DBGrid zuübergeben und die restlichen Daten zu den Ersatzteil_ID´s hinzu zufügen?

MCOP2001DE
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Datensuche mit mehreren Tabellen

  Alt 24. Okt 2004, 02:23
Hallo MCOP2001DE,

dann musst du noch etwas falsch gemacht haben. Wenn du die Zuordnungstabelle als Detailtabelle und die Tabelle Anlagentyp als Master einsetzt, werden dir zu jedem ausgewählten Anlagetypen alle Ersatzteile angezeigt!

Aber es geht natürlich auch mit einer Query:

SQL-Code:
SELECT A.Name, E.Bezeichner FROM AnlageTyp A
LEFT JOIN Zuordnung Z ON Z.AnlagenTyp_ID=A.ID
LEFT JOIN Ersatzteile E ON Z.Ersatzteil_Id=E.ID
WHERE A.Nummer= :Nr
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
MCOP2001DE

Registriert seit: 19. Jun 2004
89 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: Datensuche mit mehreren Tabellen

  Alt 25. Okt 2004, 23:46
Hallo MrSpock

Danke für den Tip aber irgentwo habe ich wohl einen Fehler drin

Delphi-Quellcode:
procedure TFRM_Ersatzteil.LCB_AnlagentypClick(Sender: TObject);
begin
   with Datenmodul2.QRY_ErS do
    begin
     close;
     SQL.Clear;
     SQL.Text := 'SELECT * FROM AnlageTyp A'+
                 'LEFT JOIN Zuordnung Z ON Z.AnlagenTyp_ID=A.Anlagen_ID'+
                 'LEFT JOIN Ersatzteile E ON Z.Ersatzteil_Id=E.Ersatzteil_ID'+
                 'WHERE A.Anlagentyp_ID= :Anlagentyp_ID';
     Parameters.ParamByName('Anlagentyp_ID').Value := DBT_E_Anlagentyp_ID.Caption;
     open;
    end;

end;
beim Ausführen bekomme ich die Fehlermeldung "Syntaxfehler in der From Klausel"
Kannst du einen Fehler in dem Code sehen?

MCOP2001DE
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Datensuche mit mehreren Tabellen

  Alt 26. Okt 2004, 06:11
Hallo MCOP2001DE,

tja, wie heißt denn deine Tabelle? AnlageTyp oder AnlagenTyp?
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
MCOP2001DE

Registriert seit: 19. Jun 2004
89 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: Datensuche mit mehreren Tabellen

  Alt 26. Okt 2004, 23:12
Hallo MrSpock

Sorry die Tabelle heist E_Anlagentyp.
Ich habe die Einträge jetzt so geändert

Delphi-Quellcode:
[procedure TFRM_Ersatzteil.LCB_AnlagentypClick(Sender: TObject);
begin
   with Datenmodul2.QRY_ErS do
    begin
     close;
     SQL.Clear;
     SQL.Text := 'SELECT * FROM E_Anlagentyp A '+
                 'LEFT JOIN Zuordnung Z ON Z.Anlagentyp_ID=A.Anlagentyp_ID,'+
                 'LEFT JOIN Ersatzteile E ON Z.Ersatzteil_ID=E.Ersatzteil_ID'+
                 'WHERE A.Anlagentyp_ID= :Anlagentyp_ID';
     Parameters.ParamByName('Anlagentyp_ID').Value :=DBT_E_Anlagentyp_ID.Caption;
     open;
    end;

end;
Ich bekomme aber die selbe Fehlermeldung.Alle anderen Tabellen und Spaltennamen habe ich Überprüft die Stimmen alle. Was kann das denn noch sein?Oder kann es daran liegen das die Datenbank auf Access basiert und ich die Ansteuerung über ADO mache?

MCOP2001DE
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Datensuche mit mehreren Tabellen

  Alt 27. Okt 2004, 03:30
Hallo MCOP2001DE,

es sieht so aus, dass Access den Aliasnamen (A) für die Tabelle E_Anlagentyp nicht mag. Möglicherweise hat Microsoft da mal wieder ein spezielles feature, aber mit Access Besonderheiten von SQL kenne ich mich nicht aus. Da sollte einmal jemand anders drüberschauen. Sowohl Local SQL als auch Firebird kommen mit dem SQL Statement klar.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Datensuche mit mehreren Tabellen

  Alt 27. Okt 2004, 05:46
Hallo MCOP2001DE,

ich habe gerade noch einmal in unserem Forum gesucht und das hier gefunden. Left Joins müssen in Access wohl geklammert werden.

SQL-Code:
SELECT * FROM (E_Anlagentyp A LEFT JOIN Zuordnung Z ON Z.Anlagentyp_ID=A.Anlagentyp_ID)
LEFT JOIN Ersatzteile E ON Z.Ersatzteil_ID=E.Ersatzteil_ID
WHERE A.Anlagentyp_ID= :Anlagentyp_ID
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
MCOP2001DE

Registriert seit: 19. Jun 2004
89 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

Re: Datensuche mit mehreren Tabellen

  Alt 2. Nov 2004, 22:01
Hallo MrSpock

Danke erstmal für deine Hilfe.
Das mit der Abfrage schient zu klappen aber ich bekomme jetzt die Meldung das der Parameter Anlagentyp_ID nicht gefunden wird.Dieser ist aber als Parameter in der Lister der Parameters für den Query eingetragen.
Hast du ne Ahnung was das jetzt wieder sein kann?

MCOP2001DE
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:48 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