Access 2010 - Abfrage über mehrere Tabellen

emsmaster

Newbie
Dabei seit
Feb. 2012
Beiträge
5
Hallo zusammen!


Vorweg: Ich bin Laie in Sachen Datenbanken, SQL, Access, etc..

Nun habe ich allerdings die AUfgabe vom Cheffe bekommen, eine Datenbank einzurichten. Die steht soweit auch, per SQL Manager auf einem Windows SQL Server 2005 eingerichtet, Zugriff soll dann vom CLient aus per Access 2010 erfolgen.

Nun habe ich allerdings ein Problem bei den Abfragen (und auch Formularen).
Wenn ich eine Abfrage mit mit nur einer Tabelle mache, funktioniert dies wunderbar. Möchte ich allerdings eine Abfrage erstellen, die mehrere Tabellen mit einschließt, funktioniert das Erstellen zwar, die Abfrage ist dann allerdings leer.
Woran kann das liegen?

Hier einmal der Aufbau:
http://s14.directupload.net/images/120220/xy5rcp5b.png

Hab ich vllt. irgendwelche Keys irgendwie falsch gesetzt?

Grüße!
 

Madman1209

Fleet Admiral
Dabei seit
Nov. 2010
Beiträge
24.968
Hi,

verstehe gerade nicht, wieso Access da dazwischen ist. Was für eine Art Applikation ist das denn und warum nicht gleich direkt auf den SQL-Server zugreifen? Der "Mittelmann" Access ist für mich da fehl am Platz.

An sich sieht die Abfrage korrekt aus. Du kannst in Access auch auf "SQL-Ansicht" umschalten, poste doch die generierte Abfrage mal.

VG,
Mad
 

emsmaster

Newbie
Ersteller dieses Themas
Dabei seit
Feb. 2012
Beiträge
5
Hallo, und danke für die schnelle Antwort!

Access ist leider Vorgabe, und treibt mich auch nur noch weiter in den Wahnsinn. Was für Alternativen gäbe es denn?

Der generierte Code, wenn ich nur mal ein paar Daten aus Referenzen nehme, sowie Bundesland und Branche:

SELECT dbo_Referenzen.Projekttitel, dbo_Referenzen.Kunde, dbo_Bundesland.Bundesland, dbo_Branche.Branche
FROM dbo_Bundesland INNER JOIN (dbo_Branche INNER JOIN dbo_Referenzen ON dbo_Branche.[ID-Branche] = dbo_Referenzen.[ID-Branche]) ON dbo_Bundesland.[ID-Bundesland] = dbo_Referenzen.[ID-Bundesland];


Via Auswahlabfrage-Assistent generiert.

Gruß!
 

Madman1209

Fleet Admiral
Dabei seit
Nov. 2010
Beiträge
24.968
Hi,

das mit dem Wahnisnn verstehe ich ;)

Alternative wäre einfach der direkte Zugriff der jeweiligen Applikation auf die SQL-Datenbank.

Funktioniert denn der Code, den du gepostet hast? Kommt da eine Fehlermeldung oder bleibt die Wertemenge einfach leer? An sich sieht die Abfrage korrekt aus. Sind auch alle Tabellen beteiligten mit Werten gefüllt?

VG,
Mad
 

Knufu

Lieutenant
Dabei seit
Dez. 2011
Beiträge
586

Knufu

Lieutenant
Dabei seit
Dez. 2011
Beiträge
586
Zu Deiner DB:

Tabelle: dbo_Referenzen_Lösung
Wieso nimmst du hier nicht die ID_Ref als Prim.key? Da dies schonmal ein Prim.key ist, hast du diese Zahl ja bereits als eineindeutig gekennzeichnet.

dto. Hersteller


@Madman: siehst du, du kannst dich auch dein Gefühl noch verlassen :)
Grüße
Ralph
 

emsmaster

Newbie
Ersteller dieses Themas
Dabei seit
Feb. 2012
Beiträge
5
Da dieser Aufbau leider Vorgabe ist, komme ich nicht drum herum. Ich hätte es nach Möglichkeit ja auch gern einfacher/logischer aufgebaut.

Also ich hab jetzt von wo anders den Tipp bekommen, mit einem RIGHT JOIN statt einem INNER JOIN zu arbeiten, das funktioniert jetzt sogar. Wenngleich mir nicht ganz klar ist, was genau das ändert. Google ist da auf Anhieb leider auch nicht ganz hilfreich.
Aber immerhin bin ich jetzt erstmal einen Schritt weiter. :)
 

Knufu

Lieutenant
Dabei seit
Dez. 2011
Beiträge
586
Achso. Wäre vielleicht mal Beratungsbedarf in den oberen Ebenen :D

Schau mal hier: http://www.firebirdfaq.org/faq93/
("What's the difference between LEFT, RIGHT, INNER, OUTER, JOIN?")

oder hier: http://aktuell.de.selfhtml.org/artikel/datenbanken/joins/

"Der INNER JOIN führt Datensätze aus der linken und rechten Tabelle genau dann zusammen, ..."
"Die LEFT JOIN- bzw. RIGHT JOIN-Varianten .... Der Unterschied liegt in den Datensätzen, die hinterher im Ergebnis zugelassen werden."


Grüße
Ralph
 
Zuletzt bearbeitet:
Top