Solved

multiple values - list box save-edit

Posted on 2013-12-30
6
691 Views
Last Modified: 2014-01-15
Hi Experts,
I am working on an access form to save multiple values(id's)  from a list box to the database field. I have to use those values in another form(may be in the same form) to edit... So my question is, do we have any other better options to do this type of functions(adding multiple value to db and retrieve it update later) in Vba and Access forms..Please help..
Thanks
0
Comment
Question by:gtmathewDallas
  • 3
  • 2
6 Comments
 
LVL 47

Expert Comment

by:Dale Fye (Access MVP)
ID: 39746455
I would recommend against using multi-valued fields.  Personally I believe they are a mistake and should be avoided.

What are you trying to do with the values from the list?  Normally, if you are going to use a list that allows you to select multiple items from the list, you are going to need a table that stores those in a table with a one-to-many relationship to the main record that the form is tied to.  

Unfortunately, that also means that the list will not be bound to the main record and you will have to write those selected items to a table when you save the record, and if you come back to that record (Current Event), you will need to read from your one-to-many table and highlight (SELECT) those items in the list again.

To write the values to a table, you might use code similar to:

Dim varItem as variant

for each varItem in me.lstYourListName.itemsselected

    strSQL = "INSERT INTO someTable (ID, ListID) " _
                & "Values (" & me.txt_ID & ", " & me.listYourListName.column(0, varItem) & ")"
    currentdb.execute strsql, dbfailonerror

Next

written on my iPad, so there might be some syntax errors.
0
 
LVL 34

Expert Comment

by:PatHartman
ID: 39746912
I also do not use multi-value fields.  They are really more trouble than they are worth.  Create a normal 1-many relationship.  Use a subform for the many-side data.  Using a subform is essentially a no-code solution.  You can make the subform innocuous so it blends in with the main form if you wanted more of a list effect.

The only benefit of using a multi-value field is the nice display options.  Everything else is a problem.
0
 

Author Comment

by:gtmathewDallas
ID: 39754378
Thanks  fyed  and PatHartman,
My requirement is to assign multiple members(users) to different rooms. I have a form and table for room details and from the same form i have to assign the members to it. The form is user defined and not linked to any data/table records.
I was thinking to add two list boxes to the same form - one to select the users and other to show the selected users and then to submit. I am not sure this method is right or wrong but from the user end I think it will be easy for them.
I am not sure how the other method (subform) works.. to save/edit each emplooyee shall we need to go through each subforms? Please Help.
Thanks
0
Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

 
LVL 34

Expert Comment

by:PatHartman
ID: 39754770
The form is user defined and not linked to any data/table records.
Are you saying that you didn't create the form but the users are allowed to create their own forms in a shared database?  -- Big problem waiting to happen.

If this is a one to many relationship, the room is actually stored in the member record.  If this is a many-to-many relationship, it needs a third table to implement.

I've attached an example of a many-to-many relationship and how to manipulate it from either side.
ManyToManyAXP.mdb
0
 

Author Comment

by:gtmathewDallas
ID: 39765808
Sorry for the dealy - I was off from work.. If i use listbox or combobox - whats the best way to store the data to the table of the selected items from it? save multiple selected items in to a field or any other way to store? May be the answer of this question will give me the solution. Please help.
Thanks
0
 
LVL 34

Accepted Solution

by:
PatHartman earned 500 total points
ID: 39766240
The example I posted stores the data directly to the underlying table.  There is no code involved.  Using a multi-select listbox will require code to loop through the selected items and add them to a table.  But it's not that simple because first you have to delete the previous items since there is no way to tell what was there before unless you go item by item.  It is simply easer to delete the previous values and insert the new ones.  You also have to populate the list box in the current event of each record.  So the choice is yours - code (listbox) or no code (subform).  The combo is not an option for this task.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Article by: Leon
Software Metering within our group of companies has always been an afterthought until auditing of software and licensing became a pain point. Orchestrator and SCCM metering gave us the answer and it was an exciting process.
This article will guide you to convert a grid from a picture into Excel format using Microsoft OneNote and no other 3rd party application.
In Microsoft Access, learn how to use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …
The viewer will learn how to  create a slide that will launch other presentations in Microsoft PowerPoint. In the finished slide, each item launches a new PowerPoint presentation and when each is finished it automatically comes back to this slide: …

760 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

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now