WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 31.05.2004, 14:35   #1
mr_sax
Jr. Member
 
Registriert seit: 27.04.2002
Alter: 57
Beiträge: 43


Standard MS Access Abfrage

Hallo!

Habe folgendes Problem:

Ich möchte in einer Videofilm - Datenbank eine Abfrage nach Schauspielern erstellen (nach Titel, Regisseur, etc. klappt es bereits)!
Das Problem: ich habe bis zu 15 Spalten mit Schauspielern - möchte aber nur einmal den Schauspielernamen eingeben und dann in allen Spalten suchen lassen!

Ich verwende bei der Entwrufsansicht des Abfrageassistenten immer folgenden Eintrag in der Kriterienzeile:

[Filme]![Schauspieler:]

Die Datenbank heißt Filme, die Spalten heißen Schauspieler1, Schauspieler2, usw.

Leider bekomme ich bei dieser Art der Abfrage immer nur die Schauspieler, welche auch in der ersten Spalte sind - von der 2., 3. od. einer weiteren Spalte bekomme ich kein Ergebniss zurück!

Kann mir da jemand von euch weiterhelfen? Ich bin mir sicher, dass das funktionieren muss, aber wie??

Vielen Dank!

mr_sax
mr_sax ist offline   Mit Zitat antworten
Alt 31.05.2004, 14:54   #2
Nightman
Inventar
 
Registriert seit: 04.09.2001
Alter: 42
Beiträge: 1.959

Mein Computer

Standard

wieso machst ned eine einzige spalte mit schauspieler und suchst dann mit LIKE?
____________________________________
MfG Nightman
Nightman ist offline   Mit Zitat antworten
Alt 31.05.2004, 15:25   #3
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

Hi!

Die Konstruktion der DB solltest du vielleich überdenken.

Im aktuellen Fall versuch folgendes.

Öffne die Abfrage in der SQL-Ansicht. Da sollte etwas in der Art stehen WHERE Schauspieler1 = Schauspieler

Erweitere den Abschnitt mit OR Schauspieler2 = Schauspieler OR ...


Falls es nicht funktioniert, poste das SQL-Statement.

mfg

WB
wbendl ist offline   Mit Zitat antworten
Alt 31.05.2004, 15:31   #4
Nightman
Inventar
 
Registriert seit: 04.09.2001
Alter: 42
Beiträge: 1.959

Mein Computer

Standard

wbendl

sei mir bitte ned böse aber des ja ja keine abfrage mehr des is ein zustand

wenn er alle schauspieler in ein feld reinschreibt und dann mit like abfragt is er sicher besser dran oder?

PS: kann jetzt auch sein das ich mich irgentwo irre da ich ja noch rest alk in mir hab lol
____________________________________
MfG Nightman
Nightman ist offline   Mit Zitat antworten
Alt 31.05.2004, 16:02   #5
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

@ Nightman

Achte auf die 1. Zeile:
Die Konstruktion der DB solltest du vielleich überdenken.

Der Rest zählt nur, wenn das nicht zu ändern ist.

Die Verwendung des Assistenen läßt mich auf einen Einsteiger schließen.
Da kann man kein optimales DB-Design erwarten.

mfg

WB
wbendl ist offline   Mit Zitat antworten
Alt 31.05.2004, 16:04   #6
Nightman
Inventar
 
Registriert seit: 04.09.2001
Alter: 42
Beiträge: 1.959

Mein Computer

Standard

ok erlaubnis erteilt
____________________________________
MfG Nightman
Nightman ist offline   Mit Zitat antworten
Alt 31.05.2004, 18:05   #7
mr_sax
Jr. Member
 
Registriert seit: 27.04.2002
Alter: 57
Beiträge: 43


Standard

OK - vielen Dank für die vielen Antworten!

Ich werde gleich einmal die Sache mit der LIKE Funktion probieren! (d.h. alle Schauspieler in eine Zelle schreiben)

Melde mich dann wieder mit dem Ergebnis!

mr_sax
mr_sax ist offline   Mit Zitat antworten
Alt 31.05.2004, 18:14   #8
mr_sax
Jr. Member
 
Registriert seit: 27.04.2002
Alter: 57
Beiträge: 43


Standard

Sorry, aber es ist meine "erste Datenbank" und irgendwie krieg ich das nicht hin!

1. Frage: wie sollen die Schauspieler in der jeweiligen Zelle von einander getrennt sein, z.B. mit ","?
2. Frage: hier ist die SQL Zeile:

SELECT Filme.[Deutscher Titel], Filme.[Original Titel], Filme.Regie, Filme.Format, Filme.Sprache, Filme.Schauspieler1, Filme.Schauspieler2, Filme.Schauspieler3, Filme.Schauspieler4, Filme.Schauspieler5, Filme.Schauspieler6, Filme.Schauspieler7, Filme.Schauspieler8, Filme.Schauspieler9, Filme.Schauspieler10, Filme.Schauspieler11, Filme.Schauspieler12, Filme.Schauspieler13, Filme.Schauspieler14, Filme.Schauspieler15
FROM Filme
WHERE (((Filme.Schauspieler1)=[Filme]![Schauspieler1]![Schauspieler:]));

Könnt ihr damit etwas anfangen, bzw. mir einen Tipp geben, was mir "zu meinem Glück" fehlt?

Vielen Dank!

mr_sax
mr_sax ist offline   Mit Zitat antworten
Alt 31.05.2004, 19:46   #9
wbendl
Master
 
Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550


Standard

Hi!

Ich weiß zwar nicht, wie der Suchbegriff in die Abfrage kommt.

Ich nehme an, daß [Filme]![Schauspieler1]![Schauspieler:] aus einem Formular, oder aus einer Parameterabfrage stammt.

Wenn das SQL-Statement so funktioniert, sollte die Erweiterung so aussehen:

WHERE (((Filme.Schauspieler1)=[Filme]![Schauspieler1]![Schauspieler:])OR ((Filme.Schauspieler2)=[Filme]![Schauspieler1]![Schauspieler:]))

Einfacher zu Handhaben ist die Lösung mit allen Schauspielern in einem Feld.

Die "professionelle" Lösung würde ungefähr so aussehen:

Tabelle Filme
ID
Titel
OriginalTitel
.......

Tabelle Schauspieler
ID
Name
........

Tabelle FilmDetails
ID
FilmeID
SchauspielerID

Die Tabelle FilmDetails enthält eine Zeile für jeden Schauspieler pro Film.

Das ist zwar am Anfang mehr Arbeit, lohnt sich aber später.
Die Pflege und Auswertung der Daten wird erleichtert.
Redundante Einträge werden vermieden.
Außerdem läßt sich die DB leichter erweitern (z. B. zusätzliche Daten zu den Schauspielern).

Wenn man diese "Normalisierung" weiter betreibt, könnte man auch Regie und Formate in eigenen Tabellen auslagern.
Das rentiert sich ab eine gewissen Größe der DB.

mfg

WB
wbendl ist offline   Mit Zitat antworten
Alt 31.05.2004, 22:19   #10
mr_sax
Jr. Member
 
Registriert seit: 27.04.2002
Alter: 57
Beiträge: 43


Standard

Vielen Dank für diese detailierte Antwort!

Ich werde das morgen ausprobieren und hoffe, dass ich das auch so hinkriege!

mr_sax
mr_sax ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:33 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag