verändertes layout nicht speichern

Hallo,

geht eher um VBA-Code den ich suche: und zwar möchte ich im Code die Frage „Das Layout von Unterfenster XY wurde verändert. Möchten sie das speichern?“ unterbinden und das Speichern verhindern. Die Frage tritt auf, wenn ein Form geschlossen werden soll und innerhalb von Unterfenster XY wurde beispielsweise die Spaltenbreite verändert.

DoCmd.SetOption kennt die Eigenschaft wohl nicht

Bitte um Ratschläge und Danke im Voraus!
Kroeger

Hallo Kroeger,

da sich die Access-Versionen zum Teil unterschiedlich verhalten, wäre es hilfreich zu wissen, welche Version du nutzt.

geht eher um VBA-Code den ich suche: und zwar möchte ich im
Code die Frage „Das Layout von Unterfenster XY wurde
verändert. Möchten sie das speichern?“ unterbinden und das
Speichern verhindern. Die Frage tritt auf, wenn ein Form
geschlossen werden soll und innerhalb von Unterfenster XY
wurde beispielsweise die Spaltenbreite verändert.

DoCmd.SetOption kennt die Eigenschaft wohl nicht

ne, das hat was mit dem Errorhandler zu tun und nicht mit Optionen!

Aber btw warum zeigst du das Unterformular (Standardansicht) als Datenblatt an? Schalte mal um auf Endlosformular, reihe die Felder entsprechend an, und du hast das Problem nicht mehr.

Grüße aus Essen
Wolfgang

Grüß dich Netwolf,

ahm Access ist Version 2002 SP3, also 10.6501.6626, sorry hat ich vergessen zu zu schreiben.

ne, das hat was mit dem Errorhandler zu tun und nicht mit
Optionen!

Ok, das ist schonmal ein Ansatz danke.

Aber btw warum zeigst du das Unterformular (Standardansicht)
als Datenblatt an? Schalte mal um auf Endlosformular, reihe
die Felder entsprechend an, und du hast das Problem nicht
mehr.

Würde ich, aber in diesem speziellen Fall geht dieser Workaround leider nicht. Erzeuge hier eine Abfrage aus rekursiven Relationen. Ein darauf basierendes Fromular würde fehlerhafte Ergebnisse anzeigen, Access hat meiner Erfahrung nach mit Rekursionen so seine Probleme… Also überlasse ich es Access dieses Formular zu erzeugen, was funktioniert und offenbar auch der einzige Weg ist. Nur, und deshalb meine Anfrage, sobald ich in diesem nun zur Laufzeit erzeugten Subformular das Layout ändere und dann versehentlich das Speichern bestätige wird beim neuerlichen Öffnen weder das Sub- noch das Masterformular richtig dargestellt sondern nur noch als weisse Fläche.

Grüße aus Erfurt
Kroeger

Grüß dich Kroeger,

Access ist Version 2002 SP3, also 10.6501.6626

ok, ist besser als 97 :smile:

Aber btw warum zeigst du das Unterformular (Standardansicht)
als Datenblatt an? Schalte mal um auf Endlosformular, reihe
die Felder entsprechend an, und du hast das Problem nicht
mehr.

Würde ich, aber in diesem speziellen Fall geht dieser
Workaround leider nicht. Erzeuge hier eine Abfrage aus
rekursiven Relationen.

also eine Abfrage, die du als Datenbasis für eine „normales“ UFO nutzen kannst.

Ein darauf basierendes Fromular würde fehlerhafte Ergebnisse
anzeigen, Access hat meiner Erfahrung
nach mit Rekursionen so seine Probleme…

hmm, aber dann doch schon in der Abfrage und nicht erst im Formular?

Also überlasse ich es Access dieses Formular zu erzeugen, was
funktioniert

??? Access kann selbstständig Formulare erzeugen? Habe ich da was verpasst? Wie macht Access dass denn? Würde mich interessieren!!

und offenbar auch der einzige Weg ist.

viele Wege führen nach Rom :smile: ich könnte mir vorstellen, dass es auch noch andere Wege gibt :smile:

Nur, und deshalb meine
Anfrage, sobald ich in diesem nun zur Laufzeit erzeugten
Subformular das Layout ändere und dann versehentlich das
Speichern bestätige wird beim neuerlichen Öffnen weder das
Sub- noch das Masterformular richtig dargestellt sondern nur
noch als weisse Fläche.

klar, da das Formular nur dynamisch erzeugt wird und kein „echtes“ Formular ist! Daher kann es auch nicht gespeichert werden, weil Access nicht weiss wohin! Das Speichern des Formulars landet dann im Access-Nirwana :smile:

Wenn der Code nicht geheim ist etc. kannst du mir gerne mal die DB zukommen lassen. Vielleicht sehe ich dann eher, wo der Haken ist?

Grüße aus Essen
Wolfgang

Grüß dich Kroeger,

Access ist Version 2002 SP3, also 10.6501.6626

ok, ist besser als 97 :smile:

Sehe ich anders…
Nichts geht über 97.

-snip-

