Forms :: Listbox Multiselect - Adding Records To Junction Table
Apr 21, 2014
I would like to use a listbox set to multiselect to add records to a junction table. I've been using code to accomplish this with checkboxes (love how it looks and works) but after moving my tables to Office 365 as the backend, linkedto a local frontend, sql does not like this particular set up, and I do not have the time or knowledge to sort out why. So what I need is a step by step to look at the many, in this case possible roles a contact can have, and choose one or more, which then creates a record in the junction table with the contact id and role id.
I would prefer to not use a combobox on a continuous form because every time a user goes to select roles he would have to scroll through all the choices for each separate role.
The user can select multiple items (non-sequential) on the listbox, say items 1 and 35313. I'd like the listbox to scroll (meaning display) to the currrently selected item, so that the user can see it while being processed.
I've seen stuff about property ListIndex, which does exactly that, but it's only useful when you have just ONE item selected (in a multiselect listbox apparently it deselects the rest of the items, so no point in using it, I guess, unless there's more to it!!).
So the key here is how to do the scrolling/display.
The code to loop through the listbox and process each selected item is attached:
Code: Dim vItem As Variant Dim Content as String For Each vItem In Me.lst.ItemsSelected 'scroll to selected item ??? 'processing of the selected item Content = Me.lst.Column(1, vItem) 'copy the content to do sth with it Me.lst.Selected(vItem) = False 'unselect the current item Next vItem 'go to next selected item
how to scroll to the currently selected item? Mind that I need to go through the list of selected items to process them for further use (i.e, I need them selected).
I have a table, "people" which has all the main data stored. I have another table, "organizations" which I'd like to be able to use on a form to select which organizations people belong to. I created a button on my main form which opens another form on which a listbox with all the organizations shows. What I'd like to do is from the main form, click a button that brings up a new form. On the new form, I can select the affiliations. Then, when I close that form, a box on the main form shows what i've just selected. I got this to work with the listbox, but when I changed it to multi-select it stopped working. Help!! Thanks.
I want to be able to select multiple items from a listbox, click a button, and then print the data related to that item selected using a report.
In the report to print the data, I have added the criteria [Forms]![Print Labels]![List2] This is the name of the listbox. However, this doesn't print the items selected in the list box.
Do I have to do this through VBA, or can I accomplish this through a query in the report?
I have a multiSelect Listbox that has email recipients. I have a command button with Me.emaillist = Null, and after I click the command button the Listbox is still highlighted in black. What VBA command do I create to completely clear the multiSelect Listbox, including the highlighted selection?
I'm trying to create a database where a single "Classification" field is populated by selections made in a multiselect listbox and I can't figure out how to do this. Any help people can provide?
Table 1: Name_ID <pk> Name Classification
Table 2: Classification_ID <pk> Classification
What I want to happen is click on a button next to the Classification field (text) and a popup form with a multi-select list loads (this part is easy, of course). The user can select as many classifications as they want, click the ok button and each item selected then goes back to the first form and populate in the Classification field (seperated by commas or semi-colons). This possible?
I have adapted code from ghudson's example on 'http://www.access-programmers.co.uk/forums/showthread.php?s=&threadid=52736
I have a subform called frmsJobPartsUsed, which contains a multiselect list box where the user can select multiply parts used for one job and click a save button, which saves the parts to rows on the same forms (see picture). The user then enters the number used and that number is taken away from the UnitsInStock. This form is made up of the following two tables; TblStore PartNo PartName UnitsInStock ReOrderLevel Discountinued Remark
The multiselect listbox is made form tblStore, PartNo, PartName and Discontinued = 0
This all works fine so far.
What is need to do is before the parts selected are saved to the table I want to run some code to check If a part’s UnitsInStock is equal to 0 then Message box saying no stock left need to reorder. It won’t save it to the table. Or else If UnitsInStock is greater than 0 but less than or equal to ReOrderLevel Message box saying Stock running low need to reorder asap.
I have this kind of working but it doesn’t seem to be finding the correct UnitsInStock for the part selected. Here is the code;
Private Sub cmdAnswer_Click() 'SAVE BUTTON On Error GoTo ErrMsg:
'Code adapted from ghudson's example on 'http://www.access-programmers.co.uk/forums/showthread.php?s=&threadid=52736
Dim myFrm As Form, myCtl As Control Dim mySelection As Variant Dim iSelected, iCount As Long
Dim myDB As DAO.Database Dim myRst As DAO.Recordset Dim myRstCount As DAO.Recordset
Set myDB = CurrentDb() Set myRst = myDB.OpenRecordset("tblPartsUsed")
Set myFrm = Me Set myCtl = Me.lstAnswers
iCount = 0 'Count number of selected records/items For Each mySelection In myCtl.ItemsSelected iCount = iCount + 1 Next mySelection
'Check if anything is slected If iCount = 0 Then MsgBox "There are no Parts selected..", _ vbInformation, "Nothing selected!"
For Each mySelection In myCtl.ItemsSelected If Me.UnitsInStock.Value = 0 Then MsgBox "Out of Stock!" & Chr(13) & "Please returen to Orders or Store to Re-Order Stock. " & Chr(13) & " ", vbOKOnly + vbCritical, "Re-Order Stock" myCtl.Selected(mySelection) = False
Else If Me.UnitsInStock.Value > 0 And Me.UnitsInStock <= Me.ReOrderLevel.Value Then MsgBox "The Store is running low on stock!!" & Chr(13) & " Please return to Orders or Store to re-order as soon as possible.", vbInformation, "Need to Re-Order Stock" End If End If Next mySelection 'END
iCount = 0
'Go throught each selected 'record' (ItemsSelected) in listbox For Each mySelection In myCtl.ItemsSelected 'Current count of selected items iCount = iCount + 1 'Print value to Immediate Window Debug.Print myCtl.ItemData(mySelection) 'Add answers With myRst .AddNew .Fields("JobDetailsID") = Forms![frmJobs]![JobDetailsID] .Fields("PartUsedNum") = iCount .Fields("PartNo") = myCtl.ItemData(mySelection) .Update End With Next mySelection
Private Sub cmdUnselect_Click() 'UNSELECT BUTTON On Error GoTo ErrMsg:
'Code adapted from ghudson's example on 'http://www.access-programmers.co.uk/forums/showthread.php?s=&threadid=52736
Dim myFrm As Form, myCtl As Control Dim mySelection As Variant Dim iSelected, iCount As Long
Set myFrm = Me Set myCtl = Me.lstAnswers
'Count number of selected records/items For Each mySelection In myCtl.ItemsSelected iCount = iCount + 1 Next mySelection
If iCount = 0 Then MsgBox "There are no selections to Un-Select..", _ vbInformation, "Nothing selected!" End If
'Go throught each selected 'record' (ItemsSelected) in listbox For Each mySelection In myCtl.ItemsSelected Debug.Print myCtl.ItemData(mySelection) myCtl.Selected(mySelection) = False Next mySelection
OK - I have seen the other posts where individuals are trying to select multiple items from a list box and have a field populate with the selections. I have not seen a clear explanation defining if this is possible.
Essentially, I want to be able to query on the field and search for multiple selections within that field. Any recommendations as to how this can be achieved?
My next question, is if the selections in a multiple instance field are separated by a comma or some other character what is the best method to query for multile responses. For example, if the following data is in the field 1,2,3 and I want to query on 1 or 2?
I have a form where I do a search and find the correct auditor in the listbox from the AuditorTable. This form is opened from a master form where I have the same fields in the table (ClientTable). What I need is that when I find the one, I double click it and the records from that auditor is passed to the client table.how to use Dlookup.
Hi, i was wondering if it's possible in a listbox with the multiselect option set to extended simply click on a field and open a form with the data of this field..
example: i've a listbox of my customers, (only first and last name)..i click on one of this and a new form with all the details'll open, so i can see and modify stuff... with the multiselect set to none this works..but with the extended??
(btw..i wanna just click on one filed, but i need the extended multiselection on for other options..)
trying to understand how to create a form with a Junction table. This design will allow a book to have more than 1 author.
Author table Author ID AuthorName
AuthorID table (Junction table) AuthorFK BookFK
Book Table BookID Book Name
Author table has a 1 to many relationship with AuthorID table and Book table has a 1 to many relationship with AuthorID table. Now how do you create the forms? Do I need a main form FrmAuthor , subform FrmBook and a frmAuthorID
I created a form with a ListBox and a Command Button. The users selects the values in the listbox and then click the button to create word documents. I've written VBA code to accomplish this. But it's not working properly. It opens multiple word documents but all for the same one.
Private Sub Command6_Click() Dim appWord As Object Dim varItem As Variant Dim strPathToTemplateFile As String Dim strPathToProspectiveFile As String Dim strPreferredFileName As String For Each varItem In Me.List0.ItemsSelected
I've established a many to many relationship using a junction table.
So I have 3 tables (A for "materials", B for "batches", and J for "junction")
Form A is linked to table A, and contains a subtable linked to a query from table J. This allows me to input materials into table A and then list all of the batches it may be used in that are in table B. I successfully got this to input all the batches and materials combinations in table J.
Now on form B, which is linked to table B, displays the batch information, with the subtable J.
My problem, is that only the materials primary key is showing, not the other information that should be linked from table A.
I have an existing Main form that has a sub form that the user uses to enter multiple records into a table....it works fine EXCEPT that I need to make it even easier and more intuitive and add a lot of labels. Basically the user selects items from a drop down list that adds items to a Work Order. I need to add some labels to the form to make it more descriptive for the user.
So, what I want to add multiple records using a single main form.
Is is possible to?:
1. simply turn the subform into a single main form? Can this be done by using a Command button or something similar?
2. copy all of the controls etc from the sub form into a new main form and have it all work nicely?
I'm trying to hash two scripts I've found into 1 functioning filter, however I'm still relatively new to vba and can't figure out how to get this working.
I'm trying to use Allen Browne's Search Criteria:
with another snippete of code I found here:
Code: 'Purpose: This module illustrates how to create a search form, _ where the user can enter as many or few criteria as they wish, _ and results are shown one per line.
[Code]....
It's the date part I'm having trouble with, the rest of the search criteria work fine without the date, but I can't get it working when I try to modify and merge the date sections of each code.
Also I'm using a listbox for the "Yesterday";"Last 4 days";"Last 9 days" and not a combo box.
I am trying to set up a Real Estate database, and can't get the Relationships to work. I have three tables:
House Listings Farm Listings Clients
Clients can have properties in both House and Farm Listings Tables, so I need a Junction Table (or do I need more than one?)
The Primary Key fields of House Listings Table (HouseID) and Farm Listings Table (FarmID), become a composite Primary key in the Junction table. Is this correct?
Both the House Listings Table and the Farm Listings Tables have a field for Client ID. Is this causing me problems, as I can get the Farm and Clients Queries to work, but not any queries with the House Listings. As this is my first attempt at creating a database with many-to-many relationships, please explain in simple terms what I am doing wrong.
I'm using access 2010. I want to put some code behind a button that will allow the user to add selected products in a listbox to which ever operation is selected in a combobox by creating records for each product / operation combination in a third table:
I have a form with a combobox on top that allows the user to select the operation for which they want to add products. There is also a listbox that displays all records in tblProducts. The user can select one or more products and then the idea is that they can then press a button that will use the selected record IDs from the list box and the record ID from the combo box to create new records in the many to many table.
I'm working in the petro-chem and industrial service industries now, and am finding there are relationships I haven't had much exposure to in the past.
Can someone please help me with constructing the tables and relationships needed here?
This is something I should probably know, yet I've never created junction tables which must take into account nested data. I have created a relationship which works, but I feel it could be done in a simpler fashion.
By the way, I cannot find Pat Hartman's many-to-many sample db. It is either missing, or the restrictions on word length in Search just aren't letting me find it.
Table: WorkOrder is the primary table I'm working with. I need to store 4 pieces of information for every WorkOrderID, two of which have subs.
I’m having trouble defining Relationships I’m thinking I need a “Junction” Table and I have tried looking at the Orders.mdb but it hasn’t helped (I’m sure I’m just missing something) I just don’t see how it works. If at all possible please don’t just give the info try to help me understand so I can get the answer myself. Here is what I have: Far table: FarNumID (PK) > autonumber FarNumber > Text “224-10C” FarTitle> Text
FarParagraph table: FarParaID (PK) > autonumber FarNumID > Number FarParaTitle > Text FarParaText > Text
AC table: ACNumID (PK) > autonumber ACNumber > Text ACTitle> Text
ACParagraph table: ACParaID (PK) > autonumber ACNumID > Number ACParaTitle > Text ACParaText > Text
1. Each FarNumber can have only 1 FarTitle 1:1 Each FarNumber can have many FarParaTitles 1:Many Each FarNumber can have many FarParaText 1:Many 2. Each FarTitle can have many FarParaTitle 1:Many Each FarTitle can have many FarParaText 1:Many 3. Each FarParaTitle and have only 1 FarparaText 1:1
All I ever seem to do is sit about trying to figure this out and then give up and ask for help :(
I have three tables.
One for contacts One for groups (groups like people attending meeting a, b c) and a junction table as the top two create a many to many relationship.. one person can be part of multiple groups, and a group can have multiple members.
In the contacts table my primary key is an auto number, and is contactsID I also have some contact details, and a groupID field
In the group table my primary key is GroupID and is an auto number, it also have group name, and description
in the junction table I have a primary key, then GroupID, and ContactsID which are also set at primary keys and are set with the same values as the same named primary keys in the relavant tables (I beleive this defines them as foreign keys... i hope so anyway!)
I have the relationships set up as a one to may relationship from contacts to junction and groups to junction, contacts linking from ContactID to ContactID in each table, likewise with the Group table.
However, when I try to put everything into a main form for contacts,with a subform for groups, all I am getting is the autonumber... which isn't much good for my end user..... :( How do I solve this?
The user checks the IsSelected (bound to a checkbox) for the items required for further processing, does the processing and starts over. The function of the column IsSelected is to hold the boolean signifying whether or not to process the record, and to bind to the checkbox in the form.
How to retain the user interface (i.,e. selecting using one or more checkboxes) if the database is to be used by more than one user?