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. Outlook Problem

    in Microsoft Outlook Hilfe
    Outlook Problem: Hallo zusammen, ich brauche Hilfe bei folgendem Problem. Ich bekomme pro Woche ca. 44 Mails vom immer gleichen Absender, no-reply@deutschepost.de mit immer dem gleichen PDF-Anhang. Die...
  3. Problem bei Fußnote

    in Microsoft Word Hilfe
    Problem bei Fußnote: Hallo zusammen, habe folgendes Problem. Sobald ich eine Fußnote einfüge, erscheint automatisch am Ende der Seite eine Art Überschrift mit der Zahl 1. Hier der Screenshot. Habe schon alles...
  4. Excel found a problem with one or more formula references in this worksheet

    in Microsoft Excel Hilfe
    Excel found a problem with one or more formula references in this worksheet: Liebes Forum, ich habe ein Problem, das viel durch das Internet geistert, aber nirgendwo gibt es eine erfolgreiche Lösung für: "Excel found a problem with one or more formula references in this...
  5. Zählenwenns Problem

    in Microsoft Excel Hilfe
    Zählenwenns Problem: Hallo. Ich möchte zählen wie oft der Name Person 2 vorkommt aber nur dann wenn darüber ein anderer Name steht. Also in C3 sollte 5 mal stehen aber in C4 nichts bzw. 0 Dann in C8 die 2 und in C9...
  6. Problem mit Seitenzahlen/Seitenbeschriftung

    in Microsoft Word Hilfe
    Problem mit Seitenzahlen/Seitenbeschriftung: Hallo, ich schreibe gerade meine Masterarbeit und habe ein kurioses Problem, bei dem ich nicht weiterkomme. Ich habe eine "beidseitige" Vorlage für die Masterarbeit der Universität verwendet. Da...
  7. 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...
  8. 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...
  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