• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 251
  • Last Modified:

How to use a juntion table with a list box?

I have a main form that has a juction table as the subform. I can then assign multiple employees to a case. Now at this point it works but I would like to use a list box to select multiple employees and then insert them or delete them from juntion table. I have attached a sample database with where I am at.
JuntionTable.mdb
0
seanlhall
Asked:
seanlhall
  • 3
  • 3
1 Solution
 
Helen FeddemaCommented:
tblSubjects should not have EmployeeID -- you can remove that field.  You can use a multi-select listbox to assign employees (for a selected subject) to the junction table, but you can't do this in a datasheet subform.  I would just put the listbox in a standard subform, on the main form, with the subform bound to the junction table and the row source the Employees table.
0
 
Helen FeddemaCommented:
Here is some code for working with the ItemsSelected collection of a multi-select listbox:
Private Sub cmdExportData_Click()

On Error GoTo ErrorHandler

   Dim intColumn As Integer
   Dim intColumns As Integer
   Dim intCount As Integer
   Dim intIndex As Integer
   Dim intRow As Integer
   Dim intRows As Integer
   Dim lst As Access.ListBox
   Dim strData As String
   Dim strPrompt As String
   Dim strTest As String
   Dim strTitle As String
   Dim varItem As Variant
   
   Set lst = Me![lstSelectContacts]
      
   'Check that at least one item has been selected
   If lst.ItemsSelected.Count = 0 Then
      strTitle = "No items selected"
      strPrompt = "Please select at least one item"
      MsgBox prompt:=strPrompt, _
         buttons:=vbInformation + vbOKOnly, _
         Title:=strTitle
      lst.SetFocus
      GoTo ErrorHandlerExit
   End If
   
   intColumns = lst.ColumnCount
   intRows = lst.ItemsSelected.Count
   strTitle = "Information missing"
   
   'Test for required information, using listbox columns
   For Each varItem In lst.ItemsSelected
      'Check for required address information (or whatever you need to check)
      strTest = Nz(lst.Column(5, varItem))
      Debug.Print "Street address: " & strTest
      If strTest = "" Then
         strPrompt = "Skipping this record -- no street address!"
         MsgBox prompt:=strPrompt, _
            buttons:=vbExclamation + vbOKOnly, _
            Title:=strTitle
         GoTo NextItem
      End If
      
      'Do something with info from the listbox columns, using
      'this syntax
      strData = Nz(lst.Column(5, varItem))
      
NextItem:
   Next varItem

ErrorHandlerExit:
   Exit Sub

ErrorHandler:
   MsgBox "Error No: " & Err.Number _
      & "; Description: " & Err.Description
   Resume ErrorHandlerExit

End Sub

Open in new window

0
 
Helen FeddemaCommented:
In your code, you would pick up the SubjectID from the main form when writing records to the junction table.
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
seanlhallAuthor Commented:
I have no idea. I need to select multiple employees and insert into TtblLKemployee.
JuntionTableV2.mdb
0
 
seanlhallAuthor Commented:
Still trying to fiqure this out. I think Im close. I have attached what I have. JuntionTableV3.accdb
0
 
seanlhallAuthor Commented:
This lead me in a different direction
0

Featured Post

Become an Android App Developer

Ready to kick start your career in 2018? Learn how to build an Android app in January’s Course of the Month and open the door to new opportunities.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now