astronomy
Goto Top

Eine Abfrage für 2 Tabellen

Hallo Leutz,

Also, ich habe folgende Aufgabe erhalten:
Es gibt bei uns im Betrieb 2 Access-Dateien. Diese beinhalten Tabellen *klarface-wink*
Der Inhalt beider Tabellen sind Namen und weitere Infos. In Beiden Tabellen stehen unterschiedliche Namen und weitere Infos.
Die Aufgabe ist nun, eine Suche zu erstellen, die in beiden Tabellen nach dem eingegebenen Namen sucht und die Ergebnisse ausgibt.

Nun, stand der Dinge:

- Ich habe in einer der beiden Dateien einen Datei-Import gemacht und ALLES aud der 2 Datei importiert.
- habe mir eine neue Abfrage gefriemelt
- habe mir ein Suchen-Formular gebastelt
- habe die zu beiden Tabellen eine Beziehung gemacht von NAME zu NAME und von VORNAME zu VORNAME
- habe dann die Suche gestartet und siehe da....er findet die Einträge mit dem gesuchten Namen

PROBLEM: Wenn in Tabelle 1 eine Person "Test tester1" heißt und in Tabelle 2 heißen die Einträge"Test tester 1 - tester 10" bekomme ich dieses Ergebnis:

Tabelle 1 Tabelle 2
test tester 1 test tester 1
test tester 1 test tester 2
test tester 1 test tester 3
test tester 1 test tester 4
test tester 1 test tester 5
test tester 1 test tester 6
test tester 1 test tester 7
test tester 1 test tester 8
test tester 1 test tester 9
test tester 1 test tester 10

Also, nicht Sinn der Sache...weil man bedenke wie es dann aussieht wenn in Tabelle 1 auch "Test Teste1-10" gibt.

Hat da jemand ne gute Idee.....oder weiß einfach wie es richtig geht^^

Wäre sehr dankbar!!

Many greetings Astronomy

Content-ID: 53509

Url: https://administrator.de/contentid/53509

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

Biber
Biber 08.03.2007 um 08:53:55 Uhr
Goto Top
Moin astronomy,

Du erwähntest doch beiläufig eine Abfrage....

Diese lässt sich bestimmt als SQL-Query anzeigen, hier posten und sollte außerdem in der WHERE-Klausel irgendetwas enthalten, dass sinngemäß "...where Tabelle1.Name=Tabelle2.Name" heißt.

Kannst Du das mal posten bitte.

Gruss
Biber
astronomy
astronomy 08.03.2007 um 09:01:07 Uhr
Goto Top
SELECT Kontroll.NAME, Kontroll.VORNAME, Verwahru.NAME, Verwahru.VORNAME
FROM Verwahru, Kontroll
GROUP BY Kontroll.NAME, Kontroll.VORNAME, Verwahru.NAME, Verwahru.VORNAME
HAVING (((Kontroll.NAME) Like ([Formulare]![SucheNEU]![Name2] & "*")) AND ((Verwahru.NAME) Like ([Formulare]![SucheNEU]![Name2] & "*")))
ORDER BY Kontroll.NAME;

Sorry, da ich im Bereich Access ein DAU bin kann ich dir das mit dem WHERE net geben....außer du bist so lieb und erklärst es mir!!
*Lieb guck*

face-wink

Liebe Grüße Astronomy
Biber
Biber 08.03.2007 um 10:02:40 Uhr
Goto Top
Moin astronomy,

die Beziehung, die Abhängigkeit zwischen den beiden Tabellen ist doch, dass die Inhalte der beiden Feldinhalte von NAME identisch sein müssen.

Genau diese Bedingung fehlt aber in dem SQL-Statement.
Wenn Du das Statement so umbaust, dass EINE der beiden Tabellen gegen das Formular-Suchfeld geprüft wird und nur alle Satz-Kombinationen angezeigt werden, in denen die Felde NAME gleich sind, dann hast Du Dein Wunsch-Ergebnis.

