Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: gsaccess am November 27, 2023, 10:39:32

Titel: Daten im UF automatisch aktualisieren
Beitrag von: gsaccess am November 27, 2023, 10:39:32
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
Titel: Re: Daten im UF automatisch aktualisieren
Beitrag von: andyfau am November 27, 2023, 13:25:05
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
Titel: Re: Daten im UF automatisch aktualisieren
Beitrag von: Beaker s.a. am November 27, 2023, 14:39:34
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
Titel: Re: Daten im UF automatisch aktualisieren
Beitrag von: gsaccess am November 29, 2023, 11:06:02
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
Titel: Re: Daten im UF automatisch aktualisieren
Beitrag von: Köbi am November 29, 2023, 13:36:13
Weshalb
Me.Zahlbetrag.[color=red]DoCmd[/color].Requery schreibe.
Me.Zahlbetrag.Requery schreibe.
sollte doch genügen.