[AccessD] List Requery

David Emerson newsgrps at dalyn.co.nz
Wed Jan 7 03:01:03 CST 2009


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