Solved

Access Listbox - Empty/Null

Posted on 2013-01-07
11
514 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
  • 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 500 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
Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

 
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

Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

Question has a verified solution.

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

When you are entering numbers in a speadsheet, and don't remember what 6×7 is, you just type “=6*7" instead. It works in every cell! This is not so in Access. To enter the elusive 42 in a text box, you have to find a calculator, and then copy the re…
Phishing attempts can come in all forms, shapes and sizes. No matter how familiar you think you are with them, always remember to take extra precaution when opening an email with attachments or links.
Familiarize people with the process of utilizing SQL Server views from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Access…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

825 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