SELECT K.NAME, K.VORNAME, V.NAME, V.VORNAME
FROM Verwahru V, Kontroll K
Where K.Name = V.Name
And  K.VorName = V.VorName
And K.NAME Like ([Formulare]![SucheNEU]![Name2] & "*"  
ORDER BY K.NAME;

[Wobei so nix dolles zu sehen sein wird - eben nur jeweils die Felder Name/Vorname aus beiden tabellen, WENN sie auch in beiden Tabellen in gleicher Schreibweise und Feldlänge vorliegen. Sinnvoller zu Prüfung der Richtigkeit wäre eine Query:

SELECT K.NAME, K.VORNAME, K.EinFeldAusK, V.EinAnderesAusV
FROM Verwahru V, Kontroll K
Where K.Name = V.Name
And  K.VorName = V.VorName
And K.NAME Like ([Formulare]![SucheNEU]![Name2] & "*"  
ORDER BY K.NAME;

]

HTH Biber
ratzla
ratzla 08.03.2007 um 10:06:27 Uhr
Goto Top
Nach FROM ... fehlt die von Biber beschriebene WHERE klausel.

WHERE (Kontroll.NAME = Verwahru.NAME) and (Kontroll.VORNAME = Verwahru.VORNAME)

müsste da stehen.
Das ganze geht auch in Access mit Bunti Klicki aber da kann ichs dir nicht sauber beschreiben.
(Einfach in der SQL Ansicht vor die GROUP Zeile einfügen und wieder in die Normale ansicht gehen)

Ich unterstell dass es nur Datensätze von interesse sind die in beiden Tabellen drin sind.
Evtl musst du noch direkt nach dem Select einen DISTINCT (oder wars DISTIONCTROW bei Access) eintragen
astronomy
astronomy 08.03.2007 um 10:08:47 Uhr
Goto Top
Vielen Dank Biber,

Es ist aber gerade Sinn und Zweck das nur die Namen angezeigt werden sollen.
Frag mich nicht warum....das war ne Entscheidung aus den Marktbereichen.
Das soll jetzt angeblich 2 Minuten einsparen.

Was ich noch erwähnen sollte, die Ausgabe erfolgt in einem Formular, und dort ist hinter jeder Zeile ein Button der zum Datensatz führt.
Das war die einzige Anforderung.

Mal noch etwas....unter Umständen kommt da noch ne 3. Tabelle rein. Kann ich die dann ohne Probs da einfach reinbasteln???

Vielen Dank für deine Hilfe..


Grüße Astronomy
astronomy
astronomy 08.03.2007 um 10:12:06 Uhr
Goto Top
mit SQL find ich es besser, danke^^
Steh net so auf Access mit, wie sagt ihr immer so schön:" Bunti Klicki" face-wink

Danke für eure Hilfe!!!

Astronomy
astronomy
astronomy 08.03.2007 um 10:19:54 Uhr
Goto Top
Und weiter gehts face-wink

*sorry*

Bekomme Syntaxfehler:
SELECT Kontroll.NAME, Kontroll.VORNAME, Verwahru.NAME, Verwahru.VORNAME
FROM Verwahru, Kontroll
WHERE (Kontroll.NAME = Verwahru.NAME) and (Kontroll.VORNAME = Verwahru.VORNAME)
GROUP BY Kontroll.NAME, Kontroll.VORNAME, Verwahru.NAME, Verwahru.VORNAME
And Kontroll.NAME Like ([Formulare]![SucheNEU]![Name2] & "*"
ORDER BY Kontroll.NAME;


Es ist nicht schön ein Dau zu sein face-sad
Biber
Biber 08.03.2007 um 10:43:22 Uhr
Goto Top
Hier sind die runden Klammern nicht paarig:

And Kontroll.NAME Like ([Formulare]![SucheNEU]![Name2] & "*"

Die linke weglassen (oder, a la M$) links noch 2 mehr einfügen und rechts insgesamt 3 Klammern schreiben.

Gruss
Biber
astronomy
astronomy 08.03.2007 um 11:19:02 Uhr
Goto Top
JUHU!!!!
Biber....vielen, vielen Dank!!
So soll es sein....
Die Klammer hätt ich in 1 Woche net gefunden face-wink

Ratzla, dir auch vielen Dank...

Viele Grüße
Astronomy