Haupt- und Unterformular anhand Listenfeld verknüpfen

Moderator: ModerationP

Haupt- und Unterformular anhand Listenfeld verknüpfen

Beitragvon miagianna » 07. Dez 2017, 19:54

Hallo zusammen

Einmal mehr hoffe ich auf Eure Hilfe, weil alles Googeln mich nicht weiterbringt. Dabei stehe ich wohl einfach auf dem Schlauch, denn das Problem kann doch nicht so schwierig sein.

Ich habe zwei Tabellen: tblHund und tblHalter
Ein Halter kann mehrere Hunde haben: Beziehung 1:n / Felder hal_id zu hal_id_f

Ich habe ein Hauptformular frmHalterstammblatt mit einem Unterformular ufrmHundestammblatt angelegt - diese zeigen die jeweiligen Stammdaten von Halter und Hund.

Nun möchte ich ein Listenfeld anlegen, in welchem nur die Hunde des aktuellen Halter-Datensatzes angezeigt werden. Mit einem Klick auf einen bestimmten Hund sollte dann das Unterformular dessen Stammdaten anzeigen.

Mit VBA komme ich mittlerweile ziemlich gut zurecht, doch leider mit SQL überhaupt nicht.

Kann mir jemand weiterhelfen? Ich scheitere schon bei der Frage, ob das Listenfeld besser im Haupt- oder Unterformular stehen muss. Dabei habe ich schon einiges ausprobiert - mit und ohne Abfrage - doch entweder werden im Listenfeld die Hunde nicht selektiert, bei der Auswahl im Ufo nicht auf den richtigen Datensatz gesprungen oder plötzlich gar keine Datensätze mehr im Listenfeld angezeigt.

Vielen Dank im Voraus für jegliche Hilfe!
miagianna
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 22
Registriert: 26. Nov 2016, 18:02

Re: Haupt- und Unterformular anhand Listenfeld verknüpfen

Beitragvon Bitsqueezer » 08. Dez 2017, 11:07

Hallo,

das kannst Du doch einfach über zwei Unterformulare lösen, bei denen das zweite im ersten liegt. Verbunden über die IDs, brauchst Du keinerlei Programmierung und schon gar kein umständliches Listenfeld.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6168
Registriert: 21. Jun 2007, 12:17

Re: Haupt- und Unterformular anhand Listenfeld verknüpfen

Beitragvon miagianna » 08. Dez 2017, 17:47

Hallo Christian

Vielen Dank für deinen Vorschlag! Ich hab mir schon gedacht, dass ich viel zu kompliziert an die Sache rangegangen bin :?

Liebe Grüsse Maria
miagianna
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 22
Registriert: 26. Nov 2016, 18:02

Re: Haupt- und Unterformular anhand Listenfeld verknüpfen

Beitragvon miagianna » 09. Dez 2017, 16:02

Hallo zusammen

Ich habe nun eine Version getestet, bei der ich zwei Unterformulare im gleichen Hauptformular hatte: Eine (Formular-)Tabelle und ein Datenblattformular. Beim Klick auf einen Datensatz in der Tabelle hat sich das zweite Unterformular mit dem Datenblatt aktualisiert. Funktioniert soweit einwandfrei, nur bin ich mit der Darstellung nicht so ganz zufrieden. Ich möchte daher noch einmal auf das Listenfeld zurückkommen.

Ich habe es soweit geschafft, im Unterformular (ufrmHundestammblatt) ein Listenfeld zu erstellen, welches nur die Hund des einen Halters im Hauptformular anzeigt:
Code: Alles auswählen
SELECT qryHundestammblatt.hun_id, qryHundestammblatt.hal_id_f, qryHundestammblatt.hun_name, qryHundestammblatt.hun_gebdat
FROM qryHundestammblatt
WHERE (((qryHundestammblatt.hal_id_f)=[Formulare]![frmHalterstammblatt]![hal_id]))
ORDER BY qryHundestammblatt.hun_gebdat DESC;


Jetzt stellt sich aber das Problem der Aktualisierung des Listenfelds, wenn ich den Halter im Haptformular ändere.

Folgenden Code habe ich bei diversen Ereignissen im Hauptformular eingefügt, ohne Erfolg:
Code: Alles auswählen
Private Sub hal_id_AfterUpdate()
    Forms.frmHalterstammblatt!ufrmHundestammblatt!lst_hundeprohalter.Requery
End Sub


Auch der Code im Unterformular (nach Aktualisierung, bei Änderung, bei Geändert usw.) bringt nichts:
Code: Alles auswählen
Private Sub hal_id_AfterUpdate()
    Me.lst_hundeprohalter.Requery
End Sub


Hat jemand eine Idee, wie ich das Listenfeld nach einem Datensatzwechsel im Hauptformular aktualisieren kann?

Vielen Dank im Voraus!
miagianna
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 22
Registriert: 26. Nov 2016, 18:02

Re: Haupt- und Unterformular anhand Listenfeld verknüpfen

Beitragvon Bitsqueezer » 10. Dez 2017, 01:23

Hallo,

"AfterUpdate" wird nur nach einer Eingabe durch den Benutzer gefeuert. Also entweder auf Formularebene, dann wurde ein Datensatz gespeichert, oder auf Feldebene, dann wurde eine Eingabe in einem Feld gemacht.

Versuch's mal mit "Form_Current", der wird ausgelöst, wenn ein Datensatz gewechselt wurde. Das ist der erste in der Eventliste des Formulars.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6168
Registriert: 21. Jun 2007, 12:17

Re: Haupt- und Unterformular anhand Listenfeld verknüpfen

Beitragvon miagianna » 11. Dez 2017, 18:23

Hallo Christian

Deine Lösung funktioniert, vielen Dank!

Liebe Grüsse
miagianna
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 22
Registriert: 26. Nov 2016, 18:02


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste