Office: (Office 2013) Unterformular und berechnete Felder

Helfe beim Thema Unterformular und berechnete Felder in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Forum, ich habe ein Formular mit einem UFo in Datenblattansicht, um die Filterfunktion nutzen zu können. Das UFo enthält in der Fußzeile einige... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Michael O., 6. Mai 2016.

  1. Unterformular und berechnete Felder


    Hallo Forum,

    ich habe ein Formular mit einem UFo in Datenblattansicht, um die Filterfunktion nutzen zu können. Das UFo enthält in der Fußzeile einige Summenfelder, die ich HaFo über berechnete Felder anzeige. So zeigt das HaFo immer die Summen über die aktuell gefilterten Datensätze. Soweit ist die Welt in Ordnung...

    Nun möchte ich im HaFo auch die Summen für die ungefilterten Daten im UfO zum Vergleich anzeigen. Da das UFo intial ungefiltert geladen wird, habe ich zu diesem Zeitpunkt genau die gewünschten Summen und muss sie nur irgendwie abgreifen, z.B. im Form_Open.

    Das Problem:
    Führe ich den Code im Debug-Modus aus, klappt alles wunderbar.
    Im Normal-Modus passiert jedoch - nichts!

    Da berechnete Felder auch kein Change-Ereignis auslösen, kann ich auch hier nicht eingreifen...

    Hat jemand eine Idee, wie ich die Daten zuverlässig abgreifen kann?

    Vielen Dank im Voraus und noch einen schönen Sonntag
    Michael

    :)
     
    Michael O., 6. Mai 2016
    #1
  2. Hallo,

    um deine Frage beantworten zu können, müsste man schon wissen wie (genau!) du die Summen ermittelst. Zeige also bitte den hierzu eingesetzten VBA-Code - oder was auch immer dazu beiträgt.

    Wichtig sind auch Angaben zu den Ereignissen, die hierzu verwendet werden. Also bitte vollständige Prozeduren zeigen und keine Code-Fragmente.
     
    MaggieMay, 8. Mai 2016
    #2
  3. Hallo MaggieMay,

    jawoll, wird gemacht! *wink.gif*

    Am Beispiel eines von 5 berechneten Feldern:
    Im UFo [frm_GERUEST_all_UFo] in Datenblattansicht habe ich ein Tabellenfeld "Stunden".
    Im Formularfuß die Summierung dieses Feldes mit: txt_stunden_sum=Summe([Stunden])
    Im HFo zeige ich das summierte Feld aus dem Formularfuß des UFo an:
    txt_stunden_ges_filter=[frm_GERUEST_all_UFo]![txt_stunden_sum]

    So habe ich im HFo immer die Summe über die aktuelle Filterung.

    Da das UFo beim ersten Laden ungefiltert angezeigt wird, habe ich in diesem Moment in txt_stunden_ges_filter die Summe über alle Datensätze, die ich zum Vergleich ebenfalls anzeigen möchte. Deshalb meine Idee, die Daten in einem geeigneten Ereignis in ein weiteres Feld zu schreiben:
    Form_Load oder Form_Open;
    txt_stunden_ges = frm_GERUEST_all_UFo!txt_stunden_sum

    Im Debug-Modus wird dieses Feld wunderbar gefüllt. In der normalen Ausführung bleibt es aber leer. Und es kommt noch lustiger: Mein Stunden-Feld ist das zweite von 5 berechneten Felder (Reihenfolge im Code). Also habe ich den Haltepunkt mal auf die zweite Code-Zeile gesetzt. Ergebnis im Debug-Modus: das erste Feld ist leer, Felder 2 bis 5 (die im Debug-Modus ausgeführten Code-Zeilen) sind ordnungsgemäß gefüllt.

    Da schaue ich doch etwas ratlos...

    Vielen Dank im Voraus für alle Tipps
    Michael
     
    Michael O., 9. Mai 2016
    #3
  4. Unterformular und berechnete Felder

    MaggieMay fragte nach:
    Eine Hilfestellung ist nur möglich, wenn der Bitte entsprochen wird. Oder ist der Code geheim...?*rolleyes.gif*
     
    elmar, 9. Mai 2016
    #4
  5. Private Sub Form_Open(Cancel As Integer)

    'Summen aus dem ungefilterten UFO in die Gesamt-Zähler übertragen
    '(funktioniert nicht zuverlässig im Form_Load-Ereignis!)
    txt_gerueste_ges = frm_GERUEST_all_UFo![txt_geruest_anz]
    txt_stunden_ges = frm_GERUEST_all_UFo!txt_stunden_sum 'Haltepunkt gesetzt
    txt_auftragssumme_ges = frm_GERUEST_all_UFo!txt_auftragssumme_sum
    txt_stdsatz_avg = frm_GERUEST_all_UFo!txt_stundensatz_avg
    txt_provision_ges = frm_GERUEST_all_UFo!txt_provision_sum

    End Sub
     
    Michael O., 9. Mai 2016
    #5
  6. Sorry für die knappe Antwort, war etwas unter Zeitdruck...

    Im UFo ist kein Code relevant, die berechneten Felder habe ich ja aufgelistet.
    Den Code im HFo habe ich gepostet.

    Spannend ist, dass der Code im Debug-Modus einwandfrei funktioniert, in der realen Ausführung aber kein Ergebnis bringt. Ich habe gelernt, dass die Daten des UFo als erstes geladen werden vor dem HFo. Also müssten die Summenfelder für das HFo doch zur Auswertung zur Verfügung stehen. Scheint aber nicht so zu sein...

    Da ich die Summenfelder des UFo nur beim ersten Laden (wenn das UFo ungefiltert ist) übernehmen möchte, fällt mir auch kein anderes Ereignis ein. Als einzige Alternative könnte ich mir vorstellen, im HFo das Datenblatt des UFo in ein Recordset zu laden und durchzulesen, um die Summenwerte so "zu Fuß" zu ermitteln... Aber elegant ist das gerade nicht...

    Viele Grüße
    Michael
     
    Michael O., 11. Mai 2016
    #6
  7. Hallo,

    mich stört auf den ersten Blick die Syntax, bspw. bei Code:
    Wie sieht es denn aus, wenn du es folgendermaßen versuchst: Code:
    vorausgesetzt, "frm_GERUEST_all_UFo" ist der Name des Unterformular-Steuerelements.
     
    MaggieMay, 11. Mai 2016
    #7
  8. Unterformular und berechnete Felder

    Hallo Maggie,

    herzlichen Dank für Deine schnelle Antwort!

    Das Verhalten ist leider identisch.
    Name des Steuerelements und des Herkunftsobjekts sind identisch: frm_GERUEST_all_UFo.

    Viele Grüße
    Michael
     
    Michael O., 11. Mai 2016
    #8
  9. Sorry, dass ich das übersehen hatte, Form_Open ist definitiv das falsche Ereignis.
    Versuche es mit Form_Load oder Form_Current - je nachdem wie die Dinge liegen.
     
    MaggieMay, 11. Mai 2016
    #9
  10. Hallo Maggie,

    das Current-Ereignis im HFo wird bei mir gar nicht ausgelöst, das Open-Ereignis schon.

    Ich glaube, der entscheidende Punkt liegt bei den berechneten Feldern im Formularfuß des UFo. Offenbar gehorchen diese nicht der üblichen Ereignis-Reihenfolge. Beim Laden des Formulars sieht man, dass die berechneten Felder leicht zeitverzögert angezeigt werden (vllt. eine Sekunde).

    So sieht es auch beim Debug aus. Vor dem Haltepunkt sind die HFo-Felder leer ("NULL"), die berechneten Felder des UFo zeigen jetzt, beim Debuggen, aber den korrekten berechneten Inhalt.

    Noch ein weiterer Test:
    Ich habe einfach mal das erste berechnete Feld "txt_geruest_anz" in ein ungebundenes Feld umgewandelt mit einem Standardwert von "42".
    Und sofort wird der Wert "42" im HFo angezeigt!

    Es geht also "nur noch" um die Frage: wie bekomme ich zuverlässig (!) mit, dass das UFo seine berechneten Felder fertig berechnet hat.

    Viele Grüße
    Michael
     
    Michael O., 11. Mai 2016
    #10
  11. Hi,

    anstatt die Zuweisungen per VBA vorzunehmen, kannst du die Ausdrücke (=Referenz auf die Ufo-Felder) auch direkt als Steuerelementinhalt der Textfelder im HF eintragen.
     
    MaggieMay, 12. Mai 2016
    #11
  12. Hallo Maggie,

    das mache ich auch so, um die Ergebnisse / Summen des gefilterten UFo im HFo anzuzeigen. Das klappt.

    Ich benötige aber zusätzlich die Ergebnisse / Summen des ungefilterten UFo im HFo. Und das klappt eben nicht.

    Ich habe mir jetzt so geholfen, dass ich im HFO beim Laden einmalig alle Datensätze des UFO durchlese und die Werte aufsummiere. Das klappt gut, auch bei großen Datenmenge.

    Mir ist es irgendwie unheimlich, wenn ich nicht weiß, wann diese berechneten Felder von Access erstellt werden und ich kein Ereignis kenne, um sie abzugreifen. Berechnete Felder in Access verhalten sich ja offensichtlich bzgl. der Ereignisse anders als "normale" Datenfelder.

    Viele Grüße
    Michael
     
    Michael O., 13. Mai 2016
    #12
  13. Unterformular und berechnete Felder

    Hi Michael,

    schau mal, ob Du daraus schlau wirst (ich nicht).

    Gruß
    Ralf
     
    drambeldier, 14. Mai 2016
    #13
  14. Zwischenfrage:
    Wie bekommt man in der Datenblattansicht eine Formularfußzeile?

    Sowie: Ehe man sich im Gewirr von Abhängigkeiten, berechneten Feldern und Ereignissen verheddert, kann man sich Daten unmittelbar aus Tabellen bzw. Abfragen holen (=> Grundfertigkeit eines DB-Entwicklers).
    Eine solche Abfrage könnte auch selber die gewünschten Summen berechnen, wahlweise mit zusätzlichem Formularfilter als auch ohne.

    Dabei könnte man die Summenabfrage ohne Formularfilter über ein einzeiliges zusätzliches Unterformular unmittelbar in das Hauptformular einbinden.
     
    ebs17, 14. Mai 2016
    #14
  15. \@Ralf
    Ich auch nicht wirklich...
     
    Michael O., 15. Mai 2016
    #15
