Shamil Salakhetdinov
shamil at users.mns.ru
Wed Jan 18 08:53:13 CST 2006
William, It's unclear what do you mean by saving data before closing form - do you have unbound forms? For bound forms this code should work well: Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As Long Private Const WM_CLOSE = &H10 Public Sub CloseForms( _ ByRef robjApp As Access.Application, _ Optional ByRef rcolFormNames2Skip As Collection = Nothing) Dim lngIdx As Long Dim efrm As Access.Form With robjApp.Forms If .Count > 0 Then For lngIdx = .Count - 1 To 0 Step -1 Set efrm = .Item(lngIdx) If Not SkipThisForm(rcolFormNames2Skip, efrm) Then ' force to save data in bound form before ' closing it efrm.SetFocus DoEvents SendKeys "+{Enter}", True ' close form SendMessage efrm.hWnd, WM_CLOSE, 0, 0 DoEvents End If Next lngIdx End If End With End Sub Private Function SkipThisForm( _ ByRef rcolFormNames2Skip As Collection, _ ByRef rfrm As Access.Form) As Boolean Dim evar As Variant If Not rcolFormNames2Skip Is Nothing Then For Each evar In rcolFormNames2Skip If StrComp(CStr(evar), rfrm.Name, vbTextCompare) = 0 Then SkipThisForm = True Exit Function End If Next evar End If SkipThisForm = False End Function It can be called this way from Switchboard form: Dim col As New Collection col.Add Me.Name CloseForms Access.Application, col You can also implement a special predefined public method in all your forms, which can be called to save data before closing the form etc.... Shamil ----- Original Message ----- From: "William Hindman" <wdhindman at bellsouth.net> To: "Access Developers discussion and problem solving" <accessd at databaseadvisors.com> Sent: Wednesday, January 18, 2006 5:01 PM Subject: [AccessD] ...close open forms > ...I need to close any open forms ...other than designated forms ...and save > their data ...before opening a called form ...from the called form. > > ...ie call a form open from a switchboard ...the called form checks for any > other forms open, other than the sb, and closes them, saving their data, > before it opens. > > William > > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com