Populate MS Access List box from button onClick

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,
DovbermanAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

slubekCommented:
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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
DovbermanAuthor Commented:
Thanks,

I had forgotten the need to Requery.

Oops, That did not fix it.

BTY, What is the VB line continuation marker?
0
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
You don't need to Requery if you set the RowSource.

Are you sure your SELECT statement actually returns records?
0
The Ultimate Tool Kit for Technolgy Solution Provi

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy for valuable how-to assets including sample agreements, checklists, flowcharts, and more!

DovbermanAuthor Commented:
Yes,

Col1                 Col2
French              Alors
Hebrew              אז

lstTranslationResults
ColumnCount=2
ColumnWidths 1",1"

cmdTranslate
onClick is the only event procedure.

This is confusing.
0
DovbermanAuthor Commented:
I used this as a test:

Private Sub cmdTranslate_Click()

Me!txtTest.Text = "abc"

Nothing happens.

The event procedure is not called.
0
Gustav BrockCIOCommented:
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
DovbermanAuthor Commented:
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
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
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
DovbermanAuthor Commented:
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
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
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
DovbermanAuthor Commented:
OK I will not argue. SetFocus works for me.
0
Scott McDaniel (Microsoft Access MVP - EE MVE )Infotrakker SoftwareCommented:
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
DovbermanAuthor Commented:
Thanks
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Access

From novice to tech pro — start learning today.