Tipps "n" Tricks
Anwender-Software - Access

Last Update: 24. Dezember 2001/Webmaster

Access 97 wird nicht beendet

Thema:

Access 97

Problem:

Wenn ich versuche, Access 97 über DATEI-BEENDEN zu verlassen, wird die aktuelle Datenbank zwar geschlossen, aber das leere Programmfenster von Access ist weiterhin geöffnet und kann nicht beendet werden. Wie kann ich diesen Fehler beheben?
Lösung: Das ist ein spezielles Problem von Access 97, für das es zwei verschiedene Ursachen geben kann:

1. Recordset- und/oder querydef-Objekt wurde nicht geschlossen

Wenn Sie ein Recordset- oder QueryDef-Objekt verwenden, gehen Sie davon aus, dass es automatisch geschlossen wird, wenn die entsprechende Prozedur beendet ist. In Access 97 sollten Sie aber darauf achten, die Objekte explizit zu schliessen, weil andernfalls der beschriebene Effekt auftreten kann. Also zum Beispiel:

Sub procTestProzedur()
  Dim db As Database
  Dim rs As Recordset
  Dim qd As QueryDef

  Set db = CurrentDb
  Set rs = db.OpenRecordset("Kunden", dbOpenTable)
  Set qd = db.QueryDefs("Rechnungen")

...

  rs.Close
  qd.Close

End Sub

2. Haupt-/Unterformular-Problem

Eine weitere von Microsoft dokumentierte Ursache kann eine bestimmte Konstruktion im VBA-Code von Unterformularen sein. Genauer gesagt, geht es dabei um die Fälle, in denen Sie sich aus dem Unterformular heraus auf ein Steuerelement im Hauptformular beziehen, dass auf "True" getestet wird. Zum Beispiel:

If Me.Parent![Status] Then
   ...
End If


Eine solche Konstruktion führt dazu, dass Access beim Schliessen der Datenbank nicht beendet werden kann. Verwenden Sie daher die folgende Variante:

If Me.Parent![Status] = True Then
   ...
End If

 

Tipps "n" Tricks
Anwender-Software - Access