VB6 ADO GRID SQL Bedingungen zweier Tabellen in einem SQL abfragen

07/10/2008 - 18:03 von Michael | Report spam
Hallo in die Runde,
ich habe ein kleines Problem mit SQL. Ich habe ein VB6 Programm und binde
via ADO eine Access-Tabelle an ein Datengrid. Soweit alles ok.

Ich habe eine Tabellen z.B: 'Produkte' , Datensàtze für Produkte und

eine zweite Tabelle 'Ersatzteile' beide Tabellen sind über GUID der
Datensàtze miteinander 'verbunden'.
Das heißt, jeder Datensatz eines Ersatzteiles ist über die GUID einem
Produkt zugeordnet.

Nun soll ein Ersatzteil mehreren Produkten zugeordnet werden können ohne die
Ersatzteildatensàtze zu doppeln. Meine Idee wàre eine Link-Tabelle
Produkte-Ersatzteile (Feld1= GUID Produkt, Feld2 GUID Ersatzteil) zu
erstellen. So kann ich mehrere Ersatzteile einem Produkt zuordnen. Soweit
kein Problem!

Frage wàre nun, wie sieht so ein SQL-String aus, um in der Linktabelle
abzufragen, dann aber nicht die Eintràge der Linktabelle im Grid zu zeigen,
sondern die entsprechenden Datensàtze der Ersatzteiltabelle zu listen.
Irgendwie muss sich sowas doch "verschachteln " lassen. Aber wie? Kann mir
jemand einen Ansatz posten wie sowas innerhalb einer SQL-Abfrage geht geht ?

Danke vorab für jeden Tipp!

Gruß Michael
 

Lesen sie die antworten

#1 Dieter Strassner
07/10/2008 - 18:27 | Warnen spam
Hallo Michael,


Ich habe eine Tabellen z.B: 'Produkte' , Datensàtze für Produkte und

eine zweite Tabelle 'Ersatzteile' beide Tabellen sind über GUID der
Datensàtze miteinander 'verbunden'.
Das heißt, jeder Datensatz eines Ersatzteiles ist über die GUID einem
Produkt zugeordnet.

Nun soll ein Ersatzteil mehreren Produkten zugeordnet werden können
ohne die Ersatzteildatensàtze zu doppeln. Meine Idee wàre eine
Link-Tabelle Produkte-Ersatzteile (Feld1= GUID Produkt, Feld2 GUID
Ersatzteil) zu erstellen. So kann ich mehrere Ersatzteile einem
Produkt zuordnen. Soweit kein Problem!

Frage wàre nun, wie sieht so ein SQL-String aus, um in der Linktabelle
abzufragen, dann aber nicht die Eintràge der Linktabelle im Grid zu
zeigen, sondern die entsprechenden Datensàtze der Ersatzteiltabelle
zu listen. Irgendwie muss sich sowas doch "verschachteln " lassen.
Aber wie? Kann mir jemand einen Ansatz posten wie sowas innerhalb
einer SQL-Abfrage geht geht ?
Danke vorab für jeden Tipp!



Schematisch:
Von Produkte auf Linktabelle. Von Linktabelle auf Ersatzteile

SELECT Produkte.*, Ersatzteile.*
FROM Produkte
JOIN Linktabelle ON Produkte.GUIDfeld =Linktabelle.GUID
JOIN Ersatzteile ON Linktabelle.GUIDfeld= Ersatzteile.GUID

Welche GUID-Felder mwie genau abgefragt werden, weißt Du ja selbst am
besten.

Statt "Produkte.*, Ersatzteile.*" besser nur die tatsàchlich benötigten
Felder eintragen.
Anmerkung: Updatefàhig ist so ein Recordset dann allerdings nicht mehr.

Was auch eine Möglichkeit wàre: ein hierrachisches recordset mit passenden
Grid verwenden.
Damit habe ich allerdings keine prakticshe Erfahrung, weiß nur das geeignet
wàre.
Vllt. erhàltst Du dazu ja auch noch einen Tipp


Viele Grüße

Dieter


Rückfragen bitte nur in die Newsgroup!

EDV-Kommunikation Strassner e.K.
68623 Lampertheim
Internet: www.strassner.biz

Ähnliche fragen