Hallo Forum,
ich habe in meinem letzten Feld nach Update folgendes
Private Sub Re_Ende_Zeit_AfterUpdate()
Me![Re_Ende_Zeit] = fRundeViertelstunde(Me![Re_Ende_Zeit], 2)
Me![Tag_Berechnet] = IIf(DateDiff("h", Me![Re_Start_Zeit], Me![Re_Ende_Zeit]) <= 10, DateDiff("h", Me![Re_Start_Zeit], Me![Re_Ende_Zeit]) - 1, DateDiff("h", Me![Re_Start_Zeit], Me![Re_Ende_Zeit]))
End Sub
und möchte im Feld [Tag_Berechnet] jeweils die Stunden anzeigen lassen,
jedoch wenn ich dann in der nächsten Zeile gehe, übernimmt er mir den Wert auf alle Zeilen... ;(
Gibt es dort eine Lösung?
(https://i.ibb.co/cCjsJ2n/berechnet-1.jpg) (https://imgbb.com/)
MFG J.D.
Zitat von: J.D am April 19, 2024, 09:58:46und möchte im Feld [Tag_Berechnet] jeweils die Stunden anzeigen lassen,
jedoch wenn ich dann in der nächsten Zeile gehe, übernimmt er mir den Wert auf alle Zeilen... ;(
In einem Endlosformular müssen die Steuerelemente gebunden sein, andernfalls gibt es nur einen Wert für das Steuerelement, der für alle Datensätze gilt.
Wenn du deinen obigen VBA-Ausdruck entsprechend anpasst und dann direkt in den Steuerelementinhalt von
Tag_Berechnet schreibst, solltest du das gewünschte Ergebnis bekommen.
Ja, danke... aber irgendwie habe ich es hinbekommen...
über den Umweg einer Funktion ;)
Function AdjustedValue(value As Variant) As Variant
If IsNumeric(value) Then
If value <= 10 Then
AdjustedValue = value - 1
Else
AdjustedValue = value
End If
Else
' Wenn der Wert keine Zahl ist, geben Sie den ursprünglichen Wert zurück
AdjustedValue = value
End If
End Function
Grüsse J.D.
Zitat von: J.D am April 19, 2024, 10:59:32irgendwie habe ich es hinbekommen...
über den Umweg einer Funktion ;)
Das geht natürlich auch. Wichtig ist nur, dass für Access der Zusammenhang zum aktuellen Datensatz bzw. einem Wert daraus erkennbar ist. Das geht genauso mit einer eigenen Funktion, wenn sie als Steuerelementinhalt verwendet wird und als Argument den Wert aus dem aktuellen Datensatz bekommt.
Mein erstes Ansinnen wäre immer, mich von Formularereignissen, -abhängigkeiten und -berechnungen unabhängig zu machen und die Berechnungen in der Abfrage vorzunehmen, die als Datenherkunft für das Formular dient. Damit hätte man im Formular ein zusätzliches gebundenes Steuerelement, und der Umgang mit NULL ist deutlich entspannter.
Nebenbei kann es ja sein, dass das berechnete Feld in weiteren Berechnungen und Auswertungen weiterverwendet werden soll. Das macht sich über die Abfrage immer einfach.
ja, ich hatte zuerst versucht es in der Datenbank als berechnetes Feld einzugeben, bin aber gescheitert, hab dort schon ein Feld welches die Zeiten berechnet...
Ich mach ja schon viel mit Access, aber ab und zu scheitert es zwischen VB und Formular auf Grund der unterschiedlichen schreib weisen. Da komme ich aber auch noch hin ;)
Nur leider benötige ich für einen Ausländischen Zweig eine sehr komplizierte Berechnung der stunden an Samstagen und Son/Feier Tagen, bis dahin werde ich noch über den einen oder anderen Stein springen...
MFG J.D.