Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Listenfeld im Oberformular als Grundlage für Listenfeld im Unterformular

Begonnen von sistancy, August 15, 2022, 20:27:35

⏪ vorheriges - nächstes ⏩

sistancy

Hallo zusammen,

ich bin ziemlich neu bei Access und habe da mal eine Frage:

Ich arbeite momentan an einem Formular, in dem ich Aufgaben im Oberformular erstellen/lesen/berarbeiten möchte und dabei in einem Unterformular die zugehörige Musterlösung(en), zu den Aufgaben anzeigen möchte. Das Aufgaben erstellen/lesen/bearbeiten funktioniert schon, nur die Anzeige der Musterlösung nicht.
Es soll so funktionieren, dass ich im OF eine Aufgabe in einem Listenfeld anklicke und sich dann das Listenfeld zu den Musterlösungen im UF daraufhin aktualisiert und die zugehörigen Lösungen anzeigt.

Beziehung zwischen tblAufgabe und tblMuLoe ist 1:n

Hat da eventuell jemand eine Idee?
Vielen Dank schonmal für eure Antworten

Viele Grüße

DF6GL

Hallo,

das mit dem Listenfeld(ern?) ist mir nicht klar...

Klassisch löst man eine 1:n-Beziehung so auf, als dass im HFO (zeigt die Daten aus "tblAufgabe" an) ein UFO-(Steuerelement) platziert wird, das die zugehörenden Daten der n-Tabelle ("tblMuLoe") anzeigt. Dabei sind die UFO-Steuerelement-Eigenschaften "Verknüpfen von/nach" auf die Schlüsselfelder einzustellen.

Dafür werden keine Listenfelder benötigt.  Wenn es sich beim HFO um ein Endlos-Form handelt, so kann auch hier im Formular-Fuß das UFO-St.El. platziert werden. Den Einwand von Access kann man getrost ignorieren, lediglich das HFO muss anschließend wieder auf "Enlosformular" umgestellt werden.

sistancy

Guten Tag,

danke für deine Antwort!

Ist der Aufbau meines Formulars für meinen Zweck nicht richtig gewählt?
Ich habe den Aufbau meines jetzigen Formulars mal angehangen.
Ich kriege einfach nicht die Kommunikation zwischen Listenfeld1 (lstAufgaben) im HF und dem Listenfeld2 (leere Feld bei Musterlösungen) im UF hin. Obwohl das doch eigentlich funktionieren müsste, oder nicht?

Entschuldige meine späte Antwort.

Viele Grüße
Marius

DF6GL

Hallo,

ich versteh trotzdem die Situation mit dem "Listenfeld" im Ufo nicht....

Im Ufo ist kein Listenfeld.

Vermutlich meinst Du aber, das UFO mit einem der Listenfelder im HFO zu koppeln (zu verknüpfen), so dass das UFO die Datensätze anzeigt, die der Auswahl im HFO-Listenfeld entsprechen.


Schreibe dazu in die Eigenschaften "Verknüpfen von" und "Verknüpfen nach" des UFO-Steuerelementes den Namen des HFO_Listenfeldes ("Verknüpfen nach")  und  den Tabellenfeldnamen aus der Abfrage/Tabelle des UFOs ("Verknüpfen von").



Solche Konstruktionen sind eher nicht für solide Formular-Bedienung geeignet.  Setze eher meinen Vorschlag aus dem letzten Post um. Dann geschieht die Verknüpfen sogar automatisch, sofern die Beziehungen korrekt eingerichtet und die Tabellen nach den Beziehungsregeln aufgebaut wurden.






sistancy

Guten Abend,

ich habe deine Methode ausprobiert, allerdings kam ich damit nicht auf das Gewollte.

Ich habe es jetzt tatsächlich ohne große Verknüpfung hinbekommen, so wie ich es haben wollte.
Ich habe bei der Datensatzherkunft für das Listenfeld im UF noch den Fremdschlüssel von der Aufgabe hinzugenommen und als Kriterium über den "Generator" (oben in der Registrierkarte im Abfragefenster) angegeben, dass dieser nur die Musterlösungen anzeigen soll, die passend zur Aufgabe sind, die ich im OF gewählt habe.

In  dem Fall also:
Feld: [Fremdschlüssel]
Tabelle: tbl_des_fremdschlüssels
Kriterien: [Formulare]![HF_name]![Textfeld_Primärschlüssel_name]

(Bei mir ist der Primärschlüssel [auf_id] und der Fremdschlüssel [auf_id_f])

Dann hab ich noch dafür gesorgt, dass sich das Listenfeld im UF aktualisiert nachdem ich etwas im Listenfeld des OF ausgewählt habe.

Private Sub ListenfeldOF_AfterUpdate()
...
Forms!Name_OF!Name_UF.Form!ListenfeldUF.Requery
End Sub

Bestimmt geht es auch einfacher, aber so hat es geklappt! ;)

Ich danke dir für deine Hilfe und hoffe das meine Lösung für Zukünftige, die evtl. auch auf dieses Problem stoßen, hilfreich ist.^^

LG
Marius