Autor Beitrag
valherf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Di 08.02.11 12:21 
Hallo Freunde der Delphiprogrammierung...
Kurz mein Problem...

Ich habe in Acess zwei verschiedene Tabellen miteinander verknüpft.
Und zwar Stehen in der einen die Namen der Schauspieler, in der anderen die Rollen, die sie spielen.
Jetzt möchte ich, dass man in einer DBLookupComboBox einen Schauspieler auswählen kann, und Delphi dann ALLE Rollen ausgibt, die er aktuell spielt.
Wie geht das?

Gruß
Val
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Sa 12.02.11 12:53 
Nennen wir die eine Tabelle tSchauspieler und die andere Tabelle qRollen

tSchauspieler definiert als TTables mit Tataset dsSchauspieler, welches auf tSchauspieler verweist und qRollen als TQuery mit dsRollen als TDataset, welches auf qRollen verweist. Soweit fertig. Nun musst Du nur noch in tSchauspieler ein Feld haben, nennen wir es "Nr", als Ganzzahl. Dann benötigst Du in tQuery ebenfalöls ein Feld, nennen wir es ebenfalls "Nr" und ebenfalls als Ganzzahl. Dann hast Du folgende Strukturen:

tSchauspieler:

Felder
Nr Zahl
Vorname Zeichenkette
Nachname Zeichenkette
:


qRollen
Nr Zahl
Rolle Zeichenkette
Start TDateTime
Ende TDateTime
Regisseur Zeichenkette
inFilm boolean
Film Zeichenkette
:


(nur als Beispiel)

Dann schreibst Du in die Eigenschaften von tSchauspieler
Tablename: Schauspieler (Name der Schauspielertabelle)

und in qRollen:
Datasource: dsSchauspieler
SQL:
Select * from
Rollen
Where Nr =:Nr !! hier kein Leerzeichen vor dem zweiten "Nr"

Die Dataset-Verknüpfung wird bei dsSchauspieler über die Eigenschaft Dataset realisiert:
Dataset: tSchauspieler
und bei dsRollen:
Dataset: qRollen

Nun benötigst Du zwei TDBGrid.

Eines, in der die Schauspieler aufgelistet werden und eines, in der die Rollen aufgelistet werden. Wenn Du dann in der Schauspieler-DBGrid dann von Datensatz zu Datensatz springst, kannst Du in der Rollen-DBGrid sehen, welche Rollen er/sie spielt.


Alternativ kannst Du auch ein TDBEdit-Feld mit dem Namen des Schauspielers und ein TDBNavigator nehmen, dessen Datasource dann auf tSchauspieler gesetzt wird. Und dann navigierst Du mit den Navigatortasten. Sinnigerweise, falls Du keine Schauspieler hinzufügen oder löschen willst, setzt Du die Eigenschaft Readonly von tSchauspieler auf TRUE!
TNavigator kannst Du auch nehmen, wenn Du das TDBGrid für die Schauspieler benutzst.

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.

Für diesen Beitrag haben gedankt: valherf