Office: (Office 2010) Zwei Felder im Formular vergleichen

Helfe beim Thema Zwei Felder im Formular vergleichen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, in einem Formular möchte ich zwei Währungsfelder miteinander vergleichen und bei einer Abweichung entsprechend reagieren (hier: Farbwechsel).... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Klaus B aus D, 24. September 2019.

  1. Zwei Felder im Formular vergleichen


    Hallo,

    in einem Formular möchte ich zwei Währungsfelder miteinander vergleichen und bei einer Abweichung entsprechend reagieren (hier: Farbwechsel).

    Beide Felder sind im HFo platziert, wobei das eine die Werte aus einer ProfiCash-Tabelle bezieht, die Daten für Bankeinzüge enthält.
    Das zweite Feld addiert die Werte aus den Textfeldern "txtEigeneBeiträge" und "txtFremdeBeiträge" und liefert das Ergebnis im Feld "txtGesamteJahresBeiträge". Dabei werden die Felder "txtEigeneBeiträge" und "txtFremdeBeiträge" jeweils aus einem UFo heraus "gefüttert".

    Der Vergleich soll "Beim Anzeigen" des Formulars erfolgen. Dazu gibt es diesen Code: Code:
    Kurioserweise erscheint nach einem DS-Wechsel die Meldung "Diskrepanz", da beide Felder (sichtbar) unterschiedliche Werte enthalten. Sobald ich die Meldung aber quittiere, erscheint in dem Feld, das die Summe aus den UFo-Werten zeigen soll, (solange kein Fehler in den Soll-Ist-Buchungen vorliegt) der gleiche Eintrag. Es besteht also kein Unterschied.

    Auch mit dem Einbau einer kurzen Zeitschleife vor den Codezeilen ändert sich dieses Phänomen nicht. Was könnte ich noch ändern?
    Gruß Klaus

    :)
     
    Klaus B aus D, 24. September 2019
    #1
  2. Alles, was freudiges Lachen erzeugt, ist bewahrenswert.

    Deine Erwartung und die konkrete Umsetzung können zweierlei sein. Letztere ist ungenügend, um sich ein Bild zu machen.
     
  3. Hallo Klaus,
    Schau dir die beiden Werte mal unformatiert an.
    gruss ekkehard
     
    Beaker s.a., 26. September 2019
    #3
  4. Zwei Felder im Formular vergleichen

    Hallo Ekkehard,

    leider kommt meine Reaktion auf deinen Vorschlag etwas verzögert.

    Meinst du mit "unformatiert" diese Art?
    Code:
    Leider ergibt sich auch dann keine Änderung. Die Meldung kommt einfach zu früh, also bevor der Vergleich der Beträge wirklich erfolgt ist. Nach der Quittierung der Meldung zeigt sich, dass die Beträge sehr wohl übereinstimmen (s. Bild) und somit die Aussage irreführend ist.

    Gruß Klaus
     
    Klaus B aus D, 3. Oktober 2019
    #4
  5. Hallo,
    was Du im Formular siehst und was in der Tabelle steht muss nicht gleich sein.
    Bei eine Fließkommaberechnung ergeben sich kleine Differenzen.

    Daher die Hinweis von ekkehard.
     
    gpswanderer, 3. Oktober 2019
    #5
  6. Moin,

    >> Die Meldung kommt einfach zu früh

    das grenzt an Voodoo. Schreib vor dem Vergleich
    Code:
    dann siehst Du, was in den Feldern steht.
     
    drambeldier, 3. Oktober 2019
    #6
  7. Wenn’s zu früh kommt leg deinen Code doch mal auf ein After Update der Felder und fang ab wenn sie NULL sind.
     
    Marcel_LEV, 4. Oktober 2019
    #7
  8. Zwei Felder im Formular vergleichen

    So, nun habe ich die Vorschläge mal umgesetzt - leider ohne das gewünschte Ergebnis.

    Meine Vorgehensweise:
    Den Code beim Ereignis "Form_Current" angepasst:

    Code:
    Nach Verlassen der Programmebene und Umschalten in die Formularansicht erscheint zunächst nicht das Formular, sondern die Meldung "Die beiträge stimmen überein". Erst nach dem Klick auf "Ok" erscheint das Formular und ich kann erkennen, dass es keine Übereinstimmung gibt.

    Im Direktfenster sieht es für zwei Kassenmitglieder folgendermaßen aus:

    Mitglieds-Nr.: 2579 - ProfiCash: - AccDB: 0
    Mitglieds-Nr.: 1699 - ProfiCash: 73,2 - AccDB: 0

    Für das 1. Mitglied besteht nach der Quittierung der Meldung seht wohl eine Diskrepanz: 18,30 EUR sind zu zahlen, die durch ProfiCash nicht eingezogen werden!
    Für das 2. Mitglied lautet die Meldung zwar "Diskrepanz", doch nach der Quittierung der Meldung stimmen die Werte Ist und Soll überein.

    Gemäß Direktfenster passt zwar die Meldung, doch wenn die Werte nach Meldungsquittierung erscheinen, passt es gerade nicht!
    Daher meine Meinung "Die Meldung erscheint zu früh."

    Gruß Klaus
     
    Klaus B aus D, 10. Oktober 2019
    #8
  9. ProfiCash ist nicht 0, sondern NULL - das ist ganz was anderes.
     
    drambeldier, 10. Oktober 2019
    #9
  10. Nur mal nebenbei: Ein Verhalten prüft man am Besten am Objekt, mit allen seinen Events, Methoden und Eigenschaften => Demo mit herausgelösten Formular, was genau das bemängelte Verhalten zeigt.

    Ob jetzt Bilder, Prosa und Meinungen von jemandem, der es selber nicht ausreichend versteht, lösungsorientiert sind - darüber darf man seine Meinung haben. Zwei Wochen Suche sind ja auch noch keine Zeit.
     
  11. Nach dem leichten "Anschubser" von Eberhard, habe ich das "Problem-Formular" etwas entfrachtet und kann so hoffentlich erkunden lassen, wo ich ansetzen muss, damit erst der Vergleich in zwei Feldern stattfindet und anschließend die Prüfung inkl. der Meldung erfolgt.

    LG Klaus
     
    Klaus B aus D, 11. Oktober 2019
    #11
  12. Hallo,
    ein Feld das NULL (=Nix) enthalten kann, kann nicht zu einem Vergleich herangezogen werden. Da muss man Nz() verwenden um gezielt aus NULL die Zahl 0 zu machen.
    Code:
    Das hat Ralf in #9 schon geschrieben.
    Ob dann der Rest passt, musst Du mal prüfen.
     
    gpswanderer, 11. Oktober 2019
    #12
  13. Zwei Felder im Formular vergleichen

    Hallo Klaus,

    danke für den Tipp - ich habe ihn umgesetzt.

    Gemäß DebugPrint-Ergebnis im Direktfenster:

    Mitglieds-Nr.: 1947 - ProfiCash: 6,1 - AccDB: 0
    Mitglieds-Nr.: 1699 - ProfiCash: 73,2 - AccDB: 0

    lautet die Aussage in der Meldung "Diskrepanz". Aber die besteht tatsächlich nicht, denn wenn ich die Meldung quittiere, stimmen unmittelbar danach beide EUR-Beträge überein.

    Gruß Klaus
     
    Klaus B aus D, 13. Oktober 2019
    #13
  14. Die Meldung wird per Current-Event erzeugt.
    Was hältst Du davon, dass das Ereignis eher eintritt als die Berechnungen in Deinen Feldern, die sich Werte aus den Unterformularen holen? Dann ist die Meldung für die Katz.

    Werte holen:
    Code:
    So etwas habe ich noch nicht gesehen, und so etwas würde ich nie anfassen.
    Programmsteuerung per Fehler, Abhängigkeiten über verschiedene Formulare, schlimm schlimm, schlimm. Zumal das Current-Ereignis dann ein hoch dynamisches ist und in Verquickungen und Kombinationen schwer zu greifen ist. Bastle mal in die Unterformulare auch noch Ereignisprozeduren zum Current rein ...

    Ich tue mich dann regelmäßig mit folgender Überlegung leicht: Formulare zeigen Daten nur an, die Daten liegen real in Tabellen. Also reduziere/vermeide ich Formularzugriffe und orientiere auf Tabellen-/Abfragezugriffe. Da kriege ich Daten live so wie sie sind, und Events kommen dann nie zu früh oder zu spät.

    Jetzt müsste man nur noch die Abfragetechnik stabil beherrschen und aus den Tabellen heraus die benötigten Summen (performant) berechnen und übergeben können.
     
  15. Hallo Klaus,

    was hältst du von einem berechneten Textfeld, das deine gewünschte Meldung (leicht verzögert) ausgibt.

    Steuerelementinhalt:
    =Wenn([txtProfCash2020Betrag]=[txtGesamteJahresBeiträge];"Die Beiträge stimmen überein.";"Diskrepanz!")

    Gruß
    Josef
     
