Jak pobrać wybrane elementy w polu listy wielokrotnego wyboru jako ciąg rozdzielany przecinkami w programie Microsoft Access
Ten artykuł dotyczy pliku bazy danych programu Microsoft Access (.mdb), pliku bazy danych programu Microsoft Access (.accdb) lub pliku projektu programu Microsoft Access (.adp).
Umiarkowane: wymaga podstawowych umiejętności w zakresie makra, kodowania i współdziałania.
Podsumowanie
W tym artykule opisano sposób pobierania wybranych elementów z wielu pól listy wyboru, a następnie przechowywania wybranych elementów jako ciągu rozdzielanego przecinkami w programie Microsoft Access.
Więcej informacji
W programie Microsoft Access wartość właściwości MultiSelect pola listy w formularzu lub w raporcie określa, czy pole listy jest pojedynczym polem wyboru, czy polem z wieloma listami wyboru. W polu z wieloma listami wyboru można jednocześnie wybrać wiele elementów listy.
Możesz użyć właściwości Value pola listy, aby pobrać wybrany element z pola listy. Jednak w przypadku użycia pola listy wyboru wielokrotnego i próby pobrania wybranych elementów przy użyciu właściwości Value właściwość Value zwraca wartość Null.
Wybrane elementy można pobrać w polu listy wyboru, a następnie przechowywać wybrane elementy jako ciąg rozdzielany przecinkami programowo. Aby to zrobić, wykonaj następujące kroki.
Uruchom program Microsoft Access.
Otwórz przykładową bazę danych northwind.
W sekcji Obiekty w oknie Baza danych kliknij pozycję Formularze.
Uwaga W programie Access 2007 kliknij pozycję Projekt formularza w grupie Formularze na karcie Tworzenie .
W okienku po prawej stronie kliknij dwukrotnie pozycję Utwórz formularz w widoku projektu.
Uwaga W programie Access 2007 pomiń ten krok.
Dodaj następujące kontrolki do formularza, a następnie ustaw właściwości kontrolek zgodnie z podanymi instrukcjami:
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"
W menu Widok kliknij pozycję Kod.
Uwaga W programie Access 2007 kliknij pozycję Wyświetl kod w grupie Narzędzia na karcie Projektowanie .
Wklej następujący kod w Redaktor Visual Basic:
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
Zamknij Redaktor Visual Basic.
Zapisz formularz jako Formularz1.
Zamknij formularz.
Otwórz formularz Form1 w widoku formularzy:
W sekcji Obiekty okna bazy danych kliknij pozycję Formularze.
Uwaga W programie Access 2007 w okienku nawigacji kliknij grupę Formularze .
W okienku po prawej stronie kliknij prawym przyciskiem myszy pozycję Formularz1, a następnie kliknij przycisk Otwórz.
Uwaga W programie Access 2007 kliknij prawym przyciskiem myszy pozycję Formularz1, a następnie kliknij przycisk Otwórz.
Wybierz wiele elementów w polu listy. W tym celu kliknij element w polu listy, przytrzymaj klawisz CTRL, a następnie kliknij więcej elementów w polu listy.
Kliknij pozycję Wyświetl zaznaczone elementy.
Elementy wybrane z pola listy wyboru wielokrotnego są wyświetlane jako ciąg rozdzielany przecinkami w polu tekstowym.
Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost ani dorozumianej, w tym także, ale nie tylko, dorozumianej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu, jak działa określona procedura, ale nie będą modyfikować tych przykładów ani dodawać żadnych funkcji i konstruować nowych procedur w celu dostosowania ich do określonych potrzeb użytkownika.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla