Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Daten im UF automatisch aktualisieren

Begonnen von gsaccess, November 27, 2023, 10:39:32

⏪ vorheriges - nächstes ⏩

gsaccess

Ich habe wieder einmal ein Problem das ich nicht in der Lage bin zu lösen.
Ich habe ein Zahlungsformular "zahlungen" in dem die Rechnung/der Auftrag ausgewählt wird.
In dem Unterformular "ZahlungsdetailUF"werden die Zahlungen zum Auftrag erfasst.
Im Unterformular "auftragUF" werden Rechnungsbetrag, Zahlungsbetrag, Skonto und Mahnbetrag angezeigt bzw. berechnet.
In diesem UF wird die Summe der Zahlungen zu dem Auftrag im Feld Zahlbetrag angezeigt. Übernommen aus dem UF Zahlungsdetail.
Wenn ich nun zu einem Auftrag eine Zahlung im "ZahlungsdetailUF" eingebe wird die Summe der Zahlungen nicht in das UF "auftragUF" übernommen.
Ich habe daher einen Button für die Aktualisierung eingerichtet. Mit Klick auf diesen Button funktioniert die Aktualisierung problemlos.
Die Aktualisierung sollte aber automatisch im Hintergrund laufen.

Mein Code:
Button Aktualiesieren
Aufruf aus UF
Call Forms("zahlungen").Controls("auftragUF").Form.cmdaktualisieren_Click

Beim Verlassen des Zahlungsbetrages im "ZahlungsdetailUF"
Private Sub Zahlungsbetrag_Exit(Cancel As Integer)
Call Form_Zahlungen.Zahlungsberechnung
Call Forms("zahlungen").Controls("auftragUF").Form.cmdaktualisieren_Click

End Sub
Public Sub Zahlungsberechnung()
Dim zahlsum As Variant
Forms!zahlungen!auftragUF!bezahltam = Forms!zahlungen.HFletzteZahlung
zahlsum = Forms!zahlungen!SummeZahlungen
Forms!zahlungen!auftragUF!Zahlbetrag = Forms!zahlungen!SummeZahlungen
Forms!zahlungen!auftragUF!Mahnbetrag = Forms!zahlungen!auftragUF!Rebetrag + Forms!zahlungen!auftragUF!Gesamtspesen - Forms!zahlungen!auftragUF!Zahlbetrag
Forms!zahlungen!auftragUF!Skontobetrag = Forms!zahlungen!auftragUF!Rebetrag - Forms!zahlungen!auftragUF!Zahlbetrag - Forms!zahlungen!auftragUF!Mahnbetrag
'Forms!zahlungen!auftragUF!txtNettoReBetrag = Me.txtBruttoTR
If Forms!zahlungen!auftragUF!SkontoJN = -1 Then

Forms!zahlungen!auftragUF!Skontobetrag = Forms!zahlungen!auftragUF!Rebetrag + Forms!zahlungen!auftragUF!Gesamtspesen - Forms!zahlungen!auftragUF!Zahlbetrag
Forms!zahlungen!auftragUF!Mahnbetrag = Forms!zahlungen!auftragUF!Rebetrag + Forms!zahlungen!auftragUF!Gesamtspesen - Forms!zahlungen!auftragUF!Zahlbetrag - Forms!zahlungen!auftragUF!Skontobetrag
Forms!zahlungen!auftragUF!Skontoprozent = Forms!zahlungen!auftragUF!Skontobetrag / (Forms!zahlungen!auftragUF!Rebetrag + Forms!zahlungen!auftragUF!Gesamtspesen)

End If
Call Forms("zahlungen").Controls("auftragUF").Form.cmdaktualisieren_Click
End Sub

Wie kann ich die Werte im "auftragUF" automatisch richtig anzeigen
  •  

andyfau

Hallo,
ohne jetzt den Code, den man übrigens zur besseren Lesbarkeit hier in Code-Tags setzen sollte, genau durchforstet zu haben:
Es gibt da so Befehle wie
Me.Requery oder
Me.Refresh
Beste Grüße
Andreas
  •  

Beaker s.a.

Hallo,
Call Forms("zahlungen").Controls("auftragUF").Form.cmdaktualisieren_ClickDas ist ein NoGo. Man startet keine Ereignisprozeduren "von aussen", das bleibt den
zugehörigen Ereignissen vorbehalten.
Es fragt sich allerdings, warum die die Berechnungen auf einem Form durchführst um sie
auch einem anderen anzuzeigen. So scheint es mit jedenfalls. Warum nicht einer Abfrage,
die dann DS-Herkunft des UFos wird.

gruss ekkehard
--
Frauen aller Länder vereinigt euch! Wir brauchen eine Wiedergeburt des Matriarchats.
Und schickt den Papst in die Wüste! Da kann er 40 Tage auf God(o)t warten.
  •  

gsaccess

Danke für die Antworten. Refresh und Requere sind mir bekannt.
Das Formular habe ich auf Hinweis von Ekkehard geändert.
Trotzdem habe ich folgendes Problem:
Die Zahlungen werden im Unterformular zahlungsdetailuf erfasst.
Im Hauptformular soll die SummeZahlungen in das Feld Zahlbetrag geschrieben werden.
Dazu habe ich im Hauptformular ein Feld mit der
SummeZahlungen =Nz([zahlungsdetailUF].[Formular]![suZahlungen])).
Dieses wird auch bei der Eingabe und Änderung jeder Zahlung sofort aktualiesiert.
Meiner Meinung nach sollte die Aktualisierung des Feldes Zahlbetrag eigentlich funktionieren wenn ich im Feld SummeZahlungen nach Aktualisierung das Ereignis
Me.Zahlbetrag = Me.SummeZahlungen
Me.Zahlbetrag.DoCmd.Requery schreibe.
Funktiert aber nur wenn ich in Zahlungsdetail nochmals in die Zeile gehe und diese dann wieder verlasse.
Wo habe ich hier einen Denkfehler.

gruß günther
  •  

Köbi

Weshalb
Me.Zahlbetrag.[color=red]DoCmd[/color].Requery schreibe.
Me.Zahlbetrag.Requery schreibe.
sollte doch genügen.
  •