Neuigkeiten:

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

Mobiles Hauptmenü

Unterformular mit Hauptformular synchronisieren

Begonnen von intergalactic, November 19, 2015, 14:57:50

⏪ vorheriges - nächstes ⏩

intergalactic

Hallo,
Habe ein Formular mit einem Registersteuerelement. Auf einer Registerkarte befindet sich ein Hauptformular mit dazugehörigem Unterformular. Das Hauptformular im Register ist in der Ansicht "Einzelnes Formular", das Unterformular ist in der Datenblattansicht. Wie mache ich es, dass wenn man auf ein Feld im Ufo klickt, die Daten oben im HF erscheinen?

Folgenden Code habe ich als Klick Ereignis schon in vielen Varianten probiert, aber es tut sich nichts.

    Forms!HF.Recordset.FindFirst "[ID] = '" & Me.ID & "'"

Vielen Dank schon mal. lg

MzKlMu

Hallo,
stammen die Daten für Hafo und Ufo aus einer Tabelle ?
Wenn nein, beschreibe die Zusammenhänge der Tabellen.
Wenn ja, warum verwendest Du da Hafo und Ufo ?
Gruß Klaus

intergalactic

Hallo Klaus,

die Daten aus dem HFo stammen direkt aus zwei verknüpften Tabellen und die im Ufo aus einer Abfrage der einen Tabelle. Im Grunde will ich die Ansicht des Geteilten Formulars erreichen, das man ja leider nicht ins Registersteuerelement einfügen kann.

Im obersten HF suche ich einen Datensatz, der soll dann ins HF im Register Übertragen werden. Im Unterformular sollen alle (Detail)Eintragungen zum Datensatz angezeigt werden und bei Klick auf ID wieder zur Bearbeitung ins HF übernommen werden.

el_gomero

Moin,

also bei richtigem Datenmodell enthält das HF den 1 Teil einer 1:n Beziehung. Im Ufo wird der n-Teil abgebildet. Die Verknüpfung HF-UF erfolgt über die ID des 1-Teils, die ist also im UF bekannt.

Aus deinen Ausführungen kann ich nicht wirklich nachvollziehen, ob das so umgesetzt wurde und warum Daten in ein anderes? Form übernommen werden sollen. Am besten du erläuterst mal den gewünschten Ablauf/Zweck.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

intergalactic

Der 1-Teil der Beziehung ist das Hauptformular in dem alle Register liegen. Die n-Teile sollen dann in den jeweiligen Registern in Einzel Formular und Datenblattansicht angezeigt werden (also HF und UFO, da geteiltes Formular ja nicht unterstützt wird im Register), da es ja zu einem Datensatz mehrere Einträge geben kann. Klickt man also auf ein Feld in der Datenblattansicht soll genau der Datensatz in die Einzel Formular Ansicht z.B. für Änderungen übernommen werden. Das wäre der Wunschablauf.

el_gomero

naja, den gewünschten Zweck hast du nicht beschrieben ... der hätte zB so lauten können: Im HF wähle ich einen Kunden im Register sollen dann im Ufo seine Aufträge angezeigt werden. 

Aber egal - ich arbeite nicht mit Registern, ist mir auf die Dauer zu komplex - ich mag einfache Abläufe. Aber sicher kann dir jemand anderes hier weiterhelfen.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

MzKlMu

Hallo,
Dein Wunschablauf ist unlogisch für Hafo und Ufo.
Da das Ufo die n-Seite zeigt, werden ja nur die Datensätze angezeigt die zu den Daten der 1-Seite (Hafo) passen, das heißt, egal welchen Datensatz Du im Ufo anklickst, es ist immer der gleiche Datensatz im Hafo. Die Register spielen dabei keine Rolle.

Vorausgesetzt, Hafo und Ufo sind über die Schlüsselfelder verknüpft, wie es sein sollte. Sonst macht ja ein Hafo-Ufo Aufbau keinen Sinn.
Gruß Klaus

DF6GL

Hallo,  wenn ein geteiltes Formular mit Hilfe eines herkömmlichen UFO's simuliert werden soll, so funktioniert das in etwa so:

Haupt-Form als Einzel-Formular erstellen.
(Unter-) Form als Endlosform erstellen und im HFO mit Hilfe des UFO-Steuerelementes ("UFO1") im Detailbereich anzeigen.

Beide Formulare erhalten die Selbe Abfrage, bzw. Tabelle, in deren Eigenschaft "Datenherkunft"

"Verknüpfen von/nach" im UFO-Steuerelement leer lassen, bzw. leeren.

Die Synchronisation erfolgt über die ID-Felder in den  Ereignisprozeduren "Beim Anzeigen" der beiden Forms.

Im HFO (setzt den Datensatzzeiger auf den korrespondierenden DS im UFO):

Sub Form_Current()
Me!UFO1.Form.Recordset.Findfirst "ID=" & Me!ID
End Sub


IM UFO (setzt den Datensatzzeiger auf den korrespondierenden DS im HFO):

Sub Form_Current()
Me.Parent.Form.Recordset.Findfirst "ID=" & Me!ID
End Sub

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MaggieMay

Hallo,
Zitat von: intergalactic am November 20, 2015, 09:32:38(also HF und UFO, da geteiltes Formular ja nicht unterstützt wird im Register)
was passiert, wenn du ein geteiltes Formular als Unterformular einfügst (rein interessehalber)?
Freundliche Grüße
MaggieMay

Beaker s.a.

Hallo,
Zitatwas passiert, wenn du ein geteiltes Formular als Unterformular einfügst
Habe es, wie Du, jetzt nicht nochmal ausprobiert, geht aber IMO auch nicht.
Wollte das nämlich auch Mal so machen, wie der TS, bin dann aber auf Listenfelder umgestiegen, - funzt einwandfrei.
UFos sind da etwas eingeschränkt in ihren Möglichkeiten. So kann man auch kein Register darauf unterbringen. Was sich allerdings recht einfach nachbilden lässt.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MaggieMay

Hi,
ZitatUFos sind da etwas eingeschränkt in ihren Möglichkeiten. So kann man auch kein Register darauf unterbringen.
Sorry, aber natürlich kann man auch in Unterformularen Registersteuerelemente einfügen.
Freundliche Grüße
MaggieMay

Beaker s.a.

Hallo Maggie,
O.K., stimmt; gerade nochmal ausprobiert.
Habe ich wohl irgendwas verwechselt :-(.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

intergalactic

Wenn man das geteilte Formular ins Register einfügt, wird die Datenblattansicht einfach nicht angezeigt. lg :) Danke für die vielen Antworten werde schauen was ich daraus basteln kann.

Beaker s.a.

Hallo intergalactic,
Was willst Du da noch basteln, Du brauchst doch nur deinen Code
Forms!HF.Recordset.FindFirst "[ID] = '" & Me.ID & "'"

durch den von Franz zu ersetzten
Me.Parent.Form.Recordset.Findfirst "ID=" & Me!ID
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

intergalactic

Hallo,

wenn ich es so eingebe, wie Franz es beschrieben hat kommt wieder eine neue Fehlermeldung:

Sie haben als Einstellung der Ereigniseigenschaft den Ausdruck Beim Anzeigen eingegeben.Dieser Ausdruck hat einen Fehler verursacht: Während der Kommunikation von DB mit dem OLE-Server oder dem ActiveX-Steuerelement ist ein Problem aufgetreten.

Direkt im Anschluss kommt der Fehler:
Die Methode 'Form' für das Objekt '_SubForm' ist fehlgeschlagen



Weiß da jemand von euch weiter? lg und Danke schon mal