moke123 - Your demo works just as you described. Unfortunately, when I set the rowsource to an empty table in my app the listcount is still 1.
To answer your question:
I have two listboxes (lst_Tasks, lst_Goals). lst_Goals is not yet visible. The user enters a task into a text box and then clicks an "Add Task" command button and the task gets added to lst_Tasks. The user then must enter a corresponding goal for that task. If he tries to add another task before entering a goal for the first task then I check to see if lst_Goals is visible. Since it is not he gets a prompt stating that he must enter a corresponding goal before he can enter another task. This all works fine because here I am testing to see if lst_Goals is visible or not.
If the user does enter a goal (in a text box) for the first task then lst_Goals becomes visible and the goal appears in it. Now he is allowed to enter another task. When he enters another task I wipe out lst_Goals (lst_Goals.rowsource = "") so that only the goals corresponding to the new task will show. Now, if the user tries to enter another task before a corresponding goal was entered I need to check if lst_Goals is empty. If it is then the user would receive a prompt stating that he must enter a corresponding goal. The problem is that lst_Goals is never empty. Listcount is always 1. When I set the rowsource to an empty table, as you suggested, the listcount, for me, is still 1. The worst, and most confusing aspect of this, is listcount will equal 1 when there is a record in it and when there isn't.