Spezifische Abfragen
Veröffentlicht am 25.05.2004
Frage:
Ich habe folgende Tabellen: Lieferanten, Postleitzahlen-Gebiete, Spediteur.
Ich möchte, dass mir bei der Eingabe einer Lieferantenadresse (mit Postleitzahl), der für dieses Gebiet zuständige Spediteur im Formular angezeigt wird.
Kann dies über eine Abfrage in Access realisiert werden?
Antwort:
Ja, das können Sie mit einer Unterabfrage als zusätzliche Spalte Ihrer Abfrage erreichen. Wenn also Ihre Basisabfrage etwa so aussieht
SELECT LieferantNr, Lieferant, PLZ, FROM tblLieferanten
dann können Sie ein weiteres SELECT als Spalte hinzufügen. Die endgültige Abfrage sieht dann so aus:
SELECT LieferantNr, Lieferant, PLZ,
(SELECT TOP 1 Spedition FROM tblSpeditionen
WHERE Val(tblLieferanten.PLZ) BETWEEN Val(PLZvon)
AND Val(PLZbis)) AS Spedition
FROM tblLieferanten;
Für jeden Datensatz aus tblLieferanten wird anhand der Postleitzahl ein passender Datensatz aus tblSpeditionen herausgesucht. Wenn Sie sicher sind, dass die Gebiete sich nicht überschneiden, können Sie das TOP 1 wieder entfernen. Das TOP 1 ist nur sicherheitshalber in der Ablage enthalten, denn es darf maximal ein Datensatz aus der Unterabfrage zurückkommen.