<i>Perhaps you should explain what you mean by "if you try to use the scrollbar the events hit the list items underneath it"... </i>
When you try to drag the scrollbar on the listbox or click the arrows you're generating events, right? Mousedown, mouseup and such. The scrollbar ought to intercept those events and respond by scrolling the listbox. Instead what happens is that it behaves as though there is no scrollbar there. So you click the up arrow and it selects the first visible list item. Click the down arrow and it selects the last visible list item.
<i>Have you tried a Compact & Repair recently?</i>
Here's a minimal case. Let me know if it behaves as expected for you. Just open the form and you should be able to scroll the listbox. There are no macros or anything, just one listbox.
So I think I can rule out memory issues, conflicts with VBA, database corruption, etc.
Also, if you have similar installation and can retrace these steps and send me a test file:
Windows XP Pro: Version 5.1.2600 Service Pack 2 Build 2600
Access: Version 10.0 Build 6771
1. Create a blank 2002 mdb file.
2. Create a form with one listbox.
3. In the listbox wizard, 3 columns, 1 hidden column as key.
4. put 1;"a";"b";2;"c";"d";3;"e";"f"... etc as the row source data.
5. I resized it a bit before testing it.
If I can get this behavior to replicate on other machines I'll try to send it to MS.
Does the minimal database exhibit the behavior you were describing? When I open it and scroll it works fine. I am using 2002 on a Windows 2000 Pro system.
Did it just start happening? Did you load anything recently? In your first post you said the listbox was based on a query. Is the RowSource a query or a value list? If it is a value list then there is a limit to how many characters you assign to the RowSource property. Any chance that this is the case?
Otherwise it sounds like you might want to try uninstalling and reinstalling Access. I would try other systems first of course.