Thema:

Unterformular und berechnete Felder

Die Seite wird geladen...
  1. Unterformular und berechnete Felder - Similar Threads - Unterformular berechnete Felder

  2. Schriftart einer Tabelle im Unterformular verändern

    in Microsoft Access Hilfe
    Schriftart einer Tabelle im Unterformular verändern: Hallo, wie kann ich die Schriftart einer Tabelle ( Datenblatt ) im Unterformular verändern. Also nicht Global für alle! Mit freundlichen Grüßen
  3. Unterformular schrumpfen

    in Microsoft Access Hilfe
    Unterformular schrumpfen: Hallo, ich stehe gerade vor dem Problem, dass ich eine DB auf Rechnern mit verschiedener Auflösung laufen lasse. Meine Lösung: Alle Steuerelemente um den Faktor 0,73 verkleinern, ebenso deren...
  4. MS Access Formular: Datensatz duplizieren mit Unterformularen

    in Microsoft Access Hilfe
    MS Access Formular: Datensatz duplizieren mit Unterformularen: Hallo Ihr Lieben, ich bin ziemliche Anfängerin bei MS Access also nehmt es mir nicht übel, wenn ich Dinge falsch bezeichne etc. :) Ausganslage Ich hab ein Hauptformular (1) (Angaben zur...
  5. Listenfeld im Endlosformular

    in Microsoft Access Hilfe
    Listenfeld im Endlosformular: Hallo in die Runde! Ich stehe gerade furchtbar auf dem Schlauch und hoffe, ihr könnt mir helfen: Problemkind ist eine Art Zimmerverwaltung: - jedes Zimmer hat eine ID und ist einem Objekt...
  6. Spaltenposition in Unterformular ermitteln

    in Microsoft Access Hilfe
    Spaltenposition in Unterformular ermitteln: Hallo, ich habe ein Unterformular erstellt, welches auch direkt editierbar ist. Das funktoniert soweit gut. Nun möchte ich in VBA aber abfragen in welcher Spalte der Cursor aktuell steht. In...
  7. Formular/ Unterformular/ m:n Beziehung

    in Microsoft Access Hilfe
    Formular/ Unterformular/ m:n Beziehung: Hey Ihr Lieben, ich versuche nun ein schickes Formular zu erstellen. Von der Haupttabelle gehen ca. acht 1:n Tabellen ab, hiervon ca. vier n:m Tabellen. Mein Ziel: Das Formular so weit es geht...
  8. Unterformular berechnetes Feld in Textfeld schreiben

    in Microsoft Access Hilfe
    Unterformular berechnetes Feld in Textfeld schreiben: Hallo zusammen, ich habe in meinem Ufo ein berechnetes Feld das Daten aus meinem Hafo enthält. Nun möchte ich das wenn dieses Feld in meinem Hafo geändert wird, bei allen Datensätzen im Ufo das...
  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