Office: (Office 2007) Problem beim Schliessen eines Formulares

Helfe beim Thema Problem beim Schliessen eines Formulares in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Guten Morgen zusammen, ich habe ein Formular [Formular1] mit einem eingebetteten Formular [frm_Stammdaten_2] mit Unterformular [ufo_Aenderungen]. Ich... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von schwaelbchen, 17. November 2015.

  1. Problem beim Schliessen eines Formulares


    Guten Morgen zusammen,

    ich habe ein Formular [Formular1] mit einem eingebetteten Formular [frm_Stammdaten_2] mit Unterformular [ufo_Aenderungen].

    Ich möchte, wenn ich den Button "Formular schliessen" drücke der sich im [Formular1] befindet, dass die Prozedur schaut ob Änderungen vorgenommen wurden oder nicht:

    -> wenn nein, dann [Formular1] schliessen
    -> wenn ja, dann Änderungen in [frm_Stammdaten_2] und [ufo_Aenderungen] speichern und das [Formular1] schliessen


    Bisher hatte ich meinen Code im eingebetteten Formular [frm_Stammdaten_2] unter "Vor Aktualisierung" laufen, was jedoch so nicht funktionieren darf, WEIL der Code dann schon beim Wechseln vom eingebetteten Formular [frm_Stammdaten_2] ins Unterformular [ufo_Aenderungen] ausgelöst werden würde.


    Jetzt habe ich den folgenden Code im Formular [Formular1] bei "Beim Klicken" stehen, was natürlich auch nicht funktioniert, weil die Änderungen ja nicht in diesem Formular passieren.

    Hat jemand eine zündende Idee ?

    Code:
    :)
     
    schwaelbchen, 17. November 2015
    #1
  2. Hallo,

    in der Access Hilfe gibt es unter Form.Dirty ein Beispiel dafür.
    LG Markus
     
    markusxy, 18. November 2015
    #2
  3. Hallo Markus,

    danke für den Tipp, aber in welchem Formular bzw. an welcher Stelle wende ich das dann wie an ?
     
    schwaelbchen, 18. November 2015
    #3
  4. Problem beim Schliessen eines Formulares

    Antwort:
    [QUOTE
    Ich möchte, wenn ich den Button "Formular schliessen" drücke der sich im [Formular1] befindet, dass die Prozedur schaut ob Änderungen vorgenommen wurden oder nicht:
    [/quote]


    Private Sub Befehl257_Click()

    Hier prüfst du, ob es ungespeichert änderunge gibt.

    if me.dirty oder
    if me.Subform.dirty

    und dann kannst du entsprechen reagieren
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 18. November 2015
    #4
  5. Meinst Du das so ?
    Wenn ja verursacht das bei mir einen "Fehler beim Kompilieren" *frown.gif*

    Code:
     
    schwaelbchen, 18. November 2015
    #5
  6. das sollte wohl lauten
    If Me!Stammdaten.Form.Dirty Then

    da du aber öfter darauf bezug nimmst kannst auch einen Zeiger setzen.
    dim f as form

    set f = me!Stammdaten.Form
    If f.Dirty Then

    dann kannst du in allen spätern Bezügen auf Stammform den Zeiger verwenden.
    LG Markus
     
    markusxy, 18. November 2015
    #6
  7. Danke Markus,

    um ehrlich zu sein, ich bin nicht ganz Syntax-fest. *frown.gif*
    Jetzt kommt zwar keine Fehlermeldung mehr, dafür passiert auch nix mehr wenn ich den Button drücke. Woran kann denn das nun wieder liegen ?
     
    schwaelbchen, 18. November 2015
    #7
  8. Problem beim Schliessen eines Formulares

    Vermutlich ist das (Unter-)Formular nicht "dirty"?
    maike
     
  9. Von der Logik her sollte der Code ausgeführt werden, wenn ein Datensatz geändert, aber nicht gespeichert wurde. Ist das der Fall?
    Wenn ja, dann gibt es einen Fehler. (Ich muss gestehen, ich benutze sehr selten Formular Methoden und Eigenschaften.)
    Wenn nein, dann gilt es die Logik zu ändern.

    Ideal ist eine Vorstellung vom Ablauf. Was sollte unter welchen Bedingungen geschehen.
    LG Markus
     
    markusxy, 18. November 2015
    #9
  10. Also in diesem Formular öffne ich einen bestehenden, bereits "befüllten" Datensatz. Wie ich eingangs bereits schrieb soll wie folgt abgehandelt werden:

    Ich möchte, wenn ich den Button "Formular schliessen" drücke der sich im [Formular1] befindet, dass die Prozedur schaut ob Änderungen in [frm_Stammdaten_2] und [ufo_Aenderungen] vorgenommen wurden oder nicht:

    -> wenn nein, dann [Formular1] schliessen
    -> wenn ja, dann Änderungen in [frm_Stammdaten_2] und [ufo_Aenderungen] speichern und das [Formular1] schliessen
     
    schwaelbchen, 18. November 2015
    #10
  11. Für mich ist leider zu wenig Info.
    Ich gehe jetzt einmal davon aus, es gibt ein MehrfachFormular (MFF) und ein Einfachformular (EFF).
    Es wird ein Datensatz aus dem MFF im EFF geöffnet und bearbeitet.
    Es sind beide Formulare haben dieselbe Datenquelle.

    Stimmt das soweit, oder ist es anders?
     
  12. Anbei mal ein Bild, was hoffentlich Aufschluss gibt.

    Das [Formuar1] beinhaltet das eingebettete [frm_Stammdaten_2] mit dem verbundenen Unterformular [ufo_Aenderungen].
     
    schwaelbchen, 18. November 2015
    #12
  13. Problem beim Schliessen eines Formulares

    Wenn der Button in Formular1 ist und du prüfen willst, ob im Ufo etwas geändert wurde, dann musst du dich darauf beziehen:
    Code:
    Ich hab' grad nicht im Kopf, ob Dirty für das Ufo auch eintritt, wenn nur im Ufo des Ufo Änderungen vorgenommen wurden - das evtl. noch zusätzlich prüfen.

    Wahrscheinlich sind aber durch das Wechseln zum Button im Hauptform die Daten in den Ufos bereits gespeichert
    und somit ist dann nicht mehr "Dirty".

    Dann müsstest du die Prüfung im Ereignis "Vor Aktualisierung" des Ufos unterbringen.

    maike
     
  14. Hallo Maike, schön auch mal wieder von Dir zu lesen. *Smilie

    Also im Regelfall ist es so das wenn im eingebetteten Formular [frm_Stammdaten_2] eine Änderung erfolgt, AUCH ein neuer Eintrag im UFO [ufo_Aenderungen] (das beinhaltet die Änderungshistorie) erfolgt.

    Und wenn ich den im eingebetteten Formular laufen lasse und in das Unterfomular wechsle, wird eben auch die ganze Prozedur ausgefürt, was ja so nicht sein soll.
     
    schwaelbchen, 19. November 2015
    #14
  15. Dann hast du imho nur die Wahl:
    • in beiden Ufos merken, was geändert wurde (OldValue in einer Variablen oder Tabelle speichern)
    • eine public Variable bolAenderung auf true setzen, wenn etwas geändert wurde
    • bei Buttonclick abfragen, ob bolAenderung true, dann Prozedur laufen lassen
    • wenn Änderungen rückgängig gemacht werden sollen, dann die Werte von OldValue aus den Variablen wieder zurückschreiben
    Oder:
    • Du beschränkst dich bei der Änderungs-Prüfung auf das frm_Stammdaten_2,
    • schreibst bei positiver Antwort (Änderungen speichern ja) die benötigten Daten in die Historientabelle
    • und machst erst dann diesen Historien-Datensatz (zum Ergänzen) im Ufo sichtbar (falls das überhaupt notwendig ist).
    maike
     
Thema:

Problem beim Schliessen eines Formulares

Die Seite wird geladen...
  1. Problem beim Schliessen eines Formulares - Similar Threads - Problem Schliessen Formulares

  2. Data Transform, Problem with delimiter

    in Microsoft Excel Hilfe
    Data Transform, Problem with delimiter: Hello Community, I encounter one problem with excel. When I export table from csv I have a delimiter semicolon, but it doesn't work. I found solution. If I would go to Power Query Editor - Split...
  3. Problem Datenstruktur Mitglieds-Datenbank

    in Microsoft Access Hilfe
    Problem Datenstruktur Mitglieds-Datenbank: Hallo Leute, Ich habe eine Frage zu einer Vereins-Mitglieder-Datenbank, die ich erstelle. Die Vereinsmitglieder sind in einer Tabelle erfasst, also Nachname, Vorname, usw. Und es gibt einen...
  4. Seltsames Problem beim Sortieren

    in Microsoft Excel Hilfe
    Seltsames Problem beim Sortieren: Hallo! :) Ich wollte in Microsoft Excel folgende Auflistung so sortieren, dass die Werte neben den Jahreszahlen absteigend aufgelistet werden, die Jahre mit den höchsten Zahlen oben stehen:...
  5. Problem mit verschachtelter WENN Formel

    in Microsoft Excel Hilfe
    Problem mit verschachtelter WENN Formel: HiHo Ich habe ein Problem mit einer verschachtelten WENN Formel. Zur Erläuterung: D11 ist ein Hover, bei dem für die Abfrage "Arbeitstag" und "Zeitausgleich" relevant sind. C11 ist ein Datum. Es...
  6. Problem Formel

    in Microsoft Excel Hilfe
    Problem Formel: Hallo zusammen, ich benötige dringend Hilfe bei einer Formel. Scheinbar habe ich ein Brett vorm Kopf. Es wäre super nett wenn mir jemand helfen kann. Die Formel soll über ein Datum laufen. Ich...
  7. Excel TXT-File Import Problem

    in Microsoft Excel Hilfe
    Excel TXT-File Import Problem: Wenn ich ein txt-File in ein Excel importieren möchte, werden mir nur 4 Spalten anstatt 7 Spalten Angezeigt. Unten in dem Beispiel könnt ihr sehen das txt-File hat daten für 7 Spalten jedoch...
  8. Problem mit Entwicklertool PLUS und MINUS

    in Microsoft Excel Hilfe
    Problem mit Entwicklertool PLUS und MINUS: Hallo. Ich schicke mal ein Beispiel mit. Ich möchte, dass das linke Datum mit =HEUTE() angezeigt wird. Sobald ich den Drücker aktiviere, fängt er aber bei 1900 an. Ich habe =HEUTE() nicht...
  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