Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Hanghuhnjäger am Oktober 11, 2020, 23:32:16

Titel: Formular schließen ohne speichern
Beitrag von: Hanghuhnjäger am Oktober 11, 2020, 23:32:16
Hallo zusammen!

Mit Office 2010 Pro habe ich folgendes Problem:

Wenn ich ein Formular MeinHF (PopUp & gebunden) für Testzwecke 'direkt' öffne und im enthaltenen UF MeinUF die Sortierreihenfolge ändere,
kann ich das Formular ohne jegliche Access-Meldungen schließen.

Dieses (und andere Formulare) ist aber für die Alltagsnutzung in ein Navigationsformular eingebettet.
Wenn ich das Formular über die entsprechende Navigationsschaltfläche öffne, im UF die Sortierreihenfolge ändere und dann über eine Navigationsschaltfläche ein anderes Formular aufrufe, erhalte ich die nett gemeinte, aber ungewollte Abfrage 'Möchten Sie die am Entwurf von Formular MeinUF vorgenommenen Änderungen speichern?'.

Ich möchte Access nicht mit der groben Kelle DoCmd.SetWarnings False komplett stummschalten!

Leider habe ich kein Event gefunden, welches vor Ausgabe der Meldung eintritt, über welches ich MeinUF speichern und somit die Abfrage abfangen kann.

Bleibt mir nur der Weg über die MouseMove-Events oder gibt es einen besseren Weg?

Dank & Gruß

Dirk

P.S.: Dazu kommt noch, dass Access dass UF nicht als geöffnet betrachtet; wenn ich ein Speichern aus dem Navigationsformular heraus mittels DoCmd.Save acForm, Me.Controls("frm_UF").Controls("frm_UF").SourceObject versuche, erhalte ich die Meldung Das MeinUF-Objekt ist nicht geöffnet.
Titel: Re: Formular schließen ohne speichern
Beitrag von: DF6GL am Oktober 12, 2020, 08:08:23
Hallo,


ZitatWenn ich das Formular über die entsprechende Navigationsschaltfläche öffne, im UF die Sortierreihenfolge ändere


wie wird denn hier die Sortierreihenfolge geändert?

Zitatüber welches ich MeinUF speichern
Ich befürchte, das Form wird in der Entwurfsansicht geöffnet. Hier erhebt sich die Frage:  Warum? Welches Konzept steckt da dahinter?

ZitatDazu kommt noch, dass Access dass UF nicht als geöffnet betrachtet; wenn ich ein Speichern aus dem Navigationsformular heraus mittels


Das UF (das HFO im Navigationsformular) ist auch nicht geöffnet, es wird mit einem UFO-Steuerelement lediglich als separate Instanz angezeigt und ist demzufolge (für Access) nicht geöffnet.



Zitatgibt es einen besseren Weg?

Wenn Du erklärst, was Du insgesamt bezwecken willst, dann finden wir einen...
Titel: Re: Formular schließen ohne speichern
Beitrag von: Hanghuhnjäger am Oktober 12, 2020, 20:06:14
Hallo,

Zitat von: DF6GL am Oktober 12, 2020, 08:08:23wie wird denn hier die Sortierreihenfolge geändert?
sorry, vergessen zu erwähnen:
Standardansicht UFO: Datenblatt
Sortieren & Filtern mittels Kopfzeile
Diese individuellen Einstellungen sind erforderlich zur Nachverfolgung von Vorgängen verschiedener Personen nach unterschiedlichen Kriterien.

Zitat von: DF6GL am Oktober 12, 2020, 08:08:23Ich befürchte, das Form wird in der Entwurfsansicht geöffnet. Hier erhebt sich die Frage:  Warum? Welches Konzept steckt da dahinter?
Dem UFO des Navigationsformulars wird die Datensatzquelle ausschließlich mittels Navigationsschaltfläche zugewiesen,
ein vergessenes acDesign scheidet somit (IMHO) aus.

Zitat von: DF6GL am Oktober 12, 2020, 08:08:23Das UF (das HFO im Navigationsformular) ist auch nicht geöffnet, es wird mit einem UFO-Steuerelement lediglich als separate Instanz angezeigt und ist demzufolge (für Access) nicht geöffnet.
OK, das leuchtet ein.

Zitat von: DF6GL am Oktober 12, 2020, 08:08:23Wenn Du erklärst, was Du insgesamt bezwecken willst, dann finden wir einen...
Prima, das macht Hoffnung!
Ziel: Entweder vermeiden, dass die Abfrage erfolgt oder die Abfrage mittels Event abfangen und per VBA die Änderung speichern/verwerfen & die Datensatzquelle ändern.

BTW, das Verhalten ist gar nicht so ungewöhnlich:

Dank & Gruß
Titel: Re: Formular schließen ohne speichern
Beitrag von: Beaker s.a. am Oktober 12, 2020, 20:20:04
@Hanghuhnjäger
Zitatin der neuen DB, wenn dem Navigationsformular-UFO über eine Navigationsschaltfläche eine neue Datensatzquelle zugewiesen wird.
Ja, weil zu diesem Zeitpunkt das aktuell geöffnete Form geschlossen
wird. Das Navi-Form zeigt ja immer nur ein Form an.
gruss ekkehard
Titel: Re: Formular schließen ohne speichern
Beitrag von: DF6GL am Oktober 12, 2020, 20:31:54
Hallo,

das ist alles mysteriös.