Probiert mal Docmd.Close acForm, Me.Name, acSaveNo
Dann ist die Fragerei weg, egal was geändert wurde…

Gruß Joe

Hallo Joe

Probiert mal Docmd.Close acForm, Me.Name, acSaveNo
Dann ist die Fragerei weg, egal was geändert wurde…

Nee, is sie leider nich, sonst hät ich hier nich posten müssen ;o)

Grüße
Kroeger

Hallo Netwolf,

Access ist Version 2002 SP3, also 10.6501.6626

ok, ist besser als 97 :smile:

seh ich auch so :smile:

also eine Abfrage, die du als Datenbasis für eine „normales“
UFO nutzen kannst.

Muss mich etwas korrigieren, es ist eben kein normales UFO. Das eingebettete Objekt verwendet die Abfrage, ja, aber es wird kein Formular draus gebaut, sondern die Abfrage eingebunden.

Ein darauf basierendes Fromular würde fehlerhafte Ergebnisse
anzeigen, Access hat meiner Erfahrung
nach mit Rekursionen so seine Probleme…

hmm, aber dann doch schon in der Abfrage und nicht erst im
Formular?

Ahm doch, während die Abfrage mir die Daten noch so hierarchisch anzeigt wie ich das will, spinnt jedes Fromular was ich nach gleichem Pronzip aufbaue rumm und zeigt mir nicht die durch die Rekursion entstehende Hierarchie sondern alle Datensätze…

Also überlasse ich es Access dieses Formular zu erzeugen, was
funktioniert

??? Access kann selbstständig Formulare erzeugen? Habe ich da
was verpasst? Wie macht Access dass denn? Würde mich
interessieren!!

Wie gesagt ich muss mich hier etwas korrigieren: Hab mir die Abfrage so gebaut wie ich sie will. dann in meinem Hauptform ein eingebettetes Objekt angelegt welches als Datenbasis eben jene Abfrage einbindet.

und offenbar auch der einzige Weg ist.

viele Wege führen nach Rom :smile: ich könnte mir vorstellen, dass
es auch noch andere Wege gibt :smile:

klar, da das Formular nur dynamisch erzeugt wird und kein
„echtes“ Formular ist! Daher kann es auch nicht gespeichert
werden, weil Access nicht weiss wohin! Das Speichern des
Formulars landet dann im Access-Nirwana :smile:

Der Witz ist, das die Anfrage ob das Layout gespeichert werdn soll nicht etwa auf das eingebettete Objekt erfolgt, dann könnt ich deiner Argumentation noch folgen, sondern sie erfolgt auf eben jene Abfrage…

Wenn der Code nicht geheim ist etc. kannst du mir gerne mal
die DB zukommen lassen. Vielleicht sehe ich dann eher, wo der
Haken ist?

Jupp, nachdem ich hier noch ne Weile rummprobiert hab komm ich auf das Angebot gern zurück. Also Mail an dich geht gleich raus.

Grüße
Kroeger

Hallo Joe,

ich habe die DB vorliegen!

Es ist eine Abfrage, die als „Eingebettetes OBJEKT“ auf dem Formular liegt, also KEIN UFO, KEIN Formular das man einfach schießen könnte!

Ich hoffe mit meiner geänderten UFO - Variante kann Kroeger leben :smile:

Grüße aus Essen
Wolfgang

Hallo, Kroeger!

DoCmd.SetOption kennt die Eigenschaft wohl nicht

DoCmd.SetWarnings False

beim Öffnen des Formulars. Wenn das ganze wieder geschlossen ist, SetWarnings ggfs. wieder auf True setzen, damit Rückfragen vorm Speichern/Schließen etc. kommen.

Gruß, Manfred

Hallo Manfred

DoCmd.SetWarnings False

Hmhm hab ich auch schon probiert - schaltet die Meldung auch aus - aaaaber Access die doofe Socke speichert dann einfach ohne zu fragen…sicher ist sicher.

hmmmm, mir kommt da grad ne idee, ich lass euch wissen wenn es was geworden ist ;o)
Grüße
Kroeger

Workaround
Hallo,

für alle die diesen Thread verfolgen und für die die vielleicht vor einem ähnlichen Problem stehen werden. Ich habe einen Workaround gebaut um das Problem zu lösen.

Beim Öffnen des Hauptformulars wird eine Kopie der Abfrage erzeugt und mit einem zufälligen Namen versehen. diese kopierte Abfrage wird eingebettet. Beim Schließen der Hauptforms werden alle Warn-und Fehlermeldungen ausgeschaltet. Dadruch wird zwar ein verändertes Layout trotzdem gespeichert zerstört aber dabei nur die Kopie der Abfrage die nun, da sie nicht mehr gebraucht, wird einen Tritt ins Datennirwana bekommt.

Den Code gibts auf Anfrage.
Danke nochmal allen die geholfen haben
Grüße
Kroeger

… wer macht denn so was - Dinge gibt’s …

Gruß aus dem Norden
Reinhard Kraasch

(http://www.dbwiki.de - das Datenbank-Wiki)