?
Solved

Access Listbox - Empty/Null

Posted on 2013-01-07
11
Medium Priority
?
543 Views
Last Modified: 2013-01-08
Hello All

I have a Tabbed Form with a Subform on one of the Tab's .  On that Subform I have a Listbox to display info about a Contact.  It works fine to display existing info.  However, if the List is Null is there a way for essentially a message to appear within that Listbox of say "-{None}-" or  "-{No Info}-"
0
Comment
Question by:wlwebb
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
  • +1
11 Comments
 
LVL 77

Expert Comment

by:peter57r
ID: 38750191
What is the rowsource for the listbox?
0
 
LVL 61

Accepted Solution

by:
mbizup earned 2000 total points
ID: 38750193
No... a workaround is to place a label or textbox above it and in whatever event is controlling the listbox rowsouce:

If me.lstBox.rowcount = 0 then
     Me.txtBox = "No Records"
Else
       Me.txtbox = "total records: " & me.lstbox.rowcount
End if
0
 

Author Comment

by:wlwebb
ID: 38750196
Peter
Me.listShipperLocations.RowSource = "SELECT ShipperLocID, ShipperLoc, ShipperID FROM dta_ShippersLocations" & _
    " WHERE (((ShipperID)=[Forms]![tfrm_Shippers]![sfrm_dta_ShippersLocations].[Form]![ShipperID]))" & _
    " ORDER BY ShipperLoc"

Mbiz.....
That's sort of what I thought ......

I'll see if Peter has a different approach
0
Get free NFR key for Veeam Availability Suite 9.5

Veeam is happy to provide a free NFR license (1 year, 2 sockets) to all certified IT Pros. The license allows for the non-production use of Veeam Availability Suite v9.5 in your home lab, without any feature limitations. It works for both VMware and Hyper-V environments

 
LVL 77

Expert Comment

by:peter57r
ID: 38750210
I think Miriam's solution is fine.
I was going to look at counting records but Miriam's approach is simpler.
0
 

Author Comment

by:wlwebb
ID: 38750211
I tried a couple If stmts

    If Me.listShipperLocations.ListCount = 0 Then
        Me.listShipperLocations.RowSource = "{No Locations}-"
    End If
    Me.listShipperLocations.Requery


    If Me.listShipperLocations.ListCount = 0 Then
        Me.listShipperLocations.Value = "{No Locations}-"
    End If
    Me.listShipperLocations.Requery

But none worked.........
0
 
LVL 61

Expert Comment

by:mbizup
ID: 38750257
You can't set the listbox like that.  The idea is to use a textbox above the listbox to display the listcount or "no records".
0
 
LVL 30

Expert Comment

by:hnasr
ID: 38750408
Interesting request! I'll give it a try.
0
 
LVL 61

Expert Comment

by:mbizup
ID: 38750422
Not sure if you have a .Net background... but gridviews, etc in .Net DO have this option, allowing you to specify text to display if there are no records present.  It appears as non-selectable text centered in the gridview.

Access listboxes do not have this option.  You can possibly set the row source to display "No Records", but unlike .Net, in Access it would be an actual list item -- which would be selectable unless you include code to lock/disable the listbox for such cases.  Also, if your listbox has multiple colomns, the text would have to appear in one of the columns rather than centered across the listbox.

The easiest way IMO to inform the user is to use a seperate textbox (or text boxes) to display the number of items in the list as described above.

Our standard for that here is to use two textboxes with associated labels to show how many 'filtered' records the listbox is displaying and the total possible number of unfiltered records - something like this:

          Displaying X  of  Y total records

Where X is the listcount of filtered records, and Y is the total number of unfiltered records.  (We place this information/textboxes immediately under the right hand corner of the listbox)
0
 
LVL 30

Expert Comment

by:hnasr
ID: 38750461
Try this:
Replace with your table, and field names.

Table 0 (f1, f2, f3) - this is your table to display contents of listbox  if any.
Table a(....) used to display {x} - if table 0 is empty.

Select Distinct "", " {x}" ,"" 
From a Where Not Exists(SELECT [0].[f1], [0].[f2],[0].[f2] FROM 0)
UNION 
SELECT [0].[f1], [0].[f2],[0].[f2] 
FROM 0 ;

Open in new window

0
 

Author Closing Comment

by:wlwebb
ID: 38754777
Thanks Mbiz.....
0
 
LVL 61

Expert Comment

by:mbizup
ID: 38754808
Glad to help out :-)
0

Featured Post

NEW Veeam Agent for Microsoft Windows

Backup and recover physical and cloud-based servers and workstations, as well as endpoint devices that belong to remote users. Avoid downtime and data loss quickly and easily for Windows-based physical or public cloud-based workloads!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

You need to know the location of the Office templates folder, so that when you create new templates, they are saved to that location, and thus are available for selection when creating new documents.  The steps to find the Templates folder path are …
Code that checks the QuickBooks schema table for non-updateable fields and then disables those controls on a form so users don't try to update them.
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.
With Microsoft Access, learn how to start a database in different ways and produce different start-up actions allowing you to use a single database to perform multiple tasks. Specify a start-up form through options: Specify an Autoexec macro: Us…
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question