none
AfterUpdate nimmt vorherigen Wert

    Frage

  • Hallo alle zusammen,

    Auf einem Formular habe ich eine Berechnung in Feld X. Wenn ich einen Wert in Feld Y eingebe, dann wird Feld X neu berechnet. Das funktioniert soweit.

    Ich muss nach Aktualisieren von Feld X eine Warnung ausgeben. Diese habe ich in AfterUpdate des Datensatz programmiert. Aber wenn AfterUpdate ausgeführt wird, ist die Anzeige am Bildschirm wohl korrekt, aber wenn ich mit VBA auf X.Value zugreiffe, bekomme ich noch immer den Wert vor der Berechnung.

    Wie erhalte ich den Wert nach der Berechnung?

    Hmm... versteht man was ich meine?

    Vielen Dank für Hilfestellung.

    Sonntag, 19. November 2017 12:42

Alle Antworten

  • Am 19.11.2017 schrieb mwch:

    Ich muss nach Aktualisieren von Feld X eine Warnung ausgeben. Diese habe ich in AfterUpdate des Datensatz programmiert. Aber wenn AfterUpdate ausgeführt wird, ist die Anzeige am Bildschirm wohl korrekt, aber wenn ich mit VBA auf X.Value zugreiffe, bekomme ich noch immer den Wert vor der Berechnung.

    In diesem Artikel wird es IMO gut erklärt:
    http://www.access-basics.de/index.php/Textfelder:_Value,_OldValue_und_Text.html

    Value: Enthält den aktuellen Wert des Textfeldes.
    Text: Enthält den aktuell angezeigten Inhalt des Textfeldes.
    OldValue: Enthält den vorherigen Wert des Textfeldes.

    Servus
    Winfried


    Access-FAQ: http://www.donkarl.com/AccessFAQ.htm Access-Stammtisch: http://www.access-muenchen.de
    NNTP-Bridge für MS-Foren: http://communitybridge.codeplex.com/
    vbeTwister: http://www.vbetwister.com/

    Sonntag, 19. November 2017 15:38
  • Hallo Winfried, vielen lieben Dank für Deine Antwort. Das leuchtet mir ein, habe das verstanden und sofort ausprobiert.

    Aber lösen tut es mein Problem noch nicht, ausser ich habe es falsch verstanden.

    Ich habe ein Formular mit einer Listenansicht und im Fussbereich eine Summe. Hat das .Txt, .Value und .OldValue auch für diese summe im Fuss Gpltigkeit?

    Denn wenn ich AfterUpdate ausführe, hat diese Summe in allen drei Eigenschaften den gleichen Wert, den welcher vor der Änderung eines Datensatz gültig war.

    Wie kann ich bei AfterUpdate die richtige Summe abgreifen?

    Bin etwas verwirrt...
    Viele liebe Grüsse

    Sonntag, 19. November 2017 16:48
  • Am 19.11.2017 schrieb mwch:

    Ich habe ein Formular mit einer Listenansicht und im Fussbereich eine Summe. Hat das .Txt, .Value und .OldValue auch für diese summe im Fuss Gpltigkeit?

    Denn wenn ich AfterUpdate ausführe, hat diese Summe in allen drei Eigenschaften den gleichen Wert, den welcher vor der Änderung eines Datensatz gültig war.

    Findet in diesem Feld die Berechnung statt oder kommt der Wert aus
    einem anderen Feld? Ändert sich der Wert denn später noch?

    Servus
    Winfried


    Access-FAQ: http://www.donkarl.com/AccessFAQ.htm Access-Stammtisch: http://www.access-muenchen.de
    NNTP-Bridge für MS-Foren: http://communitybridge.codeplex.com/
    vbeTwister: http://www.vbetwister.com/

    Sonntag, 19. November 2017 17:41
  • Also mein erstes Problem ist:

    Tabelarisches Formular mit einem Double Feld azZeitIst.
    Im Fuss des Formulares eine Textbox mit dem Steuerelementinhalt =Summe([azZeitIst]) mit dem Namen tbArbeitszeit.

    Der Anwender verändert die Daten in einem Datensatz im Feld azZeitIst und beim Verlassen des Datensatz brauche ich die korrekte Summe aus dem Feld tbArbeitszeit um weiter zu rechnen. Das Ergebnis wird dann aber in ein anderes Formular geschrieben, betrifft also den aktuellen Datensatz nicht mehr.

    Vermutlich ist mit der Lösung dieses Problem auch das Folgeproblem gelöst.

    Das Zweite Problem ist: In einer Textbox mit Name tbZuschlagZeit habe ich den Steuerelementinhalt =Wenn([tbArbeitsZeit]>[uzMax];[tbArbeitsZeit]-[uzMax];0)

    Das Feld uzMax ist aus der Tabelle und beinahaltet einen Double Wert.

    Da aber tbArbeitszeit falsch ist, kann ja tbZuschlagZeit nicht richtig sein. Daher denke ich, zuerst das 1. Problem.

    Super vielen lieben Dank für Deine Bemühungen. 


    Sonntag, 19. November 2017 18:31