PDA

Vollständige Version anzeigen : Close-Methode


Total Dumm
17.10.2001, 14:10
Hallo ihr schlauen,
ich habe ein Problem mit der close-Methode. Ich möchte das er mich beim schließen fragt, ob ich speichern möchte aber er tut es einfach nicht.
DoCmd.Close [acForm, Formularname], [acSavePrompt]

Es liegt nicht am falschen Formularnamen!!!
Woran kann es noch liegen???
Ich danke schon mal für jede Antwort.

Stema
17.10.2001, 14:28
Wenn Du den Befehl so eingegeben hast, dann wundere ich mich, daß keine Fehlermeldung erscheint.
DoCmd.Close acForm, "Formularname", acSavePrompt
Die Abfrage erscheint allerdings nur, wenn es in dem Layout des Formulars eine Änderung gab.
acSavePrompt ist übrigens die Default-Einstellung, so daß DoCmd.Close acForm, "Formularname" ausreicht.

Total Dumm
18.10.2001, 07:38
Hallo Stema,
wenn Du die Anführungsstriche meinst die habe ich gesetzt und die Klammern habe ich auch nicht mit in den Codegenerator geschrieben und ich hatte acSavePrompt auch weggelassen und ich weiß das er nur fragt wenn ich was geändert habe.Aber trotz alledem macht er nix.Ich weiß nicht was ich noch versuchen soll. Vielleicht fällt dir ja noch was ein.

Total Dumm
19.10.2001, 07:21
Hallo da draußen,
könnte mir jemand nochmal ,mit dem Problem helfen. Ich krieg es immer noch nicht hin.

Stema
19.10.2001, 09:32
Kann es sein, daß die Systemmeldungen im Messenger Service ausgeschaltet wurden?

Oder hast Du per Code die Meldungen unterdrückt?

Oder eine Einstellung in den Access-Optionen? Ich weiß nicht, was es für Folgen hat, wenn man den Haken bei "confirm Document deletions" entfernt.

Alexandra, die zweite
19.10.2001, 10:11
hi!

Gegenfrage, wann soll denn die Meldung erscheinen? Also ich meine jetzt nicht beim Schließen des Formulares, sondern willst du bei Formularänderungen gefragt werden, oder bei Datenänderungen?

Ergo, welcher Sinn steckt hinter der Frage, ob gespeichert werden soll oder nicht?

:-),
Alex

pele
19.10.2001, 11:12
Hi,
das Problem hatte ich neulich auch,allerdings läuft Access bei mir auf einem CITRIX-Server, ich wusste mir absolut nicht zu helfen,da hab ich mein Formular einfach komplett neu erstellt, und dann speicherte er auch wilrklich die Änderungen.

Vielleicht hilfts

Gruß Pele

Total Dumm
12.11.2001, 11:30
Hallo Ihr,

danke erstmal für eure Antworten, Leider war ich eine Weile nicht im Land und konnte mich nicht melden.
Also, wenn mein Formular geschlossen wird (mit der Schaltfläche"Formular schließen" auf der habe ich auch den Befehl platziert), möchte ich das er fragt ob ich die ebend veränderten oder neu eingegebenen Daten speichern soll.
An den Einstellungen in Access ist alles in Ordnung.Ich habe nix ausgestellt oder so und per Code auch nicht. Allerdings habe ich auch keine Lust das Formular nochmals zuerstellen.

Total Dumm
14.11.2001, 13:36
Hallo
trotz der Pause, könnte mir da Jemand nochmal helfen????

Danke schön

Lilli
14.11.2001, 14:37
versuche doch mal folgendes:
in der Formulareigenschaft vor Aktualisierung folgenden Code eingeben:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If MsgBox("Eingabe speichern", vbQuestion + vbYesNo, "Zocor") = vbNo Then
Cancel = True
End If
End Sub

Total Dumm
26.11.2001, 14:21
Hallo Lilli,

ich habe deinen Vorschlag ausprobiert und er bringt mir wirklich jetzt ein Feld, wo er mich fragt, ob ich speichern möchte. Allerdings habe ich immer noch dasselbe Problem, er speichert immer noch auch wenn ich "nein" anklicke.

fantalight
26.11.2001, 15:56
...das Formular wird halt gebunden sein,
...dann speichert er doch sowieso!!!
Gruss T.

Sascha Trowitzsch
26.11.2001, 21:34
acSavePrompt hat überhaupt nichts mit den Daten zu tun!
Damit wird nur entschieden, ob z.B. die Größe des Formulars (bei einem veränderlichen) gespeichert werden soll, etc., also bezieht sich auf das Formular selbst.

Mach doch Folgendes:

- Ins Ereignis "Bei Änderung" des Formulars eine globale Variable auf true setzen.
- Beim Schließen abfragen, ob die Variable true ist.
- Wenn ja, Meldung "Wollen Sie die 'Änderungen speichern?"
- Wenn nein: Me.UNDO, sonst gar nichts, schließlich muss man das Speichern eines Datensatz ja nicht explizit befehlen.

Ciao, Sascha

WST
06.12.2001, 10:51
Hallo Total Dumm,

entweder habe ich dich jetzt falsch verstanden oder alle anderen.

Falls es die anderen waren, versuche dieses mal:

Ereignisprozedur des BtnFormSchliessen:
Beim Klicken

Private Sub BtnFormSchliessen_Click()
Dim Mldg, Stil, Titel, Antwort
Mldg = "Möchten Sie den Datensatz speichern ?" ' Meldung definieren.
Stil = vbYesNo + vbQuestion + vbDefaultButton2 ' Schaltflächen definieren.
Titel = "MsgBox-Demonstration" ' Titel definieren.
Antwort = MsgBox(Mldg, Stil, Titel) ' Meldung anzeigen.
If Antwort = vbYes Then ' Benutzer hat "Ja" gewählt.
MsgBox "Das Formular wird jetzt geschlossen!", vbInformation, "WST - Info" ' Operation ausführen.
DoCmd.Close ' Operation ausführen.
Else ' Benutzer hat "Nein" gewählt.
MsgBox "Es wurde Nein gewählt, hier kann auch ein anderer Befehl abgearbeitet werden", vbExclamation, "WST - Info"
GoTo Ende
End If
Ende:
End Sub

das löst folgendes aus:
Vor dem Schliessen des Forms wirst du gefragt, ob du speichern möchtest.
Bei "Ja" wird das Form geschlossen, (Du kannst ja noch andere Befehle einbringen)
Bei "Nein" bleibt das Form öffen mit dem gerade eingegebenen Datensatz zur weiteren Bearbeitung.

Wenn's das war, super, haben die anderen dich richtig verstanden, hilfts vielleicht jemand anderem, der das liest.

Hth

Winni