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
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 ?
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.
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.
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.
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.
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.
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
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)?
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
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.
Hallo Maggie,
O.K., stimmt; gerade nochmal ausprobiert.
Habe ich wohl irgendwas verwechselt :-(.
gruss ekkehard
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.
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
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
Hallo,
zeig mal den Code, den Du verwendest...
Hast Du die Objektnamen angepasst?
Hallo,
welcher Befehl verursacht diesen Fehler, wo und wann genau tritt er auf?
Habe jetzt im zweiten Unterformular beim Klick-Ereignis auf ein Steuerelement folgenden Code:
Me.Parent.Form.Recordset.FindFirst "[tblEinzelabnahme].[ID] = '" & Me![tblEinzelabnahme].[ID] & "'"
Beim Klicken soll eben im dazugehörigen Hauptformular der ausgewählte Datensatz angezeigt werden und dann kommt oben genannter Fehler.
Hallo,
--gibt es das Feld "[tblEinzelabnahme].[ID]" (Im Formularentwurf bei Steuerelementinhalt des entspr. Textfeldes nachsehen!)
--Hat das Feld ("ID") in der Tabelle den Datentyp TEXT ??
Hallo,
- ja das Feld gibt es
- ID ist ein AutoWert
lg
Hallo,
dann müssen die Hochkomma weg und weitere Anpassungen:
Me.Parent.Form.Recordset.FindFirst "[ID] = " & Me.[ID]
Also nocheinmal vielen Dank an alle. So hat´s dann schlussendlich funktioniert, auch im Register.
Forms!frmFormularUfo.Recordset.FindFirst "[tblTabelle_ID] = '" & Me.[tblTabelle_ID] & "'"
Hallo,
Zitat- ID ist ein AutoWert
dann kann obiger Code nicht funktionieren. Bei einer Zahl (Autowert) sind die Hochkomma falsch.