Benutzer mit den meisten Antworten
Beenden von ACCESS-DB

Frage
-
Hallo ...
Bin ein Neuling hier und habe eine Frage zu Access. Ich habe eine Access-DB, die ich über den Befehl "Application.Quit" in einer SUB beenden kann. Das funktioniert ohne Probleme. Wenn ich in der gleichen Datenbank aber rechts oben das "x" anklicke, hängt sich die DB beim Schliessen in einer Art Endlosschleife auf. Ich kann sie dann nur noch über den Taskmanager manuell schliessen.
Das Problem hatte ich schon unter Access 2003 und jetzt immer noch unter Access 2007
Kann mir da jemand weiterhelfen? Vielen Dank im Voraus.
Gerhard
Antworten
-
Gerhard_1957 wrote:
Bin ein Neuling hier und habe eine Frage zu Access. Ich habe eine
Access-DB, die ich über den Befehl "Application.Quit" in einer SUB
beenden kann. Das funktioniert ohne Probleme. Wenn ich in der
gleichen Datenbank aber rechts oben das "x" anklicke, hängt sich die
DB beim Schliessen in einer Art Endlosschleife auf. Ich kann sie dann
nur noch über den Taskmanager manuell schliessen.
Das Problem hatte ich schon unter Access 2003 und jetzt immer noch
unter Access 2007
...Es ist nicht ganz klar, was du meinst mit:
hängt sich die DB beim Schliessen in einer Art Endlosschleife auf
Was genau passiert da und siehst du vor dir?
Falls du meinst, dass die DB sich schließt, aber Access offen bleibt,
dann gibt es ein paar bekannte Situationen und Ursachen, bei denen
das passiert: s. http://www.donkarl.com?FAQ7.5
Servus
Karl
*******
Access-FAQ: http://www.donkarl.com- Als Antwort markiert Gunter Avenius Dienstag, 23. November 2010 11:36
Alle Antworten
-
Gerhard_1957 wrote:
Bin ein Neuling hier und habe eine Frage zu Access. Ich habe eine
Access-DB, die ich über den Befehl "Application.Quit" in einer SUB
beenden kann. Das funktioniert ohne Probleme. Wenn ich in der
gleichen Datenbank aber rechts oben das "x" anklicke, hängt sich die
DB beim Schliessen in einer Art Endlosschleife auf. Ich kann sie dann
nur noch über den Taskmanager manuell schliessen.
Das Problem hatte ich schon unter Access 2003 und jetzt immer noch
unter Access 2007
...Es ist nicht ganz klar, was du meinst mit:
hängt sich die DB beim Schliessen in einer Art Endlosschleife auf
Was genau passiert da und siehst du vor dir?
Falls du meinst, dass die DB sich schließt, aber Access offen bleibt,
dann gibt es ein paar bekannte Situationen und Ursachen, bei denen
das passiert: s. http://www.donkarl.com?FAQ7.5
Servus
Karl
*******
Access-FAQ: http://www.donkarl.com- Als Antwort markiert Gunter Avenius Dienstag, 23. November 2010 11:36
-
-
Gerhard_1957 wrote:
Access bleibt geöffnet und das zuvor angezeigte Formular "flackert".
Die DB wird nicht geschlossen. Es sieht aus als würde eine
Endlosschliefe durchlaufen. Kannst Du damit etwas anfangen?
...Passiert das nur, wenn dieses spezielle Formular offen ist, oder
auch mit anderen Formularen bzw. gibt's vielleicht ein "Hauptformular",
das immer geöffnet ist?Falls es sich an einem bestimmten Formular festmachen lässt:
Gibt es Code im Ereignis "Beim Entladen" des Formulares
und wenn ja, wie sieht der aus?Hast du vielleicht eine Schließ-Kontrolle für die DB eingebaut
ähnlich wie beschrieben in http://www.donkarl.com?FAQ1.12?
Servus
Karl
*******
Access-FAQ: http://www.donkarl.com -
Gerhard_1957 wrote:
Passiert das nur, wenn dieses spezielle Formular offen ist, oder
auch mit anderen Formularen bzw. gibt's vielleicht ein "Hauptformular",
das immer geöffnet ist?Falls es sich an einem bestimmten Formular festmachen lässt:
Gibt es Code im Ereignis "Beim Entladen" des Formulares
und wenn ja, wie sieht der aus?Hast du vielleicht eine Schließ-Kontrolle für die DB eingebaut
ähnlich wie beschrieben in http://www.donkarl.com?FAQ1.12?
Servus
Karl
*******
Access-FAQ: http://www.donkarl.comSoweit ich festgestellt habe, passiert das bei jedem Formular.
Ja, ich habe einen Code der steuert, was beim Schliessen eines Formulars passiert. Und zwar ist es so, dass ich beim Schliessen eines Formulars über eine Variable (NextFRM) angebe, welches Form sich als nächstes öffnen soll. Der Code zum Öffnen des nächsten Formulars sieht dann so aus:
Public Sub Oeffne_Formular() On Error GoTo lblError If FLAG_LogOff = False Then DoCmd.OpenForm NextFrm End If lblWeiter: Exit Sub
In dem SUB, mit dem ich die DB "normal" beende, wird FLAG_LogOff auf True gesetzt. Damit komme springe ich dann beim "normalen" Schliessen über die If-Abfrage und es wird kein Formular geöffnet.
Ist das verständlich? ... ich hoffe ...
Danke schon mal für Deine Unterstützung.
Gruss
Gerhard_1957
Gerhard_1957 -
Hallo Karl
Ich bin's nochmal. Eine Schliess-Kontrolle habe ich nicht eingebaut. Aber Du hast mich auf eine Idee gebracht. Ich werde eine solche Kontrolle einbauen. Damit verhindere ich, dass der User die DB über das "x" schliessen kann und den "normalen" Weg über das SUB mit "Application.Quit" benutzen muss. Der funktioniert ja.
Aber wenn Du noch eine bessere Idee haben solltest, bin ich Dir für einen Tip dankbar.
Gruss
Gerhard_1957
Gerhard_1957 -
Gerhard_1957 wrote:
...
Ja, ich habe einen Code der steuert, was beim Schliessen eines
Formulars passiert. Und zwar ist es so, dass ich beim Schliessen
eines Formulars über eine Variable (NextFRM) angebe, welches Form
sich als nächstes öffnen soll. Der Code zum Öffnen des nächsten Formulars sieht dann so aus:Public Sub Oeffne_Formular() On Error GoTo lblError If FLAG_LogOff = False Then DoCmd.OpenForm NextFrm End If lblWeiter: Exit Sub
In dem SUB, mit dem ich die DB "normal" beende, wird FLAG_LogOff auf True gesetzt. Damit komme springe ich dann beim "normalen" Schliessen über die If-Abfrage und es wird kein Formular geöffnet. ...
Na, dann hätten wir wohl schon die Problemursache gefunden.
Warum machst du denn diese Abhängigkeit Öffnen/Schließen?Vielleicht lässt sich das anders regeln. Es gibt halt kaum beeinflussbare Möglichkeiten und Situationen, in denen sich ein Formular schließt. D.h. du gibst einen Teil der Kontrolle an Access bzw. Windows ab und hast damit eine potentielle Korruptionsquelle für die DB.
Servus Karl
*********
Access-FAQ: http://www.donkarl.com- Bearbeitet Karl DonaubauerMVP Mittwoch, 17. November 2010 18:21 Formatierung
-
Hallo Karl
Danke für die Antwort. Ich denke, dass ich wohl tatsächlich den Ablauf von Schliessen des einen und Öffnen des nächsten Formulars nochmal überarbeiten muss. Mit Ausnahme der Situation, die ich beschrieben habe, hat dieser Ablauf bis jetzt gut funktioniert. D.h. ich konnte beim Schliessen eines Formulars durch Aufrufen der SUB Oeffne_Formular über die Variable NextFrm angeben, welches Formular sich im Anschluss öffnen soll.
Das klappt natürlich nicht, wenn ich die Applikation schliessen will (und dabei natürlich kein weiteres FRM öfnnen will). Darum musste ich für diesen Fall im SUB mit FLAG_Logoff dafür sorgen, dass das Docmd.OpenForm übersprungen wird.
Wie gesagt, das klappt soweit einwandfrei, bis auf den Fall wo ich die DB über "x" zumache.
Habe zwischenzeitlich den Tipp aus donkarl FAQ 1.12 mit dem versteckten Formular eingebaut und das klappt prima. Aber ich werde mir noch Gedanken über eine andere Steuerung des Ablaufs von Schliessen und Öffnen machen.
Herzlichen Dank für Deine Unterstützung.
Gruss Gerhard_1957
Gerhard_1957 -
Hallo GerhardVersuch's mal so:
Public Sub Oeffne_Formular() On Error GoTo lblError If FLAG_LogOff = False And Me.Name <> NextForm Then DoCmd.OpenForm NextFrm End If lblWeiter: Exit Sub
End Sub
Falls Me.Name nicht existiert, dann versuch's mit Screen.ActiveFrom.Name.
Macht ja keinen Sinn das Formular zu öffnen, das bereits geöffnet ist (ausser wenn Du es mit einem Filter oder anderen Parametern öffnen möchtest)
Gruss
Henry
<Gerhard_1957> wrote in message news:a782dfc0-783f-4644-b586-55ec2434b969@communitybridge.codeplex.com...Public Sub Oeffne_Formular() On Error GoTo lblError If FLAG_LogOff = False Then DoCmd.OpenForm NextFrm End If lblWeiter: Exit Sub
In dem SUB, mit dem ich die DB "normal" beende, wird FLAG_LogOff auf True gesetzt. Damit komme springe ich dann beim "normalen" Schliessen über die If-Abfrage und es wird kein Formular geöffnet.
Ist das verständlich? ... ich hoffe ...
Danke schon mal für Deine Unterstützung.
Gruss
Gerhard_1957
Gerhard_1957 -
Hallo Henry
Danke für den Tipp. Habe aber inzwischen den Rat von Karl befolgt und habe die gesamte Öffnungs- und Schliess-Prozedur nochmals überarbeitet und eine ganz andere Lösung programmiert. Jetzt klappt´s auch so, wie ich mir das vorstelle.
Danke aber für Deinen Tipp. Scheinbar findet man hier ja wirlich nützliche Anregungen. Vielleicht kann ich ja auch mal was brauchbares beitragen und mich so revanchieren.
Gruss
Gerhard_1957
Gerhard_1957