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
Solved

Populate MS Access List box from button onClick

Posted on 2014-10-28
13
305 Views
Last Modified: 2014-11-02
I have forgotten how to do this.

Should the list box be defined with no control source?
What should I set as the list box data properties?

This is my button on click event:

Private Sub cmdTranslate_Click()

Me!lstTranslationResults.RowSource = "SELECT ln.Lang_Name, dc.Dict_Word FROM tblLanguage AS ln INNER JOIN tblDictionary AS dc ON ln.Lang_ID = dc.Lang_ID WHERE (((ln.Lang_ID) <> 1)) ORDER BY ln.Lang_Name "

End Sub

There is no error. The listbox does not populate.
The list box is set to display 2 columns. The SQL Statement returns 2 columns.

A quick example or reference will help.

Thanks,
0
Comment
Question by:Dovberman
13 Comments
 
LVL 7

Accepted Solution

by:
slubek earned 400 total points
ID: 40409405
Try this:
Private Sub cmdTranslate_Click()

Me!lstTranslationResults.RowSource = "SELECT ln.Lang_Name, dc.Dict_Word FROM tblLanguage AS ln INNER JOIN tblDictionary AS dc ON ln.Lang_ID = dc.Lang_ID WHERE (((ln.Lang_ID) <> 1)) ORDER BY ln.Lang_Name "
Me!lstTranslationResults.Requery

End Sub

Open in new window

0
 

Author Comment

by:Dovberman
ID: 40409426
Thanks,

I had forgotten the need to Requery.

Oops, That did not fix it.

BTY, What is the VB line continuation marker?
0
 
LVL 84
ID: 40409444
You don't need to Requery if you set the RowSource.

Are you sure your SELECT statement actually returns records?
0
Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

 

Author Comment

by:Dovberman
ID: 40409551
Yes,

Col1                 Col2
French              Alors
Hebrew              אז

lstTranslationResults
ColumnCount=2
ColumnWidths 1",1"

cmdTranslate
onClick is the only event procedure.

This is confusing.
0
 

Author Comment

by:Dovberman
ID: 40409591
I used this as a test:

Private Sub cmdTranslate_Click()

Me!txtTest.Text = "abc"

Nothing happens.

The event procedure is not called.
0
 
LVL 49

Assisted Solution

by:Gustav Brock
Gustav Brock earned 100 total points
ID: 40410095
It should raise an error, as the correct syntax is:

    Me!txtTest.Value = "abc"

But for testing it is better to pop a message:

    MsgBox "cmdTranslate clicked."

/gustav
0
 

Assisted Solution

by:Dovberman
Dovberman earned 0 total points
ID: 40410108
I commented out the list box statements.

Then I got the Set Focus error.

Applied the SetFocus method.
Me!lstTranslationResults.SetFocus

Now it works.

Thanks,
0
 
LVL 84
ID: 40410435
Sorry, but I'm not clear how the SetFocus method helped you to populate the Listbox. Could you please explain what the actual solution was to the problem you stated (i.e. populating the Listbox).
0
 

Author Comment

by:Dovberman
ID: 40411103
Error message received.  Cannot set a value for the control unless the control has the focus.

Once I set the focus, it worked. I remember this from years ago.  Try setting the controlsource of a listbox without setting focus.
0
 
LVL 84
ID: 40411359
Error message received.  Cannot set a value for the control unless the control has the focus.
No, you can set the RowSource of a Listbox without the Listbox having focus. I do it all the time (and just tried it on a test database, to be sure).

As far as ControlSource ... that's not what you asked, but still you can do that without the Listbox having the focus.

Not trying to be difficult, but your accepted solutions don't match up with what you asked ...
0
 

Author Comment

by:Dovberman
ID: 40411548
OK I will not argue. SetFocus works for me.
0
 
LVL 84
ID: 40411635
As I said, not trying to argue, just making sure that others who see this understand that SetFocus is not the solution. Simply put, you don't have to use SetFocus to modify the Rowsource (or Controlsource, for that matter) of your Listbox.
0
 

Author Closing Comment

by:Dovberman
ID: 40417984
Thanks
0

Featured Post

Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

Question has a verified solution.

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

In the previous article, Using a Critera Form to Filter Records (http://www.experts-exchange.com/A_6069.html), the form was basically a data container storing user input, which queries and other database objects could read. The form had to remain op…
Overview: This article:       (a) explains one principle method to cross-reference invoice items in Quickbooks®       (b) explores the reasons one might need to cross-reference invoice items       (c) provides a sample process for creating a M…
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
With Microsoft Access, learn how to specify relationships between tables and set various options on the relationship. Add the tables: Create the relationship: Decide if you’re going to set referential integrity: Decide if you want cascade upda…

856 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