[AccessD] List Requery

David Emerson newsgrps at dalyn.co.nz
Wed Jan 7 14:10:21 CST 2009


Ah, that would do it.  Many thanks.

David

At 7/01/2009, you wrote:
>Hi David
>
>OK.
>You could use the OnCurrent event and a static variable to run your code once:
>
>Static booIsLoaded As Boolean
>If Not booIsLoaded Then
>   ' Run your code here.
>   booIsLoaded = True
>End If
>
>/gustav
>
> >>> newsgrps at dalyn.co.nz 07-01-2009 10:01 >>>
>Gustav,
>
>Here is the code as it currently is:
>
>Private Sub Form_Open(Cancel As Integer)
>
>      MsgBox "Warning:  Changing dates may affect existing BSVRs."
>      Me!lstDailyEntry.RowSource = "EXEC dbo.splstDailyEntry '" &
>Forms!frmMainMenu!LocationFilter & "'"
>      Me!lstDailyEntry.Requery
>      Me!lstDailyEntry = Me!lstDailyEntry.ItemData(1)
>      Me!lstDailyEntryRecord.RowSource = "EXEC
>dbo.splstDailyEntryRecord " & Me!lstDailyEntry.ItemData(1)
>      Me!lstDailyEntryRecord.Requery
>
>      Me!txtEntryLogSetID.SetFocus
>      DoCmd.FindRecord Nz(Me!lstDailyEntry.ItemData(1), 0)
>      DoCmd.GoToControl "lstDailyEntry"
>
>End Sub
>
>As you can see I did put the specific code in for finding the
>record.  This actually works (but needs the Msgbox - otherwise it doesn't).
>
>Putting the code in the Load event didn't make any difference.  The
>Current event is no good as I only want it to fire when the form
>opens.  I am not sure where else it could go.
>
>David
>
>At 7/01/2009, you wrote:
> >Hi David
> >
> >At a second view I don't enjoy your setfocus and indeed
> >DoCmd.GoToControl stuff. That shouldn't be necessary and is probably
> >the cause for the issue.
> >Couldn't you replace
> >
> >   Call lstDailyEntry_AfterUpdate
> >
> >with some specific code and then find the record later?
> >
> >/gustav
> >
> >
> > >>> newsgrps at dalyn.co.nz 07-01-2009 09:11 >>>
> >I tried that with no luck.
> >
> >I also tried setting the focus to a field and having the on enter
> >event trigger the FindRecord but this didn't work either (the field
> >gets the cursor, the code fires, the find value is correct but the
> >find just doesn't work).
> >
> >I have ended up having a message box appear when the form is
> >opened.  In this case it is not too much of an issue as the form is
> >seldom used, and the message warns about the potential consequences
> >to changing data using the form, but it would still be nice to know
> >why the find wasn't working.
> >
> >Thanks anyway.
> >
> >David
> >
> >At 7/01/2009, you wrote:
> > >Hi David
> > >
> > >You could try putting the first part of your code in the OnOpen
> > >event of the form and the second part in the OnLoad event.
> > >
> > >/gustav
> > >
> > > >>> newsgrps at dalyn.co.nz 07-01-2009 07:17 >>>
> > >I have an adp form that has a list on it.  When an item is selected
> > >from the first list then the main record on the form should show the
> > >fields from the list (it has the same table as its source).  This
> > >works well once the form is open.
> > >
> > >What I want to do is when the form is first opened that the first
> > >item in the first list is selected and the second list updated using
> > >this selection.
> > >
> > >Here is the code I have (I have removed the error trapping):
> > >
> > >Private Sub Form_Load()
> > >
> > >      ' MsgBox "Selecting first entry"
> > >      Me!lstDailyEntry.RowSource = "EXEC dbo.splstDailyEntry '" 
> & Forms!frmMainMenu!LocationFilter & "'"
> > >      Me!lstDailyEntry.Requery
> > >      Me!lstDailyEntry = Me!lstDailyEntry.ItemData(1)
> > >      Call lstDailyEntry_AfterUpdate
> > >
> > >End Sub
> > >
> > >Private Sub lstDailyEntry_AfterUpdate()
> > >
> > >      Me!txtEntryLogSetID.Enabled = True
> > >      Me!txtEntryLogSetID.SetFocus
> > >      DoCmd.FindRecord Nz(Me!lstDailyEntry.Column(0), 0)
> > >      DoCmd.GoToControl "lstDailyEntry"
> > >      Me!txtEntryLogSetID.Enabled = False
> > >      Me!lstDailyEntryRecord.RowSource = "EXEC 
> dbo.splstDailyEntryRecord " & Me!txtEntryLogSetID
> > >      Me!lstDailyEntryRecord.Requery
> > >
> > >End Sub
> > >
> > >The first item in list one is selected but the main record is not updated.
> > >
> > >If I put a breakpoint at the start of the Load event and F8 through
> > >the code then the main record updates correctly.
> > >If I unrem the msgbox at the start of the Load Event then the main
> > >record updates correctly.  But if I leave the code to run by itself
> > >then the main record doesn't get updated.  I have tried putting a For
> > >Next Loop at the start of the Load event but this doesn't solve 
> the problem.
> > >
> > >It seems to be a timing issue but I am not sure how to trigger it
> > >without user intervention.
>
>--
>AccessD mailing list
>AccessD at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/accessd
>Website: http://www.databaseadvisors.com




More information about the AccessD mailing list