Die Filterung und Sortierung mittels Dropdown-Menüs in der Kopfzeile bei der Datenblattansicht wird IMHO nicht gespeichert (Bin mir jetzt nicht sicher, ich habe diese Methode nur selten verwendet).  Die Speicher-Meldung hat vermutlich eine andere Ursache..

Kannst Du die Db oder eine Beispiel-Db hier hochladen, an der man das nachvollziehen kann?


PS:

Zitatwenn dem Navigationsformular-UFO über eine Navigationsschaltfläche eine neue Datensatzquelle zugewiesen wird.

Das ist vermutlich falsch ausgedrückt. Es wird keine Datensatzquelle (Datenherkunft) zugewiesen, sondern ein neues "Quellobject" (SourceObject) in Form eines Formularnamens. (Falls die Navi-Schaltfläche standardmäßig benutzt wird und nicht eine Klick-Prozedur bemüht.)

Prinzipiell sollte man sich nicht auf eine automatische Speicherung der aktuellen Einstellungen über diese Dropdown-Menüs verlassen.

Man könnte, wenn es nützt, natürlich mit SetWarnings True/False temporär arbeiten.


Ein Nachsehen und Einstellen in den Optionen in Bezug auf "Warnungen" könnte evtl. hilfreich sein.
Titel: Re: Formular schließen ohne speichern
Beitrag von: Hanghuhnjäger am Oktober 13, 2020, 20:20:22
Zitat von: DF6GL am Oktober 12, 2020, 20:31:54Kannst Du die Db oder eine Beispiel-Db hier hochladen, an der man das nachvollziehen kann?
Aber gerne:
Schliessen_ohne Speichern.zip

Ich habe eine Beispiel-DB zusammengekloppt (das Original hat zu viel Ballast), aber das Prinzip meiner DB wird abgebildet. In meiner DB sind die Herkunftsobjekte der UFOs grundsätzlich Formulare, in dieser Beispiel-DB habe ich versuchsweise beides eingesetzt: Formular ('Buchstaben') und Abfrage ('Ziffern').

zu frmTab:
Soweit logisch, die Herkunftsobjekte sind ja auch nach dem Seitenwechsel noch geöffnet.

jetzt zu frmNavi:
Auch das ist logisch, leider kommen sich die Fürsorge von Access und mein Empfinden dessen, was nützlich ist, in die Quere...

Zitat von: DF6GL am Oktober 12, 2020, 20:31:54Das ist vermutlich falsch ausgedrückt.
In der Tat: Mein Fehler!

Zitat von: DF6GL am Oktober 12, 2020, 20:31:54Man könnte, wenn es nützt, natürlich mit SetWarnings True/False temporär arbeiten.
Das wäre der letzte Ausweg, da ich die Warnings ungerne komplett abwürgen möchte...
Mein Problem in Zusammenhang mit der Betätigung der Navigationsschaltflächen ist, dass ich kein Event finde, mittels dessen ich der Speicher-Abfrage zuvorkommen und diese somit verhindern kann.

Zitat von: DF6GL am Oktober 12, 2020, 20:31:54Ein Nachsehen und Einstellen in den Optionen in Bezug auf "Warnungen" könnte evtl. hilfreich sein.
Da stehe ich auf dem Schlauch?

OK, ich mache Feierabend und widme mich dem Fußball,
schönen Abend allen!!!
Titel: Re: Formular schließen ohne speichern
Beitrag von: Beaker s.a. am Oktober 13, 2020, 22:06:14
Hallo Dirk,
Zitatdass ich kein Event finde, mittels dessen ich der Speicher-Abfrage zuvorkommen und diese somit verhindern kann.
Versuche es bei "Form_Unload" des aktuell angezeigten Forms.
gruss ekkehard
Titel: Re: Formular schließen ohne speichern
Beitrag von: Hanghuhnjäger am Oktober 14, 2020, 18:49:19
Hallo Ekkehard,

die Abfrage erfolgt vor dem Unload-Event, vor Deactivate bzw. Close sowieso.

Ich verstehe halt nicht, warum überhaupt eine Abfrage erfolgt? Die Abfragen
Möchten Sie die am Entwurf von Formular 'frmBuchstabenUF' vorgenommenen Änderungen speichern?bzw.
Möchten Sie die am Entwurf von Abfrage 'qryZiffern' vorgenommenen Änderungen speichern?sollten doch voraussetzen, dass die entsprechenden Objekte im Entwurfsmodus geöffnet sind?

Bei frmTab ist es übrigens sehr seltsam:

Hilft mir allerdings nicht weiter, da ich frmTab lediglich zum Vergleich Registersteuerelement/Navigationsformular erstellt habe...
Titel: Re: Formular schließen ohne speichern
Beitrag von: Hanghuhnjäger am Oktober 14, 2020, 19:43:45
Na also, geht doch: Das Enter-Ereignis des Navigationssteuerelements wird VOR der Abfrage ausgelöst...

In der entsprechenden Prozedur die OrderBy-Eigenschaft auf den Wert vbNullString setzen (Ordnung muss sein) und die sonst trotzdem erscheinende Abfrage mittels
DoCmd.SetWarnings Falseunterdrücken.

Dann die Warnings mittels einer Funktion, welche dem Open-Ereignis der Formulare zugewiesen wird, direkt wieder aktivieren, feddich!

Rätselhaft bleibt, warum überhaupt das Speichern am Entwurf abgefragt wird...