98.7% Of all customers recommend us, we're so confident about our results we publish all reviews and stats
View Live Stats View ReviewsForum home » Delegate support and help forum » Microsoft Access Training and help » Form startup problem
Form startup problem
Resolved · Low Priority · Version 2007
Robert has attended:
Access Advanced course
Form startup problem
A problem has appeared when starting up a form for the first time.
There are three related lists on the form that the user uses to home in on data. I have written some VBA that requeries two of the lists when the user clicks on the other two. The row source query for these two lists has the value from the previous list in its selection criteria.
When I start the form up I am asked to enter the value of these lists as if they were parameters (eg Forms!Main!GroupList). I can cancel both of these and the first list populates. However, when I click on the first list, an error box appears with the message: Object or class does not support the set of events. Ie I am being told that my VBA can't be found.
There is a solution. When I open up the VBA editor the problem goes away and the lists populate perfectly. It carries on working even if I close the editor and indeed when I close and reopen the form.
Any ideas?
Thanks,
Bob
RE: Form startup problem - solved, but I don't know why
I tried to find out which VBA function was triggering the problem and put a msgbox at line 1 of the one that was firing at startup.
I then closed down Access and started it again. The MsgBox fired and the form started up with no errors.
I have now taken out the MsgBox line and the form works perfectly. It seems that the problem went away without me doing anything!
There is undoubtedly a rational explanation but, as with acupuncture, I'm blowed if I know what it is!
RE: Form startup problem
Hi Robert
Thanks for your question
In order to resolve this it would be useful if I could see a copy of the relevant code. Could you please post it to this thread?
Thanks
Stephen
RE: Form startup problem
Hi Stephen,
I've pasted the functions below. The first one was throwing up errors when the form was first loaded. It doesn't of course fire at startup as I might have inferred but when clicking on the list. This went away when I opened the VBA editor as described in my initial post. Now the problem has gone completely!
So you can make sense of it, there are three lists: GroupList; GroupSectionList; PersonList. The query that populates GroupSectionList has the value of GroupList as a selection criteria. PersonList does the same with GroupSectionList.
The intention of the VBA is that when someone clicks on GroupList, the related Sections are displayed in GroupSectionList and also the members of PersonList that relate to the first record in GroupSectionList. This works only partially because SetFocus doesn't seem to do the same as physically clicking on the list and therefore the second function doesn't fire until GroupSectionList is clicked on. This is probably something for another thread but if you could throw some light on that as well that would be great. (ie is there a vba function that explicitly clicks on an object?).
Here is the code:
Private Sub GroupList_Click()
Me!GroupSectionList.Requery
Me!GroupSectionList.Selected(0) = True
Me!GroupSectionList.SetFocus
Me!PersonList.Requery
Me!PersonList.Selected(0) = True
End Sub
Private Sub GroupSectionList_Click()
Me!PersonList.Requery
Me!PersonList.Selected(0) = True
Me!PersonList.SetFocus
End Sub
Thanks,
Bob
RE: Form startup problem
I have refined my code and made it populate the two subordinate lists as I mentioned I was trying to do in my previous post.
I spent ages going down a blind alley trying to use sendkey to do a left click. Setting the default value achieved the same thing. My new code is here:
Private Sub GroupList_Click()
Me.GroupSectionList.Requery
Me.GroupSectionList.DefaultValue = Me.GroupSectionList.Column(0, 0)
Call GroupSectionList_Click
End Sub
Private Sub GroupSectionList_Click()
Me.PersonList.Requery
Me.PersonList.DefaultValue = Me.PersonList.Column(0, 0)
End Sub
When someone clicks on a value in GroupList, the other two lists are queried using related values.
Training information:
See also:
Welcome. Please choose your application (eg. Excel) and then post your question. Our Microsoft Qualified trainers will then respond within 24 hours (working days). Frequently Asked Questions
Any suggestions, questions or comments? Please post in the Improve the forum thread. |
Access tip:Convert A Form Into A ReportIf there is a form that you want to to save as a report: |