Access not closing using Switchboard form

M

mc

I am not sure what I am doing incorrectly. I am using Access 2003.

I've read all the posting pertaining to "close & quit access using
Switchboard" and I've added DoCmd.Quit acQuitSaveNone & Application.Quit
acQuitSaveNone, but Access is not closing.

I want Access to close when the user clicks on the button I labelled as Quit
and in my Switchboard table, the Command value = 6. For some reason, Access
is not closing. Here is the code (I've also put in DoCmd.Quit acQuitSaveNone
& Application.Quit acQuitSaveNone in the Case conCmdExitApplication
statement, it's definitely hitting this area as I stepped through the
debugger):

Private Function HandleButtonClick(intBtn As Integer)
' This function is called when a button is clicked.
' intBtn indicates which button was clicked.

' Constants for the commands that can be executed.
Const conCmdGotoSwitchboard = 1
Const conCmdOpenFormAdd = 2
Const conCmdOpenFormBrowse = 3
Const conCmdOpenReport = 4
Const conCmdCustomizeSwitchboard = 5
Const conCmdExitApplication = 6
Const conCmdRunMacro = 7
Const conCmdRunCode = 8
Const conCmdOpenPage = 9

' An error that is special cased.
Const conErrDoCmdCancelled = 2501

Dim con As Object
Dim rs As Object
Dim stSql As String

On Error GoTo HandleButtonClick_Err

' Find the item in the Switchboard Items table
' that corresponds to the button that was clicked.
Set con = Application.CurrentProject.Connection
Set rs = CreateObject("ADODB.Recordset")
stSql = "SELECT * FROM [Switchboard Items] "
stSql = stSql & "WHERE [SwitchboardID]=" & Me![SwitchboardID] & " AND
[ItemNumber]=" & intBtn
rs.Open stSql, con, 1 ' 1 = adOpenKeyset

' If no item matches, report the error and exit the function.
If (rs.EOF) Then
MsgBox "There was an error reading the Switchboard Items table."
rs.Close
Set rs = Nothing
Set con = Nothing
Exit Function
End If

Select Case rs![Command]

' Go to another switchboard.
Case conCmdGotoSwitchboard
Me.Filter = "[ItemNumber] = 0 AND [SwitchboardID]=" &
rs![Argument]

' Open a form in Add mode.
Case conCmdOpenFormAdd
DoCmd.OpenForm rs![Argument], , , , acAdd

' Open a form.
Case conCmdOpenFormBrowse
DoCmd.OpenForm rs![Argument]

' Open a report.
Case conCmdOpenReport
DoCmd.OpenReport rs![Argument], acPreview

' Customize the Switchboard.
Case conCmdCustomizeSwitchboard
' Handle the case where the Switchboard Manager
' is not installed (e.g. Minimal Install).
On Error Resume Next
Application.Run "ACWZMAIN.sbm_Entry"
If (Err <> 0) Then MsgBox "Command not available."
On Error GoTo 0
' Update the form.
Me.Filter = "[ItemNumber] = 0 AND [Argument] = 'Default' "
Me.Caption = Nz(Me![ItemText], "")
FillOptions

' Exit the application.
Case conCmdExitApplication
CloseCurrentDatabase
DoCmd.Quit acQuitSaveNone
Application.Quit acQuitSaveNone

' Run a macro.
Case conCmdRunMacro
DoCmd.RunMacro rs![Argument]

' Run code.
Case conCmdRunCode
Application.Run rs![Argument]

' Open a Data Access Page
Case conCmdOpenPage
DoCmd.OpenDataAccessPage rs![Argument]

' Any other command is unrecognized.
Case Else
MsgBox "Unknown option."

End Select

' Close the recordset and the database.
rs.Close

HandleButtonClick_Exit:
On Error Resume Next
Set rs = Nothing
Set con = Nothing
Exit Function

HandleButtonClick_Err:
' If the action was cancelled by the user for
' some reason, don't display an error message.
' Instead, resume on the next line.
If (Err = conErrDoCmdCancelled) Then
Resume Next
Else
MsgBox "There was an error executing the command.", vbCritical
Resume HandleButtonClick_Exit
End If

End Function
 
C

Clifford Bass

Hi,

The DoCmd.Quit should be all you need. Get rid of the
CloseCurrentDatabase and Application.Quit lines.

Clifford Bass

mc said:
I am not sure what I am doing incorrectly. I am using Access 2003.

I've read all the posting pertaining to "close & quit access using
Switchboard" and I've added DoCmd.Quit acQuitSaveNone & Application.Quit
acQuitSaveNone, but Access is not closing.

I want Access to close when the user clicks on the button I labelled as Quit
and in my Switchboard table, the Command value = 6. For some reason, Access
is not closing. Here is the code (I've also put in DoCmd.Quit acQuitSaveNone
& Application.Quit acQuitSaveNone in the Case conCmdExitApplication
statement, it's definitely hitting this area as I stepped through the
debugger):

[snip]
 
M

mc

Thank you, it worked like a charm!

Clifford Bass said:
Hi,

The DoCmd.Quit should be all you need. Get rid of the
CloseCurrentDatabase and Application.Quit lines.

Clifford Bass

mc said:
I am not sure what I am doing incorrectly. I am using Access 2003.

I've read all the posting pertaining to "close & quit access using
Switchboard" and I've added DoCmd.Quit acQuitSaveNone & Application.Quit
acQuitSaveNone, but Access is not closing.

I want Access to close when the user clicks on the button I labelled as Quit
and in my Switchboard table, the Command value = 6. For some reason, Access
is not closing. Here is the code (I've also put in DoCmd.Quit acQuitSaveNone
& Application.Quit acQuitSaveNone in the Case conCmdExitApplication
statement, it's definitely hitting this area as I stepped through the
debugger):

[snip]
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top