Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: gilles_de_rais am November 17, 2017, 11:48:31

Titel: Ein Formular samt Unterformular per Doppelklick auf Datensatz öffnen
Beitrag von: gilles_de_rais am November 17, 2017, 11:48:31
Hallo,
ich habe ein Listenfeld in einem Formular und möchte per Doppelklick den zugehörigen Datensatz in einem anderen Formular öffnen. An anderer Stelle habe ich dies bereits etabliert. Ich stolpere jetzt darüber, dass das zu öffnende Formular ein Unterformular enthält, das wiederum die ID enthält, auf die ich mich beziehen möchte.

DoCmd.OpenForm "frmBahnen", , , "bahn_ID = " & Me!bahn_ID, , acDialog

öffnet lediglich das übergeordnete Formular ohne dem angeklickten Datensatz Rechnung zu tragen.

DoCmd.OpenForm "Forms!frmBahnen!frmWartungen", , , "wart_ID = " & Me!wart_ID, , acDialog

funktioniert natürlich nicht. Öffne ich lediglich das Unterformular, so bekomme ich ebenso eine Fehlermeldung, weil sich dieses logischerweise auf das übergeordnete Formular bezieht.

Gibt es einen Weg mit DoCmd.Open die Formular-Hierarchie abzubilden oder muss ich völlig anders vorgehen?

Gruß,
Dennis
Titel: Re: Ein Formular samt Unterformular per Doppelklick auf Datensatz öffnen
Beitrag von: MzKlMu am November 17, 2017, 12:02:49
Hallo,
das Ufo sollte doch mit dem Hafo verknüpft sein, daher genügt es doch nur das entsprechende Hafo zu öffnen.
Titel: Re: Ein Formular samt Unterformular per Doppelklick auf Datensatz öffnen
Beitrag von: gilles_de_rais am November 17, 2017, 12:09:42
Hallo,
dachte ich mir eigentlich auch so. Aber leider wird nicht der zugehörige Eintrag geöffnet. Möglicherweise beziehe ich mich auf die falsche ID.
Titel: Re: Ein Formular samt Unterformular per Doppelklick auf Datensatz öffnen
Beitrag von: gilles_de_rais am November 17, 2017, 12:45:30
Hallo,
ich habe gerade ein Debug.Print auf Me!bahn_ID angewendet und bekomme, ganz gleich welchen Wert ich in der Liste anklicke, immer den Wert "1" zurück. Woran kann das liegen?

EDIT: Die Liste bezieht ihren Inhalt der Auswahl verschiedener Kombis. Kann es daher sein, dass ein Doppelklick daher immer den selben Wert zurückgibt?

Titel: Re: Ein Formular samt Unterformular per Doppelklick auf Datensatz öffnen
Beitrag von: gilles_de_rais am November 17, 2017, 13:04:10
Hallo,
meine Vermutung, dass es mit der Art wie der Inhalt des Listenfeldes bezogen wird, scheint falsch zu sein.

Testweise habe ich als Datensatzherkunft eine Tabelle angegeben und auch hier bekomme ich für die betreffende ID immer eine "1" zurück. Entsprechend natürlich auch kein zufriedenstellendes Ergebnis beim Aufrufen des Formulars.
Titel: Re: Ein Formular samt Unterformular per Doppelklick auf Datensatz öffnen
Beitrag von: MzKlMu am November 17, 2017, 13:25:55
Hallo,
zeige den verwendeten Code.

Ein Listenfeld gibt bei Klick den Wert der gebundenen Spalte zurück.
Daher erkläre die Einstellungen des Listenfeldes und zeige den SQL Text der Abfrage für das LF.
Titel: Re: Ein Formular samt Unterformular per Doppelklick auf Datensatz öffnen
Beitrag von: gilles_de_rais am November 17, 2017, 13:43:05
Hallo,

SQL Listenfeld:
SELECT DISTINCT tblBahnen.bahn_ID, tblWartungen.wart_id, tblBahnen.bahn_name, tblWartungAuswahl.aus_wahl_ID, tblWartungAuswahl.aus_art, tblWartungen.wart_datum, Year([wart_datum])
AS wart_jahr, DatePart("ww",[wart_datum],2,2)
AS wart_kw, Month([wart_datum]) AS wart_monat, Format(DateSerial(1,CInt([wart_monat]),1),"mmmm")
AS wart_monnam, Format([wart_datum],"ww",2,2)
AS wart_kawe
FROM ((tblWartungAuswahl INNER JOIN (tblBahnen INNER JOIN tblWartungen ON tblBahnen.bahn_ID = tblWartungen.bahn_id_f) ON tblWartungAuswahl.aus_wahl_ID = tblWartungen.aus_wahl_id_f)
INNER JOIN tblWochenwartung ON tblWartungAuswahl.aus_wahl_ID = tblWochenwartung.aus_art) INNER JOIN tblWoch_Wart ON (tblWochenwartung.woch_ID = tblWoch_Wart.woch_id_f)
AND (tblWartungen.wart_id = tblWoch_Wart.wart_id_f)
ORDER BY tblBahnen.bahn_ID, tblWartungAuswahl.aus_wahl_ID, tblWartungen.wart_datum, DatePart("ww",[wart_datum],2,2);


Und Code für Doppelklick:
DoCmd.OpenForm "frmBahnen", , , "bahn_id = " & Str(lstWartungen), , acDialog

Ich habe mittlerweile zumindest einen Fehler abstellen können. Str(lstWartungen) hat den Unterschied gemacht. Trotzdem habe ich keinen Zugriff auf die Daten des Unterformulars.

Das HaFo bezieht sich auf die bahn_ID und zeigt das jeweils ausgewählte Fahrzeug. Funktioniert mit dem oben genannten Code auch wunderbar.

wart_id im Unterformular (frmWartungen) im selben Code eingesetzt funktioniert leider nicht und führt nur dazu, dass ich die wart_id manuell eingeben muss.
Titel: Re: Ein Formular samt Unterformular per Doppelklick auf Datensatz öffnen
Beitrag von: gilles_de_rais am November 17, 2017, 14:25:56
Hallo,
ich habe jetzt einfach das Unterformular kopiert und etwas angepasst. So geht es wunderbar! Ich denke, mit der Lösung kann ich leben!