Làm thế nào để lấy các mục đã chọn trong nhiều lựa chọn hộp danh sách là một chuỗi ph
cctdxuyen > 19-11-13, 04:22 PM
Microsoft Access, giá trị của thuộc tính MultiSelect hộp danh sách trong biểu mẫu hoặc báo cáo xác định xem hộp danh sách có hộp danh sách lựa chọn một hoặc nhiều lựa chọn hộp danh sách. Trong hộp danh sách nhiều lựa chọn, bạn có thể chọn nhiều danh mục một lúc.
Bạn có thể sử dụng thuộc tính giá trị của hộp danh sách nhận các mục đã chọn từ hộp danh sách. Tuy nhiên, khi bạn sử dụng nhiều lựa chọn hộp danh sách và bạn cố gắng lấy các mục đã chọn bằng cách sử dụng thuộc tính giá trị thuộc tính giá trị trả lại Null.
Bạn có thể lấy các mục đã chọn trong hộp danh sách lựa chọn nhiều và sau đó lưu trữ các mục đã chọn là một chuỗi phân cách bằng dấu phẩy lập. Để thực hiện việc này, hãy làm theo các bước sau: 1.Khởi động Microsoft Access.
2.Mở cơ sở dữ liệu mẫu Northwind.
3.Trong đối tượng của cửa sổ cơ sở dữ liệu, bấm vào biểu mẫu.
Chú ý Trong Access 2007, bấm vào Biểu mẫu thiết kế mẫu nhóm tab tạo .
4.Trong ngăn bên phải, bấm đúp vào tạo mẫu trong cửa sổ thiết kế.
Chú ý Trong Access 2007, bỏ qua bước này.
5. Thêm các điều khiển mẫu, và sau đó đặt thuộc tính điều khiển như đã nêu:
List Box
----------------------------------------------------
Name : NamesList
Row Source Type : Table/Query
Row Source : SELECT FirstName 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"
6.Trên menu xem , nhấp vào mã.
Chú ý Trong Access 2007, bấm vào Xem mã trong nhóm công cụ trên tab thiết kế .
7.Dán mã sau trong 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
8.Đóng Visual Basic Editor.
9.Lưu hình thức Form1.
10.Đóng mẫu.
11.Mở mẫu Form1 nhìn biểu mẫu: a.Trong đối tượng của cửa sổ cơ sở dữ liệu , bấm vào biểu mẫu.
Chú ý Trong Access 2007, trong ngăn điều hướng, bấm vào biểu mẫu nhóm.
b.Trong ngăn bên phải, bấm chuột phải vào Form1, và sau đó nhấp vào mở.
Chú ý Trong Access 2007, bấm chuột phải vào Form1, và sau đó nhấp vào mở.
12.Chọn nhiều mục trong hộp danh sách. Để thực hiện việc này, bấm vào một mục trong danh sách hộp, Giữ phím CTRL và sau đó nhấp vào mục khác trong hộp danh sách.
13.Nhấp vào Hiển thị khoản mục đã chọn.
Các mục đã chọn từ hộp danh sách nhiều lựa chọn được hiển thị như là một chuỗi phân cách bằng dấu phẩy trong hộp văn bản.
Microsoft cung cấp mô hình lập trình để minh hoạ, không bảo hành hoặc rõ ràng hay ngụ ý. Điều này bao gồm, nhưng không giới hạn ở các bảo đảm cho một mục đích cụ thể hoặc sự. Bài viết này giả định rằng bạn đã quen với ngôn ngữ lập trình đang được giải thích và các công cụ được sử dụng để tạo và quy trình gỡ lỗi. Các kỹ sư hỗ trợ Microsoft có thể giúp giải thích các chức năng của một quy trình cụ thể, nhưng họ sẽ không sửa đổi các ví dụ để cung cấp thêm chức năng hoặc xây dựng quy trình nhằm đáp ứng yêu cầu cụ thể của bạn.
----------------------------
Anh chị nào có file mẫu của hướng dẫn này không, xin chia sẻ lên với.