Zum Inhalt springen

Kann man ein Listenfeld mit Textfeld verknüpfen?


hty

Empfohlene Beiträge

Hallo,

Voraussetzungen: Access 2000 Datenbank auf Win ME

Das Problem:

Die Datenbank hatte früher eine Tabelle "Videos", unter anderem gab es da eine Spalte "Schauspieler". In dieser Spalte waren die Schauspielernamen als fliesender Text (getrennt durch Komma) aufgelistet.

Das habe ich nun geändert ;) Aufgesplittet! Jetzt gibt es eine seperate Tabelle "Schauspiler" und eine Tabelle "Zuweiser" (in der "Video-ID und Schauapieler-ID gespeichert werden).

So weit so gut :cool:

In meinen Formularen ist es zum Teil erforderlich folgende Anzeige darzustellen:

--------------------------------

Video-ID

Video-Titel

Schauspieler (alle in diesem Film/Video-ID mitwirkenden)

--------------------------------

Früher war das (in einem Textfeld angezeigt) kein Problem. Aber nun habe ich ja 1 bis X Schauspieler zu jedem Film. Schlau wie Fuchs :WD hab ich mir gedacht: Das geht wohl nur in einem Listenfeld.

Aber das bekomme ich nicht hin :confused:

Wie bringe ich das Listenfeld dazu das es mir "nur die Schauspieler anzeigt, die der Video-ID des auf dem Formular angezeigten Videos" entspricht?

Gibt es vielleicht eine Möglichkeit aus dem Textfeld (des Formulares) den Wert "Video-ID" herauszulesen und als Bedingung in die Abfrage des Listenfeldes einzubauen?

Wer kann mir da behilflich sein? Bin obendrein nicht so doll fit in Access (hab Wochen gebraucht bis ich den Sinn, das Prinzip, die Logik hinter der oben beschriebenen Aufsplittung erkannt habe).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von hty

Gibt es vielleicht eine Möglichkeit aus dem Textfeld (des Formulares) den Wert "Video-ID" herauszulesen und als Bedingung in die Abfrage des Listenfeldes einzubauen?

Du kannst dem Listenfeld die Abfrage zuweisen:

Listenfeld.Rowsource="Select Schauspieler from Tabelle where VideoID=" & Textfeld.Text

Je nachdem, wann das Aktualisiert werden soll, könntest du den Befehl z.B. im Ereignis "Nach Aktualisierung" des Textfeldes reinpacken. Die Abfrage oben liefert dir

Verschoben ins Datenbankforum

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich dreh noch durch :confused:

ich krieg es nicht hin... und hab keine Ahnung woran es scheitert.

Ist der oben gennante Lösungsvorschlag so gemeint?

Name-des-Listenfeld.Rowsource="Select Schauspieler from Tabelle where VideoID=" & Name-des-Textfeld.Text

(Das scheint mir nach meinem dürftigen Verständniss zu stimmen)

Nochmals als ergänzende Erklärung Es liegen drei Tabellen vor mit folgenden Spalten

tbl_Archiv_Schauspieler

--------------------------

SchauspielerID

Schauspielernamen

usw.

tbl_Zuweiser

----------------

SchauspielerID

VideoID

usw.

tbl_Archiv_Video

--------------------

VideoID

Titel

usw.

Ich möchte nun folgende Abfrage für ein Listenfeld (Liste18) erstellen:

Alle Schauspielernamen des Videos, dessen VideoID gerade im Textfeld "VideoNr" angezeigt wird.

Da ich in SQL eine Niete bin habe ich die Abfrage mit Access erstellt und den SQL dann heruskopiert und in den Lösungsvorschlag eingebaut und so sah das dann aus:

Liste18.RowSource = "SELECT tbl_Zuweiser.VideoID, tbl_Archiv_Schauspieler.SchauspielerID, tbl_Archiv_Schauspieler.Schauspielernamen " & _

"FROM tbl_Archiv_Schauspieler RIGHT JOIN tbl_Zuweiser ON tbl_Archiv_Schauspieler.SchauspielerID = tbl_Zuweiser.SchauspielerID WERE tbl_Zuweiser.VideoID = " & VideoNr.Text

...und ich weiss nicht wieviele Abwandlungsversuche davon... ich kann nicht mehr.

Wer kann mir sagen woran es scheitert?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von hty

Ist der oben gennante Lösungsvorschlag so gemeint?

Name-des-Listenfeld.Rowsource="Select Schauspieler from Tabelle where VideoID=" & Name-des-Textfeld.Text

(Das scheint mir nach meinem dürftigen Verständniss zu stimmen)

Ja, so war es gemeint.

Liste18.RowSource = "SELECT tbl_Archiv_Schauspieler.Schauspielernamen

FROM tbl_Archiv_Video INNER JOIN (tbl_Archiv_Schauspieler INNER JOIN tbl_Zuweiser ON tbl_Archiv_Schauspieler.SchauspielerID = tbl_Zuweiser.SchauspielerID) ON tbl_Archiv_Video.VideoID = tbl_Zuweiser.VideoID

WHERE tbl_Archiv_Video.VideoID=" & VideoNr.Text

Mit der Abfrage funktioniert es :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

*heul* ...eine weitere Nacht puzzel und basteln und probieren... ohne Erfolg :(

Es funktioniert nicht.

Ich habe mal den SQL herunterreduziert und habe versucht den ganzen Inhalt der Tabelle (ohne Abfrage) anzuzeigen... wieder nix :(

Woran kann das nur liegen?

Gibt es vielleicht einen komplet anderen Lösungsansatz?

Im alten Formular wurde angezeigt in Textfeldern:

VideoID

Titel

Schauspieler (als fliesender Text, Daten kamen alles aus "einer" Spalte)

....

Dieses Formular soll jetzt ein Listenfeld anstelle des Textfeldes "Schauspieler" erhalten. Dieses Feld soll dann natürlich nur die zu dem (aktuell auf dem Formular angezeigten Video) angezeigt werden.

Da Problem muss doch irgendwie zu lösen sein. Hab schon keine Haare mehr auf dem Kopf *gg*

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ooooh-jeh-ohje!

Ich hab den Fehler endlich gefunden. Für alle ähnlich Ungebildeten (wie meine Wenigkeit):

Wenn man eine Abfrage in von Access in der Entwurfsansicht oder mit dem Assistenten erstellt und anschliessend aus der SQL-Ansicht die SQL-Abfrage herauskopiert um sie in der Visualbasic-Ebene in den Code einzufügen, unbedingt darauf achten:

Das abschliesende ";" gehört da nicht rein

(das hat mich 2 Tage ausgebremst)

*lach*

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...