Office: (Office 2003) Unterformular nicht speichern

Helfe beim Thema Unterformular nicht speichern in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Da ich gerade absolut keinen Bock haben an meinen Texten für die Homepage zu schreiben (wenn wundert es nach über 2 Wochen Hilfe schreiben ^^) im... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von hcscherzer, 11. April 2010.

  1. Unterformular nicht speichern


    Da ich gerade absolut keinen Bock haben an meinen Texten für die Homepage zu schreiben (wenn wundert es nach über 2 Wochen Hilfe schreiben ^^) im Anhang die Lösung.

    Man kann die Daten im UFO ändern und wenn man im HF auf 'Undo für UFO' clickt werden die Änderungen rückgängig gemacht. Clickt man an irgendeine andere Stelle werden die Daten im UFO gespeichert.

    Der primitive aber wirkungsvolle Trick liegt in dem Rechteck das um den Button 'Undo für UFO' herum liegt. ^^

    Ja klar ... nicht elegant ... aber es funktioniert. Und ist noch problemlos um weitere Funktionen die die modulweite Variabele im frmTest1 setzen erweiterbar.

    Gruß

    Rainer
     
    raist10, 13. April 2010
    #16
  2. Die Idee gefällt mir aber. *wink.gif*

    /edit: und warum nicht elegant? .. mit wenigen übersichtlichen Code-Zeilen kann man das gewünschte Verhalten erreichen. Also ich empfinde so etwas dann durchaus als elegant. *Smilie
    Und wer will, könnte die Rechtecke auch weglassen und statt dem Rechteck die Section (im Beispiel den Detailbereich) des Formulars verwenden.
     
    Josef P., 13. April 2010
    #17
  3. \@all: Danke schon mal für die rege Anteilnahme.

    Nachdem es schon ein bisschen später geworden ist und ich eben alle Eure Beiträge interessiert gelesen habe, melde ich mich noch mal zu Wort.

    Genau so isses ... und dazu kommt noch der Wunsch, diesen Schalter für alle verwendeten UFOs benutzen zu können.

    Die Crux ist, wie Josef klar gemacht hat, dass der Moment, wenn der Button im HF den Fokus erhält, der Satz bereits gespeichert ist, also das .Undo zu spät kommt. Das hatte ich nicht bedacht.

    @Eberhard: aus dem Grund bringt auch der Kontrollwert im HF nichts, er ist ja nicht vorbelegt.

    @Klaus: ans nachträgliche Löschen hatte ich auch schon gedacht, die ID wird aber erst beim physikalischen Speichern vergeben, das BE ist eine PostreSQL DB. Aber es kommt so einfach nur für neue Datensätze in frage ( Josefs Einwand).

    Jetzt will ich doch nochmal die Lösung von Rainer anschauen. Melde mich gleich noch einmal.
     
    hcscherzer, 13. April 2010
    #18
  4. Unterformular nicht speichern

    Juup, richtig ... soweit war ich noch nicht mit den Überlegungen dazu. Brauchte erstmal für die Lösung nur einen Weg der die boolsche wieder zurück setzt um das Speichern wieder zu ermöglichen, sprich das normale Verhalten des UFOs nicht konstant verhindert. Auf die Schnell fiel mir das Rechteck als Erstes ein ... aber nach Deinem Hinweis ... klar, der Detailbereich des Formulares tut es absolut genauso, bzw. sogar besser wenn man für mehrere Buttons die Rücksetzung braucht.

    Wenn man jetzt noch - wie von Dir angeregt - das Ganze ergänzt mit Event-Handling löst, dann wäre es ja fast schon nahezu perfekt. ^^

    Vielen Dank für die Blumen. *wink.gif*

    Gruß

    Rainer

    EDITH:

    Genau den Part umgeht meine primitive (oder elegante ^^) Lösung. Der Button erhält den Fokus und macht dadurch (im wahrsten Sinne des Wortes ) die Änderungen im UFO rückgängig. Und kann problemlos in jedes UFO integriert werden mit ein paar kurzen Zeilen.

    EDITH II: Sollen die UFO's in einem anderen HF oder solo ohne diese Möglichkeit funktionieren, kann man ja die Prüfung auf Me.Parent vorschalten um zu entscheiden ob der Code zur Anwendung kommt oder nicht.
     
    raist10, 13. April 2010
    #19
  5. Ich komme heute nacht nicht mehr dazu, dass am 'lebenden Modell' auszuprobieren. Aber auf den ersten und auch noch auf den zweiten Blick ist das eine bestechend einfache Lösung. Und elegant finde ich die ebenfalls. Kompliment.

    Das .BeforeUpdate() im UF tritt erst ein, wenn das HF den Fokus erhält aber das MouseMove Ereignis im HF lässt sich unabhängig davon abfragen (Detailbereich ist für diesen Zweck optimal, weil das Rechteck muss man ja auch erst mal erwischen) und da ist der Vorschlag von Eberhard mit der Vorbelegung doch noch zu bewerkstelligen.

    Vielen Dank an alle für die kreative Mit- und Zusammenarbeit zu später Stunde.
     
    hcscherzer, 13. April 2010
    #20
  6. Das Rechteck erwischt Du immer, es sorgt nur dafür das beim verlassen des Buttons die boolsche zurück gesetzt wird um das normale Speicherverhalten des UFO'S wieder zu aktivieren. Und der Weg den Button-Bereich zu verlassen führt zwangsläufig über das Rechteck ... es gibt keinen anderen Weg hinaus.

    Danke.

    Gebe aber auch gerne zu, dass ich selbst nicht damit gerechnet habe das es so simple zu realisieren ist mit dem Ansatz über BeforeUpdate in Kombi mit MouseMove und daher selbst überrascht war das die Ausarbeitung der Idee dann zu so einer simplen Lösung führte.

    So im Nachgang betrachtet wäre es aber überlegenswert den Ansatz weiter auszuarbeiten, da er jegliche Probleme löst wenn jmd vor Speicherung eines DS in einem UFO irgendwelche vorab auszuführenden Aktionen durchführbar/wählbar machen möchte. *grübel*

    Gruß

    Rainer
     
    raist10, 13. April 2010
    #21
  7. Ich habs noch mal aufgemacht.

    @Rainer: das Rechteck brauche ich nicht, wenn ich den Flag blnCancel im Detailbereich_Mouseover() auf False und nur im escButton_Mouseover() auf True setze ...

    Aber es gibt ein anderes Problem: wenn die BeforeUpdate Prozedur des UF fertig abgearbeitet ist, wird die escButton_Click() Prozedur des HF nicht mehr ausgeführt. Ist ja auch irgendwie verständlich: vor dem Click() Ereignis tritt der Fokus- und damit der Datensatzwechsel ein und damit wird die BeforeUpdate Prozedur ausgelöst, der Fokus wechselt zurück (warum eigentlich?) und das Click Ereignis im HF gerät in Vergessenheit als hätte es es nie gegeben ...

    Gibt es eine Chance, das zu überlisten oder muss ich alles, was ich sonst noch in der Button_Click Prozedur tun wollte (UF schließen hauptsächlich und ggf. gleich ein weiteres UF öffnen), in eine globale Prozedur verlagern? Die ich dann alternativ aus der HF_Button_Click und der UF_Before_Update aufrufe ...
     
    hcscherzer, 14. April 2010
    #22
  8. Unterformular nicht speichern

    Ganz ehrlich ... habe nur das mal als Grobkonzept gestern auf die Schnelle hingezimmert (wollte ja irgendwie schon zeigen das der Ansatz über BeforeUpdate funktionieren kann ^^) und nach dem es funktioniert hat, mich auch nicht wirklich mit einer Verfeinerung/detaillierte Ausarbeitung auseinander gesetzt.

    Hatte ich ja geschrieben ... der Button selber ist eigentlich nur Makulatur und eher als Ziel-Target für die Maussteuerung zu sehen, sonst nichts. Im Prinzip wird dem User nur vorgegaukelt das er die Undo-Aktion durch den Button-Klick ausführt. ^^

    Aber ich glaube ich habe da eh schonmal drüber nachgedacht und eine Idee im Hinterkopf ... mal gucken ob ich die auch so einfach umgesetzt bekomme. *wink.gif*

    Melde mich dazu dann nachher nochmal. Werde dann gleich mal einen Verfeinerungsansatz den Josef P. da noch reingebaut hat gleich mit übernehmen. (@ Josef P. ... hoffe das ist okay *g*).

    Gruß

    Rainer
     
    raist10, 14. April 2010
    #23
  9. Wenn der User über den Button drüber geht, wird die Boolsche gesetzt. Klickt er nun nicht den Button und und klickt an einer anderen Stelle des Formulares würde dann wegen der fehlenden Zurücksetzung der Boolsche trotzdem das Undo ausgelöst werden. Wie löst Du den die Zurücksetzung ohne Rechteckt/Detailbereich? Denn wenn die Boolsche gesetzt ist bekommst Du ja die Speicherung des DS im UFO nicht mehr hin, weil nun konstant Undo ausgelöst wird. Oder was verstehe ich falsch?

    Nein musst Du nicht.

    Im Anhang die Lösung dafür, dass Button_Click Ereignis wird nachdem Undo normal abgehandelt. Gleichzeitig ist es jetzt so gestaltet, dass Du die UFO's nicht mehr mit Code-Bestückung musst. Die brauchen nur noch ein BeforeUpdate-Ereignis (kein Code nötig) und Ende. Passt dann wohl auch nochmals besser zu Deiner Problemstellung.

    Die Lösung basiert aber rein auf der Verfeinerung von Josef P., der den Ansatz aus meiner Lösung in ein Event-basierendes Handling umgewandelt hat.

    Gruß

    Rainer
     
    raist10, 14. April 2010
    #24
  10. So, nach dem Abendessen wollte ich nochmal schnell probieren ob meine Idee im ursprünglichen Ansatz (also den ohne Josef's Verfeinerung) auch funktionieren würde und war mal wieder überrascht wie einfach es zu realisieren war ... einfach nachdem Undo im UFO das Click-Ereignis im HF aufrufen (dieses durch Umstellung auf Public auch von aussen aufrufbar gemacht).

    Wiederum nur als Grobkonzept ohne Verfeinerung im Detail, wollte ja nur sehen ob es auch so geht. ^^

    Im Anhang die Lösung ohne Event-Handling aber mit Ausführung des kompletten Click-Ereignisses des Undo-Buttons.

    Gruß

    Rainer
     
    raist10, 14. April 2010
    #25
  11. Stimmt nicht, da 'außerhalb' des Button ja der Detailbereich ist und dort, also beim 'Verlassen' des Button-Bereichs, beim MouseOver der Flag wieder zurückgesetzt wird.

    Danke für Deine Beispieldatenbanken.
    Wahrscheinlich werde ich aber morgen früh erst dazu kommen, es auszuprobieren. Bin gespannt.

    Hab es mir jetzt doch gleich mal angeschaut.
    Hab ich da was übersehen? Ich finde in Josefs Beiträgen nichts dazu ...

    In Deinem dritten Beispiel aus #25 mit dem Aufruf des Click aus dem UFO müßte dieser ja auch noch in die AfterUpdate Prozedur des UFO für den Vorgang, wenn der UFO Datensatz nicht verworfen wird ... insofern finde ich die 'Variante 1' aus #24 eleganter. Kann das aber an meinem Projekt erst morgen ausprobieren (mit mehreren UFOs), da ich hier zu Hause die externen DB Server nicht erreiche und insofern auch die Entwicklungs MDB nicht testen kann.

    Vielen Dank jedenfalls und eine angenehme Nachtruhe.
     
    hcscherzer, 14. April 2010
    #26
  12. Oki ... hab Dich falsch verstanden. Dachte Du meintest Du brauchst weder Rechteck noch Detailbereich ... daher war ich etwas stutzig. Klar, Detailbereich tut es genauso, bzw. effektiver wenn man vllt noch andere Buttons nutzen will die Aktionen im HF ohne Speicherung und auch ohne Undo möglich machen.

    Darfst Du auf die Verfeinerung von Josef sein. Die Ergänzung meiner Variante fällt auch wieder in die Kategorie: Simple und wirksam. ^^

    Gruß

    Rainer
     
    raist10, 14. April 2010
    #27
  13. Unterformular nicht speichern

    Naja, so aufregend ist die Umstellung auf Ereignisse auch wieder nicht. *wink.gif*

    Was noch interessant wäre: wie bringt man das Konzept einigermaßen stabil für "Mausflitzer"? (Also dann, wenn die die Mausbewegung über den Detailbereich nicht bemerkt wurde und somit die Hilfsvariable nicht auf False zurückgestellt wurde.)
     
    Josef P., 14. April 2010
    #28
  14. Ist gar nicht interessant ... wir beide haben nur die dicken fetten Tomaten auf den Augen kleben. ^^

    Hier die Lösung im Rainer-Style ... primitiv aber wirksam *breitgrins*:

    Code:
    Damit hat sich das Thema zurücksetzen über Rechteck oder Detailbereich oder überhaupt komplett erledigt. *lach*

    Bzw. wird das zurücksetzen am Ende der Aktion grundsätzlich erledigt, weil jetzt ja nur noch das Ganze anläuft wenn der User auch wirklich die linke Maustaste für die Ausführung auf den Buttons gedrückt haben muss. Teste gerade noch ... und lade dann die neue Version hoch.

    Gruß

    Rainer

    P.S.: Die Hilfsvariabele strCaseButton sorgt jetzt auch noch dafür das man nun gezielt auswerten kann welcher Button wurde im HF geclickt um im UFO unterschiedliche Reaktionen im BeforeUpdate ausführen lassen zu können. So kann man nun im HF mehrere Button ansprechen ohne im UFO den DS zu speichern. ^^
     
    raist10, 14. April 2010
    #29
  15. Ich glaub nicht, dass der Button da etwas helfen wird. *wink.gif*
    Button = 0 bedeutet, dass während der Mausbewegung kein Button geklickt wurde.
     
    Josef P., 14. April 2010
    #30
Thema:

Unterformular nicht speichern

Die Seite wird geladen...
  1. Unterformular nicht speichern - Similar Threads - Unterformular speichern

  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-Datensatz aus Hauptformular speichern

    in Microsoft Access Hilfe
    Unterformular-Datensatz aus Hauptformular speichern: Hallo Gemeinde Ich habe folgendes Problem: Wenn sich ein Datensatz in einem Unterformular in Bearbeitung befindet, möchte ich über zwei Schaltflächen im Hauptformular 'Speichern' und 'Abbrechen'...
  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