ACC: Problems Quitting Microsoft AccessLast reviewed: August 29, 1997Article ID: Q164455 |
The information in this article applies to:
SYMPTOMSModerate: Requires basic macro, coding, and interoperability skills. When you click Exit on the File menu in Microsoft Access, the program does not quit. This article assumes that you are familiar with Visual Basic for Applications and with creating Microsoft Access applications using the programming tools provided with Microsoft Access. For more information about Visual Basic for Applications, please refer to your version of the "Building Applications with Microsoft Access" manual.
CAUSEThere are two possible causes for this problem:
RESOLUTIONWhen you use Microsoft Access as an automation server, invoke the Quit method to explicitly close the Microsoft Access object when you are finished with it in your code, and then set its object variable equal to Nothing, for example:
Sub CloseAccess() Dim objAccess As Object Set objAccess = CreateObject("Access.Application") objAccess.Visible = True Msgbox "Microsoft Access is open; this procedure will now close it." objAccess.Quit Set objAccess = Nothing End SubWhen you create Recordset or QueryDef objects in code, explicitly close the object when you are finished with it. Microsoft Access automatically closes those types of objects under most circumstances; however, if you explicitly close the object in your code, you can avoid occasional instances when the object remains open. The following sample code opens and closes a Recordset and a QueryDef object in the Northwind sample database:
Sub CloseObjects() Dim db As Database Dim rs As Recordset Dim qd As QueryDef Set db = CurrentDb Set rs = db.OpenRecordset("Employees", dbOpenTable) Set qd = db.QueryDefs("Invoices") rs.MoveLast MsgBox "The Employees recordset is open." & vbcr & _ "The last Employee ID is " & rs![EmployeeID] & "." Msgbox "The Invoices query definition is open." & vbcr & _ "The first field in the query is " & qd.Fields(0).Name ' Explicitly close the Recordset and QueryDef objects. rs.Close qd.Close End Sub MORE INFORMATION
Steps to Reproduce BehaviorThe following example uses automation to open a second instance of Microsoft Access that will not close:
REFERENCESFor more information about using Microsoft Access as an automation server, search the Help Index for "Automation," and please see the following articles in the Microsoft Knowledge Base:
ARTICLE-ID: Q147816 TITLE : ACC: Using Microsoft Access as an Automation Server ARTICLE-ID: Q145707 TITLE : ACC: Using Automation to Print Microsoft Access Reports |
Additional query words: close down quit stop exit OLE
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |