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