Selasa, 30 Oktober 2012

Re: [MS_AccessPros] Automatically close forms/reports but if dirty, exit sub w msg

 

Connie-

What does your typical NotInList routine look like now?

John Viescas, Author
Microsoft Access 2010 Inside Out
Microsoft Access 2007 Inside Out
Microsoft Access 2003 Inside Out
Building Microsoft Access Applications
SQL Queries for Mere Mortals
http://www.viescas.com/
(Paris, France)

-----Original Message-----
From: mrsgoudge <no_reply@yahoogroups.com>
Reply-To: <MS_Access_Professionals@yahoogroups.com>
Date: Tuesday, October 30, 2012 5:07 PM
To: <MS_Access_Professionals@yahoogroups.com>
Subject: Re: [MS_AccessPros] Automatically close forms/reports but if
dirty, exit sub w msg

John -
I'm working on it right now. Sounds like it's just what I want. Wish I'd
asked earlier when I changed everything away from modal/pop up.

One question: Do I add Response = acDataAdded at the end of my code for
the NotInList Event and will that repopulate the box?

Thanks!
Connie

--- In MS_Access_Professionals@yahoogroups.com, John Viescas <JohnV@...>
wrote:
>
> Connie-
>
> Your NotInList code should be opening the form to add the "missing"
>record
> in Dialog mode also, so it should open on top of the form with the combo
> box, even if the combo box form is also in Dialog. When you open the
>"add
> a record" form as a dialog from your code, that code will wait until the
> dialog closes. That's the correct way to do it so you can ensure the new
> record is there before setting Response = acDataAdded.
>
> John Viescas, Author
> Microsoft Access 2010 Inside Out
> Microsoft Access 2007 Inside Out
> Microsoft Access 2003 Inside Out
> Building Microsoft Access Applications
> SQL Queries for Mere Mortals
> http://www.viescas.com/
> (Paris, France)
>
>
>
> -----Original Message-----
> From: mrsgoudge <no_reply@yahoogroups.com>
> Reply-To: <MS_Access_Professionals@yahoogroups.com>
> Date: Tuesday, October 30, 2012 3:57 PM
> To: <MS_Access_Professionals@yahoogroups.com>
> Subject: Re: [MS_AccessPros] Automatically close forms/reports but if
> dirty, exit sub w msg
>
> John-
>
> I had done that initially and then found that on that acDialog form it
>was
> possible that they would encounter another "Not In List" issue and could
> not add the needed item because the form for adding it could not pop up
> since it was in acDialog mode.
>
> Any other ideas? Otherwise, I'll limit the forms that can close
> automatically and give them a message to close specific ones if open.
>
> Thank you for sticking with me!
> Connie
>
> --- In MS_Access_Professionals@yahoogroups.com, John Viescas <JohnV@>
> wrote:
> >
> > Connie-
> >
> > One solution would be to open the subsequent forms
>WindowMode:=acDialog -
> > then the user is forced to close the form using normal methods before
> > going back to something else.
> >
> > John Viescas, Author
> > Microsoft Access 2010 Inside Out
> > Microsoft Access 2007 Inside Out
> > Microsoft Access 2003 Inside Out
> > Building Microsoft Access Applications
> > SQL Queries for Mere Mortals
> > http://www.viescas.com/
> > (Paris, France)
> >
> >
> >
> > -----Original Message-----
> > From: mrsgoudge <no_reply@yahoogroups.com>
> > Reply-To: <MS_Access_Professionals@yahoogroups.com>
> > Date: Monday, October 29, 2012 4:50 PM
> > To: <MS_Access_Professionals@yahoogroups.com>
> > Subject: Re: [MS_AccessPros] Automatically close forms/reports but if
> > dirty, exit sub w msg
> >
> > John-
> > "Clicks on a tab"--another form.
> >
> > I do allow multiple forms and am not sure I would do that again because
> > the more forms I have open the more likely the "too many open
>databases"
> > occurs. Which is why I am trying to close forms when certain
>complicated
> > forms/reports are opened or Activated.
> >
> > I did it to make it simpler for them to enter info. For ex: In the
> > Tracking Form (which tracks showings, Ads, etc.) there are several
>combo
> > boxes that look up the Listing, Lookers, etc. So if someone has seen a
> > property that is about to come on the market the "not in list" message
> > occurs, they choose yes and the Listings form opens. Then they can
>enter
> > the Listing and if the Property has never been entered into our
>database
> > they again have the option to open the HomeInfo form and enter the
>basic
> > data. Which means that they could leave quite a few forms open. It's
> > quite user friendly but ...
> >
> > An example of why I was using the Activate event was that when they go
> > back to the Tracking form after opening those other forms I'd like to
> > close the forms they opened. I can't put it in the Deactivate event
> > because sometimes the Deactivation occurs because of a "not in list"
> > message.
> >
> > Re the code you mentioned: How would I refer to the previous form?
>I'm
> > assuming the code you mentioned can intervene when they are in a
>subform
> > and then click on the tab of another form. It would have to be a save
> > that would result in a message if a required field was not entered.
> >
> > Of course, if you see another way around this I'm open to any and all
> > input. Only issue is that I have to be able to do it quickly because
>if
> >I
> > don't get this done this week or next, my boss may pull the plug. I
>just
> > want to minimize the chances of the "can't open any more databases"
> >error.
> >
> > Thanks again!
> > Connie
> >
> >
> >
> >
> > --- In MS_Access_Professionals@yahoogroups.com, John Viescas <JohnV@>
> > wrote:
> > >
> > > Connie-
> > >
> > > I'm not sure what you mean by "clicks on a tab." Do you mean on
> >another
> > > form?
> > >
> > > It's not clear to me why you're doing this. If you have another form
> > >open
> > > that the user can click, then clearly you allow multiple forms to be
> > >open.
> > > Why do you want to force closing forms? The Activate event seems
> >like a
> > > strange place to do this.
> > >
> > > As for subforms, as long as the focus moves off the subform to the
>main
> > > form, then Access will automatically save any record in the subform.
> >It
> > > would take a bit of code, but you can find the first control in the
> >outer
> > > form that can receive the focus and set it there to force the save.
> > >
> > > John Viescas, Author
> > > Microsoft Access 2010 Inside Out
> > > Microsoft Access 2007 Inside Out
> > > Microsoft Access 2003 Inside Out
> > > Building Microsoft Access Applications
> > > SQL Queries for Mere Mortals
> > > http://www.viescas.com/
> > > (Paris, France)
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: mrsgoudge <no_reply@yahoogroups.com>
> > > Reply-To: <MS_Access_Professionals@yahoogroups.com>
> > > Date: Friday, October 26, 2012 11:20 PM
> > > To: <MS_Access_Professionals@yahoogroups.com>
> > > Subject: Re: [MS_AccessPros] Automatically close forms/reports but if
> > > dirty, exit sub w msg
> > >
> > > John,
> > >
> > > I'm finding that my automatic close is creating problems. If it
> >closes a
> > > form that has a dirty subform I'm losing that data. A scenario is
>that
> > > the user has put in partial info and then clicks on a tab to go to
> > >another
> > > form which uses the CloseFormsReports module on its Activate Event.
> >The
> > > BeforeUpdate event of the subform on the initial form gives the user
>a
> > > message telling them what to add/correct, but then the form closes
> > >anyways
> > > since there's no way to cancel the Activate event.
> > >
> > > Any ideas? If necessary, I could keep it from closing forms with
> >subforms
> > > but I have a lot of those :-(
> > >
> > > Hope you have a great weekend!
> > > Connie
> > >
> > > Here's the CloseFormsReports Code
> > > Function CloseFormsReports(strCallingForm As String, _
> > > Optional strForm2 As String, _
> > > Optional strForm3 As String) As Integer
> > > 'strForm2 and strForm3 are names of addtl forms not to close
> > > Dim intI As Integer
> > >
> > > On Error GoTo Proc_Err
> > > 'Close all open forms
> > > 'If Dirty then changes are not saved and no questions are asked.
> > > For intI = Forms.Count - 1 To 0 Step -1
> > > ' Do not close the calling form, MainMenu, Reminder, strForm2,
>strForm
> >3
> > > If Forms(intI).Name <> strCallingForm And Forms(intI).Name <>
> > > "MainMenu" And Forms(intI).Name <> "Reminder" And Forms(intI).Name <>
> > > strForm2 And Forms(intI).Name <> strForm3 Then
> > > ' Don't test for Dirty if no Record Source
> > > If Len(Forms(intI).RecordSource) <> 0 Then
> > > If Forms(intI).Dirty Then
> > > 'Use Caption in message if it's not null
> > > If Forms(intI).Caption <> "" Then
> > > Msgbox "You must close " & Forms(intI).Caption &
>_
> > > " before proceeding with this action."
> > > Else: Msgbox "You must close " & Forms(intI).Name _
> > > & " before proceeding with this action."
> > > End If
> > > ' Bail with a false return
> > > Exit Function
> > > End If
> > > End If
> > > ' Close the form
> > > DoCmd.Close acForm, Forms(intI).Name
> > > End If
> > > Next intI
> > >
> > > ' AOK - now do Reports
> > > Do While Reports.Count > 0
> > > DoCmd.Close acReport, Reports(0).Name
> > > Loop
> > > ' Return success
> > > CloseFormsReports = True
> > > Proc_Exit:
> > > Exit Function ' or Exit Function
> > > Proc_Err:
> > > Msgbox Err.Description, , _
> > > "ERROR " & Err.Number _
> > > & " CloseFormsReport"
> > > Resume Proc_Exit
> > > Resume
> > > End Function
> > >
> > >
> > > --- In MS_Access_Professionals@yahoogroups.com, John Viescas <JohnV@>
> > > wrote:
> > > >
> > > > Connie-
> > > >
> > > > If you call your sample code from a form, it might not work because
> >the
> > > > code will attempt to close the form that is running the code. You
> > >could
> > > > make it sensitive to the name of the calling form by adding a
> > >parameter.
> > > >
> > > > Function CloseFormsReports(strCallingForm As String) As Integer
> > > > Dim intI As Integer
> > > >
> > > > On Error GoTo Proc_Err
> > > >
> > > > 'Close all open forms
> > > > 'If Dirty then changes are not saved and no questions are
>asked.
> > > > For intI = Forms.Count -1 To 0 Step -1
> > > > ' Do not close the calling form
> > > > If Forms(intI).Name <> strCallingForm Then
> > > > ' Skip if the form is Dirty
> > > > If Forms(intI).Dirty Then
> > > > MsgBox "You must close " & Forms(intI).Name & _
> > > > " before proceeding with this action."
> > > > ' Bail with a false return
> > > > Exit Function
> > > > End If
> > > > ' Close the form
> > > > DoCmd.Close acForm, Forms(intI).Name
> > > > End If
> > > > Next intI
> > > >
> > > > ' AOK - now do Reports
> > > > Do While Reports.Count > 0
> > > > DoCmd.Close acReport, Reports(0).Name
> > > > Loop
> > > > ' Return success
> > > > CloseFormsReports = True
> > > >
> > > > Proc_Exit:
> > > > Exit Function ' or Exit Function
> > > > Proc_Err:
> > > > Msgbox Err.Description, , _
> > > > "ERROR " & Err.Number _
> > > > & " CloseFormsReport"
> > > > Resume Proc_Exit
> > > >
> > > > End Function
> > > >
> > > >
> > > > Then call it from code about to open a form that needs all others
> > >closed:
> > > >
> > > > If CloseFormsReports(Me.Name) Then
> > > > ' Open other form
> > > > DoCmd.OpenForm ?
> > > > ' Close me
> > > > DoCmd.Close acForm, Me.Name
> > > > End If
> > > >
> > > > John Viescas, Author
> > > > Microsoft Access 2010 Inside Out
> > > > Microsoft Access 2007 Inside Out
> > > > Microsoft Access 2003 Inside Out
> > > > Building Microsoft Access Applications
> > > > SQL Queries for Mere Mortals
> > > > http://www.viescas.com/
> > > > (Paris, France)
> > > >
> > > >
> > > >
> > > > -----Original Message-----
> > > > From: mrsgoudge <no_reply@yahoogroups.com>
> > > > Reply-To: <MS_Access_Professionals@yahoogroups.com>
> > > > Date: Wednesday, October 17, 2012 6:26 AM
> > > > To: <MS_Access_Professionals@yahoogroups.com>
> > > > Subject: [MS_AccessPros] Automatically close forms/reports but if
> > >dirty,
> > > > exit sub w msg
> > > >
> > > > I posted this a few days ago, but it was missed. Can you help me?
> > > >
> > > > Upon opening certain forms/reports I'd like to close all other
> > > > reports/forms. Therefore I'd like to alter the following code (or
> >get
> > > > something new) so that:
> > > >
> > > > 1. if the form being closed is dirty, the sub would be exited with
>a
> > > > message to close that form first. (So that the user will decide if
> >the
> > > > newly entered data should be deleted or not).
> > > >
> > > > 2. A way to enter in the sub that calls this the names of forms
>that
> > > > should be omitted from being closed.
> > > >
> > > > I'm guessing that I might need for this actual code to be in each
>sub
> > > > rather than calling it since the next line will be opening a
>specific
> > > > form/report. (Since if I exit the function the code for opening the
> > > > form/report will still run.) Right?
> > > >
> > > > Thanks!
> > > > Connie
> > > >
> > > > Function CloseFormsReports()
> > > > On Error GoTo Proc_Err
> > > >
> > > > 'Close all open forms
> > > > 'If Dirty then changes are not saved and no questions are asked.
> > > > On Error GoTo errHandler
> > > > Do While Forms.Count > 0
> > > > DoCmd.Close acForm, Forms(0).Name
> > > > Loop
> > > > Do While Reports.Count > 0
> > > > DoCmd.Close acReport, Reports(0).Name
> > > > Loop
> > > > Exit Function
> > > > errHandler:
> > > > Msgbox Err.Description, , _
> > > > "ERROR " & Err.Number _
> > > > & " CloseFormsReports"
> > > >
> > > > Proc_Exit:
> > > > Exit Function ' or Exit Function
> > > > Proc_Err:
> > > > Msgbox Err.Description, , _
> > > > "ERROR " & Err.Number _
> > > > & " CloseFormsReport"
> > > > Resume Proc_Exit
> > > > Resume
> > > >
> > > >
> > > >
> > > >
> > > > ------------------------------------
> > > >
> > > > Yahoo! Groups Links
> > > >
> > >
> > >
> > >
> > >
> > > ------------------------------------
> > >
> > > Yahoo! Groups Links
> > >
> >
> >
> >
> >
> > ------------------------------------
> >
> > Yahoo! Groups Links
> >
>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>

------------------------------------

Yahoo! Groups Links

__._,_.___
Reply via web post Reply to sender Reply to group Start a New Topic Messages in this topic (24)
Recent Activity:
.

__,_._,___

Tidak ada komentar:

Posting Komentar