Neuigkeiten:

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

Mobiles Hauptmenü

Wert vom HF ins UF übernehmen

Begonnen von mad, April 19, 2019, 19:19:49

⏪ vorheriges - nächstes ⏩

mad

Hallo Zusammen,

habe ein HF "Übungen_Veranstaltungen" mit einem verknüpften UF "UF_Registrierung_Üb".
Im HF lasse ich in einem ungebundenen Textfeld "ÜbDauer" die Dauer (Zeit) "=[EDatumU]-[ADatumU]" berechnen in hh:mm.
Bisher wähle ich im UF "UF_Registrierung_Üb" eine Person "PName" per Kombifeld aus und trage dann die Dauer aus dem HF händisch in das Textfeld "ÜbStd" ein. Das mache ich für jede Person die an der Übung teilgenommen hat.
Zukünftig würde ich das gerne automatisieren indem die errechnete Dauer aus "ÜbDauer" nach AfterUpdate von "PName" in das UF-Textfeld "ÜbStd" übernommen wird.
Allerdings sollte "ÜbStd" immer noch änderbar sein, den manchmal kommt eine Person später zur Übung oder geht früher und nimmt somit nicht die volle Dauer teil.

Habe es mit folgendem Code versucht, klappt aber leider nicht.
Private Sub PName_AfterUpdate()
Me!Übungen_Veranstaltungen.Form!ÜbDauer = Me!ÜbStd
End Sub


Ich hoffe es kann mir jemand eine hilfreichen Tipp geben.


Danke
mad

Beaker s.a.

@mad
Wenn du dir deine Beschreibung noch einmal durchliest, solltest du
eigentlich selber darauf kommen.
Hinweis:
1. die Felder stehen auf der falschen Seite der Gleichung
2. das HFo erreichst du aus dem UFo mit
Me.Parent

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)

mad

Hallo Ekkehard,

danke für den Hinweis. Habe mal ausprobiert aber mit wenig Erfolg.
Mit meinem aktuellen Code bekomme ich den Laufzeitfehler: 2465 (sh. Bild)
Private Sub PName_AfterUpdate()   
    Me.Form.Parent.ÜbStd = Form.Übungen_Veranstaltungen.ÜbDauer
End Sub

Wo liegt mein Fehler?

Gruss
mad

DF6GL

Hallo,


Code im Unterform, Übertragen des Wertes aus "ÜbDauer" im Hauptform  ins Feld "ÜbStd" im Unterform beim aktuellen Datensatz.


Private Sub PName_AfterUpdate()   
    Me!ÜbStd = Me.Parent!ÜbDauer
End Sub


evtl. muss die Berechnung wiederholt werden:

Private Sub PName_AfterUpdate()   
    Me!ÜbStd = Me.Parent!EDatumU-Me.Parent!ADatumU
End Sub


Die "Zeit"-Berechnung als solche ist fragwürdig....
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

mad

Hallo,
habe mir Deinen Kommentar mal zu Herzen genommen.
ZitatDie "Zeit"-Berechnung als solche ist fragwürdig....
Ja Du hast natürlich Recht, denn so funktioniert nur eine Zeitberechnung die nicht über 24 Stunden bzw. sich nicht über zwei bzw. mehreren Tagen erstreckt.
Lasse jetzt die Zeit in meinem Textfeld "ÜbDauer" wie folgt berechnen:
Gesamtminuten: DatDiff("n";[ADatumU];[EDatumU])
und anschliessend umwandeln in eine Zeitangabe:
Gesamtzeit: [Gesamtminuten]\60 & ":" & Format([Gesamtminuten] Mod 60;"00")
Funktioniert soweit.

Allerdings bin ich jetzt auf ein neues Problem gestoßen. Und zwar wenn die errechnete Zeitangabe in "ÜbDauer" größer ist als 24:00 dann klappt die Übergabe an Feld "ÜbStd" nicht mehr.

Private Sub PName_AfterUpdate()   
    Me!ÜbStd = Me.Parent!ÜbDauer
End Sub
Alles was kleiner als 24 Stunden ist ist kein Problem.
Beide Textfelder haben das Datum/Uhrzeit-Format "Zeit, 24Std".

Hättest Du nochmals einen Rat für mich?

Gruß
mad

mad

Hallo Zusammen,

habe nun mal einen anderen Weg versucht. Und zwar das ich die Minuten in das Textfeld "ÜbStd" des UF übertragen lasse. Somit kann ich Minuten übertragen die auch über die 24 Stunden (>1440 min) hinaus gehen.

Zitat
Private Sub PName_AfterUpdate()   
    Me!Übmin = Me.Parent!ÜbDauermin
End Sub
Nun die Frage ob ich in dem obigen Code die Minuten gleich wieder in "hh:mm" umwandeln kann? ähnlich:
Zitat
Private Sub PName_AfterUpdate()   
    Me!Übmin = Me.Parent!ÜbDauermin
'[ÜbDauermin]\60 & ":" & Format([ÜbDauermin] Mod 60;"00")
End Sub
Zitat


Gruss
mad

mad

Hallo Zusammen,

leider bin ich mit meinem Anliegen vom 30. April nicht weiter gekommen. Löse das jetzt auch im UF mit zwei Felder indem die Minuten aus dem HF nach Eingabe eines Namens ins UF übernommen werden und im Feld "dauerMA"als hh:mm angezeigt wird, siehe Beispiel-DB. Soweit so gut.

Nun gibt es aber Fälle in den diverse Kollegen nicht die volle Zeit anwesend sind. Für diesen Fall würde ich gerne in der Zeile des jeweiligen Kollegen im Feld "dauerMA" die hh:mm z.B. in 09:30 ändern können. Derzeit kann ich aber das Feld "dauerMA" garnicht beschreiben. Und wenn ich den Wert ändern kann dann muss sich natürlich auch das Feld der Minuten "dauer_min" anpassen. Denn diese Minuten aus dem UF benötige ich wiederum um weiter zu rechnen bzw. um diverse Auswertungen (Berichte) zu erstellen.

Hat jemand eine Idee, wie man das umsetzen könnte?

Gruss
mad