Hallo!
ich weiß leider nicht wie man zur Berechung einen Wert aus dem Oberformular ausliest!
Berechnung: Messwert = Nennwert(aus Oberformular) + Abweichung
zur Info: Diese Berechnung habe ich im VBA beim ufo bei Abweichung (nach aktualisierung) hineingeschrieben.
Vielen Dank für die Hilfe im Voraus!
Hallo,
so:
Me!Messwert = nz(Me.Parent!Nennwert,0) + nz(Me!Abweichung,0)
Zitat von: DF6GL am September 29, 2011, 12:38:57
Hallo,
so:
Me!Messwert = nz(Me.Parent!Nennwert,0) + nz(Me!Abweichung,0)
das funktioniert leider nicht! kannst du mir das aufschlüsseln, was was bedeutet, dann find ichs vielleicht selbst heraus! ich weiß dass "Parent" für das übergeordnete Formular steht! Aber kann es sein dass er das nicht als Parent ansieht weil es auch ein ufo eines anderen formulars ist?!
Hallo,
WAS funktioniert nicht?
"Aber kann es sein dass er das nicht als Parent ansieht weil es auch ein ufo eines anderen formulars ist?!"
Was meinst Du damit? Willst Du Dich auf ein UFO-St-Element in einem anderen Hauptform beziehen?
"Me" ist die Referenz auf das Formular (oder den Bericht) , in dem der Code aktuelle abläuft. Insofern ist "Me!Messwert" ein Feld in diesem akt. Form, auch wenn es als UFO angezeigt wird.
"Me.Parent" ist der Verweis auf das Hauptform , in dem sich das UFO befindet, in dem aktuelle der Code läuft.
Insofern ist "Me.Parent!Nennwert" ein Feld in diesem Unterformular, wie auch "Me!Abweichung" .
die Nz()-Funktion sorgt dafür, dass ein leeres Feld (mit Wert "NULL") mit einem Ersatzwert ersetzt wird, um Laufzeitfehler zu verhindern. (mit "NULL" kann nicht gerechnet werden)
Er schreibt dass er das Feld "Nennwert" nicht finden kann!
danke für deine Beschreibungen. Also das müsste dann alles passen. dann liegts wohl wirklich am "Parent".
Nein so hab ich das nicht gemeint. Ich hab 3 Tabellen in einem Formular zusammengefügt, was dann bedeutet dass ich ein Hauptformular, mit einem Unterformular (1:n), hier steht der Nennwert, und einem Unter-Unterformular (1:n zum ufo) habe.
Dann wäre also die Frage ob Parent sich auf das übergeordnete Formular oder auf das HAUPTformular bezieht.....
Hallo,
naja, wenn es sich um 3 Ebenen an Formularen handelt, dann im "untersten" Unterform:
Me!Messwert = nz(Me.Parent.Parent!Nennwert,0) + nz(Me!Abweichung,0)
hmmm :-( da sagt er dass ein ungültiger Verweis ist!
Hallo,
dann ist es keine geschachtelte Ufo-Konstruktion...
es ist das was der Formular-Assisent aufbaut!
Hallo,
was ein Assistent macht , ist doch nur ein Vorschlag und fördert die Unwissenheit darüber, was passiert . Außerdem ist das Ergebnis des Assistenten kein Dogma und vieles kann er gar nicht. Du(!) bist letztendlich dafür "verantwortlich" was gemacht wird. ;)
Also, beschreib nochmal genau die Verhältnisse der Formularkonstruktion.
das weiß ich schon. ich wollte mir nur die erklärung abkürzen und erklären dass die standardlösung die der assi vorgibt genommen wurde.
Ich habe ein Hauptformular Endmaßsatz mit einem Unterformlar Endmaße verknüpft über die Messmitelnummer "mess_id"(Primärschlüssel) und "mess_id_f" (Fremdschlüssel) und einem Unterunterformular Kalibrierungen verknüpft über die Endmaß_ID "end_id"(Primärschlüssel) und "end_id_f" (Fremdschlüssel).
Im Formular Endmaße steht der Nennwert jedes Endmaßes und im Form Kalibrierungen stehen die einzelnen Messwerte und Abweichungen nach Datum geordnet in einem Endlosformular. Ich möchte aber nicht dass der Dateneingeber immer rechnen muss, um Falscheingaben zu vermeiden, sondern dass er nur die gemessene Abweichung eingeben muss und der Messwert berechnet wird.
Also wie bekomme ich den Nennwert aus dem übergeordneten Form??
Hallo,
die Beschreibung läßt mich nun vermuten, dass es sich um zwei UFO-Steuerelemente in einem (Haupt-)Form handelt und von einem UFO aus auf das zweite (parallele) UFO zugegriffen werden soll.
|----------------------------------------|
| Hauptform |
| |
| |
| |
| |-----------| |-----------| |
| | Ufo1 | | Ufo2 | |
| | | | | |
| |-----------| |-----------| |
|----------------------------------------|
Dann sollte das so aussehen:
Me!Messwert = nz(Me.Parent!Endmaße!Nennwert,0) + nz(Me!Abweichung,0)
wobei ich aber prinzipiell darauf hinweise, dass der Zugriff auf das Feld im AKTUELLEN Datensatz des (Endlos)-Forms erfolgt und berechnete Werte nicht in Tabellenfeldern gespeichert werden sollten..
super das wars!!
das mit dem aktuellen Datensatz ist gewollt so! also passt!
wieso dürfen die berechneten Werte nicht gespeichert werde, und wie verhindere ich das?
Hallo,
weil das zu inkonsistenten, bzw. falschen Daten führen kann. Der berechnete Wert stimmt nur zu dem Zweitpunkt, an dem er berechnet wird. Werden die Ausgangsdaten irgendwann verändert, wird die Berechnung nicht automatisch durchgeführt und der Wert angepasst.
Verhindern kann man das, indem das Feld "Messwert" einfach an kein Tabellenfeld gebunden wird (Tabellenfeldname in Eigenschaft "Steuerelementinhalt" entfernen) und somit nur zur Anzeige dient.