Thema:

Zwei Felder im Formular vergleichen

Die Seite wird geladen...
  1. Zwei Felder im Formular vergleichen - Similar Threads - Felder Formular vergleichen

  2. Horst

    in Microsoft Access Hilfe
    Horst: Hallo, wer kann mir erklären, wie ich in einem Formular mit VB auf ein bestimmtes Feld springen kann und dieses dann aktiv (dunkel hinterlegt) ist. Mit Set.Focus ist das ja leider nicht möglich....
  3. Formular Felder verschieben sich

    in Microsoft Outlook Hilfe
    Formular Felder verschieben sich: Hallo Habe in Outlook ein Formular SPOT.oft entworfen. Wenn ich mein Formular auf anderen PC's unter Laufwerk C:\Users\..........\AppData\Roaming\Microsoft\Templates\ abspeichere und das...
  4. Beziehungen von Feldern in einem Formular

    in Microsoft Access Hilfe
    Beziehungen von Feldern in einem Formular: Guten Tag, vielleicht kann mir jemand weiterhelfen, ich bin schon seit einigen Versionen aus Access raus, nun muss ich mich wieder damit beschäftigen/einlesen. (Ich nutze Access in der aktuellen...
  5. Wert aus Formular-Feld an SQL-Statement übergeben

    in Microsoft Access Hilfe
    Wert aus Formular-Feld an SQL-Statement übergeben: Hallo werte Access-Helfer, ich möchte in einem Unterformular (neues Angebot anlegen) nur die Werte in einer DropSown-Box angezeigt bekommen, die zu diesem Hauptformular (Kontakte dieses Kunden)...
  6. Inhalte aus 4 Feldern aus aktuellem Formular in Zwischenablage kopieren

    in Microsoft Access Hilfe
    Inhalte aus 4 Feldern aus aktuellem Formular in Zwischenablage kopieren: Hallo und guten Morgen, ich möchte die Inhalte von 4 Feldern (NICHT den ganzen Datensatz) per Button-Klick aus dem aktuellen Formular in die Zwischenablage kopieren, um diese dann z.B. in eine...
  7. Daten in bestimmtes Feld in Access Formular

    in Microsoft Access Hilfe
    Daten in bestimmtes Feld in Access Formular: Hallo, ich möchte eingescannte Daten über eine Software via Javascript in ein bestimmtes Feld in Access schreiben. Das Schreiben in eine bestimmte Tabelle ist mir klar und über ein normales...
  8. Feld aus Formular 1 im Formular 2 darstellen

    in Microsoft Access Hilfe
    Feld aus Formular 1 im Formular 2 darstellen: Hi vlt kann mir ja jemand Helfen oder hat eine Idee, vlt habe ich auch nur einen Denkfehler. Es geht um das frm_RechnungErstellen, das ist rechts unten ein Feld Gesamtsumme. Dieses Feld müsste in...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden