Hallo zusammen,
navigiere ich in einem gerade neu geöffneten Formular in einem darin enthaltenen Unterformular mit den Datensatzmarkieren zwischen den Datensätzen des Unterformulars hin- und her, dann wird im Hauptformular in einem Textfeld die ID des aktuellen Datensatzes im Unterformular angezeigt:
=[NameUnterformular].[Formular]![NameTextfeld]
Navigiere ich aber mit den Datensatzmarkieren des Hauptformulars einen Datensatz weiter und dann wieder mit den Datensatzmarkieren des Unterformulars zwischen den Datensätzen des Unterformulars hin- und her, dann wird der Wert im Textfeld des Hauptformulars nicht mehr geändert.
Mit
Me.NameTextfeld.Value = Forms!NameHauptformular!NameUnterformular!NameTextfeld.Value
in dem Ereignis
Beim Anzeigen / Form_Current()
des Unterformulars bekomme ich den Laufzeitfehler 2448: Sie können diesem Objekt keinen Wert zuweisen.
Wie bekomme ich es hin, dass ich immer in einem Textfeld des Hauptformulars immer den Wert des ID-Feldes des aktuellen Datensatzes um Unterformular angezeigt bekomme?
Danke für Hinweise.
Gruß,
Stefan
Hallo,
verwendest Du auch den Namen des Unterformularsteuerelements ?
Der kann unterschiedlich sein zum eigentlichen Formularnamen im Datenbankfenster.
Wozu brauchst Du die ID des Ufo-DS im Hafo ?
Eine ID sollte eigentlich belanglos sein und wird in einer Datenbank im Regelfall auch ausgeblendet ist also gar nicht zu sehen. Und die ID des Ufo-DS kann gar keinen Bezug zum Hafo haben, das wäre unlogisch.
Hallo Klaus,
die Namen stimmen, mit MgsBoxen habe ich das immer wieder ausgetestet.
Ich brauche das für Folgendes: Das Ganze ist ein Prüfungstool. Das Hauptformular umfasst alle relevanten Daten zur Prüfung. Im Unterformular werden Fragen angezeigt, die in Fragensets zusammegefasst wurden und die für ähnlich gelagerte Prüfungen wiederverwendet werden sollen.
Dazu lasse ich mit im Unterformular die Sets mit den Fragen anzeigen. Passt ein Set zum aktuellen Prüfling mit seinem Ablschlussprojekt, so sollen die Fragen aus dem Set im Hauptformular eingetragen werden.
Bisher musste ich jedes Mal die Fragen einzeln auswählen. Mit der Unterformular-Konstruktion soll das vereinfacht werden. Und daher brauche ich die ID, um damit mein SQL-Statement für den Eintrag der Fragen zusammenbasteln zu können. Da ich aber Probleme habe, auf das das ID-Feld im Unterformular zuzugreifen, wolle ich den Wert des ID-Feldes für die Sets eben im Hauptformular haben. In einem andern Fall dieser Prüfungs-DB habe ich das ähnlich gemacht und es klappt so.
Gruß,
Stefan
Hallo,
Zitatso sollen die Fragen aus dem Set im Hauptformular eingetragen werden.
wieso sollen die Fragen die schon im Set sind noch mal in den Datensatz des Hafos ?
Ein Set besteht doch aus mehreren Fragen, willst Du dann alle IDs in das Hafo übertragen ?
Mir scheint, das ist eher eine Frage des Datenmodells.
Zeige mal ein Bild des Beziehungsfensters.
Hallo Stefan,
Zitatdes Unterformulars bekomme ich den Laufzeitfehler 2448: Sie können diesem Objekt keinen Wert zuweisen.
Das liegt daran, dass du dem Textfeld-Steuerelement-Inhalt mit
=[NameUnterformular].[Formular]![NameTextfeld]einen festen Wert zuweist. Der lässt sich mit VBA nicht überschreiben
(siehe Fehlermeldung). Lösche das. Dann reicht die Zuweisung in
Form_Current (HFo, s.u.). Dieses Ereignis wird auch beim Öffnen eines
Formulars gefeuert.
ZitatMe.NameTextfeld.Value = Forms!NameHauptformular!NameUnterformular!NameTextfeld.Value
in dem Ereignis
Beim Anzeigen / Form_Current()
des Unterformulars
Du meinst sicher
UnterFormular? Da würde diese Zeile dem
Textfeld im Ufo seinen eigenen Wert zuweisen; - gehört so ins HFo (s.o.)
gruss ekkehard
Hallo,
ZitatDa ich aber Probleme habe, auf das das ID-Feld im Unterformular zuzugreifen, wolle ich den Wert des ID-Feldes für die Sets eben im Hauptformular haben.
das Problem solltest du lösen, denn das ist vermutlich auch die Ursache dafür, dass das Anzeigen der ID im HF nicht klappt.
PS:
Oder eben umgekehrt (aus dem Ufo heraus):
Me.Parent.Form!NameTextfeld = Me!NameTextfeld
Hallo Meggie
vielen Dank, aber
ZitatMe.Parent.Form!NameTextfeld = Me!NameTextfeld
bringt die gleiche Fehlermeldung (2448).
Gruß,
Stefan
Hallo Stefan,
Klar, weil wahrscheinlich im Steuerelemente-Inhalt des Textfeldes im HFo immer noch
=[NameUnterformular].[Formular]![NameTextfeld]
drinsteht. Hast Du das Mal gelöscht?
Kann aber auch sein, dass es vom UFo aus beim Öffnen des HFo nicht
funzt, weil das HFo noch nicht geladen ist; - Reihenfolge UFo -> HFo.
gruss ekkehard