Hale, Jim
Jim.Hale at FleetPride.com
Fri Aug 19 14:35:53 CDT 2005
Aren't you iterating through the entire forms collection? So even if a form is closed you are attempting to close it? How about Function CloseAllForms() Dim i As Integer, strFrmName as string ' Loop through the collection of open forms and close them (except for the main menu) If Forms.Count > 0 Then For i = Forms.Count - 1 To 0 Step -1 strFrmName=Forms(i).Name If strFrmName <> "frmMainMenu" Then If IsFormOpen(strFrmName)= true then DoCmd.Close acForm, strFrmName End If Next i End If End Function Public Function IsFormOpen(strFormName As String) As Boolean On Error GoTo PROC_ERR IsFormOpen = (SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> 0) PROC_EXIT: Exit Function PROC_ERR: MsgBox "Error: " & Err.Number & ". " & Err.Description, , _ "IsFormOpen" Resume PROC_EXIT End Function Jim Hale -----Original Message----- From: Barbara Ryan [mailto:BarbaraRyan at cox.net] Sent: Friday, August 19, 2005 2:11 PM To: Access Developers discussion and problem solving Subject: Re: [AccessD] Close All Forms It dies after the "End Function" line is executed. ----- Original Message ----- From: "Josh McFarlane" <darsant at gmail.com> To: "Access Developers discussion and problem solving" <accessd at databaseadvisors.com> Sent: Friday, August 19, 2005 2:50 PM Subject: Re: [AccessD] Close All Forms > On 8/19/05, Barbara Ryan <BarbaraRyan at cox.net> wrote: > > I have used the following code successfully in Access 97 to close all forms when a specific function key is pressed. However, in Access 2002, this code causes the error box to appear (with the 2 options to send an error report to Microsoft or not) and then closes Access. Does anyone know why? > > > > Function CloseAllForms() > > Dim i As Integer > > ' Loop through the collection of open forms and close them (except for the main menu) > > If Forms.Count > 0 Then > > For i = Forms.Count - 1 To 0 Step -1 > > If Forms(i).Name <> "frmMainMenu" Then > > DoCmd.Close acForm, Forms(i).Name > > End If > > Next i > > End If > > End Function > > Can you trace the specific line that it dies on? (IE Set a breakpoint > on DoCmd and see if it ever fires for each form.) > > -- > Josh McFarlane > > "Peace cannot be kept by force. It can only be achieved by understanding." > -Albert Einstein > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com *********************************************************************** The information transmitted is intended solely for the individual or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of or taking action in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you have received this email in error please contact the sender and delete the material from any computer. As a recipient of this email, you are responsible for screening its contents and the contents of any attachments for the presence of viruses. No liability is accepted for any damages caused by any virus transmitted by this email.