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 |