![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Jr. Member
![]() Registriert seit: 27.04.2002
Alter: 57
Beiträge: 43
|
![]() 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 |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() |
![]() wieso machst ned eine einzige spalte mit schauspieler und suchst dann mit LIKE?
____________________________________
MfG Nightman |
![]() |
![]() |
![]() |
#3 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() 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 |
![]() |
![]() |
![]() |
#4 |
Inventar
![]() |
![]() 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 |
![]() |
![]() |
![]() |
#5 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() @ 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 |
![]() |
![]() |
![]() |
#6 |
Inventar
![]() |
![]() ok erlaubnis erteilt
![]()
____________________________________
MfG Nightman |
![]() |
![]() |
![]() |
#7 |
Jr. Member
![]() Registriert seit: 27.04.2002
Alter: 57
Beiträge: 43
|
![]() 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 |
![]() |
![]() |
![]() |
#8 |
Jr. Member
![]() Registriert seit: 27.04.2002
Alter: 57
Beiträge: 43
|
![]() 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 |
![]() |
![]() |
![]() |
#9 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() 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 |
![]() |
![]() |
![]() |
#10 |
Jr. Member
![]() Registriert seit: 27.04.2002
Alter: 57
Beiträge: 43
|
![]() Vielen Dank für diese detailierte Antwort!
Ich werde das morgen ausprobieren und hoffe, dass ich das auch so hinkriege! mr_sax |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|