De geselecteerde items in een keuzelijst met meerdere selecties ophalen als een door komma's gescheiden tekenreeks in Microsoft Access
Dit artikel is van toepassing op een Microsoft Access-databasebestand (.mdb) of op een Microsoft Access-databasebestand (.accdb) en op een Microsoft Access-projectbestand (.adp).
Gemiddeld: vereist basisvaardigheden voor macro's, codering en interoperabiliteit.
Samenvatting
In dit artikel wordt beschreven hoe u geselecteerde items ophaalt uit een keuzelijst met meerdere selecties en de geselecteerde items vervolgens opslaat als een tekenreeks met komma's in Microsoft Access.
Meer informatie
In Microsoft Access bepaalt de waarde van de eigenschap MultiSelect van de keuzelijst in een formulier of rapport of de keuzelijst één keuzelijst of een keuzelijst met meerdere keuzelijsten is. In een keuzelijst met meerdere selecties kunt u meerdere lijstitems tegelijk selecteren.
U kunt de eigenschap Waarde van de keuzelijst gebruiken om het geselecteerde item op te halen uit de keuzelijst. Wanneer u echter een keuzelijst met meerdere selecties gebruikt en u de geselecteerde items probeert op te halen met behulp van de eigenschap Waarde, retourneert de eigenschap Waarde null.
U kunt de geselecteerde items in een keuzelijst met meerdere selecties ophalen en de geselecteerde items vervolgens programmatisch opslaan als een door komma's gescheiden tekenreeks. Ga hiervoor als volgt te werk:
Start Microsoft Access.
Open de voorbeelddatabase Northwind.
Klik in de sectie Objecten van het venster Database op Formulieren.
Opmerking Klik in Access 2007 op Formulierontwerp in de groep Formulieren op het tabblad Maken .
Dubbelklik in het rechterdeelvenster op Formulier maken in de ontwerpweergave.
Opmerking Sla in Access 2007 deze stap over.
Voeg de volgende besturingselementen toe aan het formulier en stel vervolgens de eigenschappen van besturingselementen in zoals opgegeven:
List Box ---------------------------------------------------- Name : NamesList Row Source Type : Table/Query Row Source : SELECT First Name FROM Employees Multi Select : Extended Width : 3.5" Height : 0.75" Text Box ----------------------- Name : mySelections Width : 3.5" Height : 0.25" Command Button ---------------------------------- Name : testmultiselect Caption : Display Selected Items Width : 1.375" Height : 0.3" Command Button ---------------------- Name : ClrList Caption : Clear List Width : 1.375" Height : 0.3"
Klik in het menu Beeld op Code.
Opmerking Klik in Access 2007 op Code weergeven in de groep Extra op het tabblad Ontwerpen .
Plak de volgende code in de Visual Basic-Editor:
Option Compare Database
Option Explicit
Private Sub Form_Current()
Dim oItem As Variant
Dim bFound As Boolean
Dim sTemp As String
Dim sValue As String
Dim sChar As String
Dim iCount As Integer
Dim iListItemsCount As Integer
sTemp = Nz(Me!mySelections.Value, " ")
iListItemsCount = 0
bFound = False
iCount = 0
Call clearListBox
For iCount = 1 To Len(sTemp) + 1
sChar = Mid(sTemp, iCount, 1)
If StrComp(sChar, ",") = 0 Or iCount = Len(sTemp) + 1 Then
bFound = False
Do
If StrComp(Trim(Me!NamesList.ItemData(iListItemsCount)), Trim(sValue)) = 0 Then
Me!NamesList.Selected(iListItemsCount) = True
bFound = True
End If
iListItemsCount = iListItemsCount + 1
Loop Until bFound = True Or iListItemsCount = Me!NamesList.ListCount
sValue = ""
Else
sValue = sValue & sChar
End If
Next iCount
End Sub
Private Sub clearListBox()
Dim iCount As Integer
For iCount = 0 To Me!NamesList.ListCount
Me!NamesList.Selected(iCount) = False
Next iCount
End Sub
Private Sub testmultiselect_Click()
Dim oItem As Variant
Dim sTemp As String
Dim iCount As Integer
iCount = 0
If Me!NamesList.ItemsSelected.Count <> 0 Then
For Each oItem In Me!NamesList.ItemsSelected
If iCount = 0 Then
sTemp = sTemp & Me!NamesList.ItemData(oItem)
iCount = iCount + 1
Else
sTemp = sTemp & "," & Me!NamesList.ItemData(oItem)
iCount = iCount + 1
End If
Next oItem
Else
MsgBox "Nothing was selected from the list", vbInformation
Exit Sub 'Nothing was selected
End If
Me!mySelections.Value = sTemp
End Sub
Private Sub clrList_Click()
Call clearListBox
Me!mySelections.Value = Null
End Sub
Sluit de Visual Basic-Editor.
Sla het formulier op als Formulier1.
Sluit het formulier.
Open het formulier Form1 in de formulierweergave:
Klik in de sectie Objecten van het databasevenster op Formulieren.
Opmerking Klik in Access 2007 in het navigatiedeelvenster op de groep Formulieren .
Klik in het rechterdeelvenster met de rechtermuisknop op Formulier1 en klik vervolgens op Openen.
Opmerking Klik in Access 2007 met de rechtermuisknop op Formulier1 en klik vervolgens op Openen.
Selecteer meerdere items in de keuzelijst. Klik hiervoor op een item in de keuzelijst, houd Ctrl ingedrukt en klik vervolgens op meer items in de keuzelijst.
Klik op Geselecteerde items weergeven.
De items die zijn geselecteerd in de keuzelijst met meerdere selecties, worden weergegeven als een door komma's gescheiden tekenreeks in het tekstvak.
Microsoft verstrekt programmeervoorbeelden alleen ter illustratie, zonder expliciete of impliciete garantie. daaronder mede begrepen, maar niet beperkt tot impliciete garanties met betrekking tot de verkoopbaarheid en/of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal VBScript, alsmede met de hulpprogramma's waarmee procedures worden gemaakt en waarmee fouten in procedures worden opgespoord. U kunt desgewenst contact opnemen met Microsoft Product Support Services voor uitleg over de functie van een bepaalde procedure. Microsoft Product Support Services is echter niet bereid de voorbeelden aan te passen om extra functies toe te voegen of om procedures te maken die aan uw specifieke eisen voldoen.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor