Om het veld waaraan de keuzelijst verbonden is te vullen met alle geselecteerde items:

er is een StringObj nodig, staat op deze site.

Public Sub WriteMultiListBox(lstBox As ListBox)
Dim varItem As Variant
Dim Obj As New StringObj
   'als je een andere tekstscheider wilt, de volgende regel activeren en aanpassen
   'Obj.Init "", <scheidingstekst>
   For Each varItem In lstBox.ItemsSelected
      Obj.Add lstBox.ItemData(varItem)
   Next varItem
   lstBox.Parent(lstBox.ControlSource) = Obj.Value
   Set Obj = Nothing
End Sub

Om in de keuzelijst alle items te selecteren die in een of andere recordset voorkomen:

Dit is niet grappig als er veel items in de keuzelijst staan, maar ik weet nog geen betere methode

Public Sub SetMultiListBox(lstBox As ListBox, rst As recordset)
Dim i As Integer
   For i = 0 To lstBox.ListCount - 1
      rst.findFirst lstBox.ControlSource & "='" & lstBox.ItemData(i) & "'"
      lstBox.Selected(i) = Not rst.NoMatch
   Next i
End Sub