-
XUẤT DỮ LIỆU TỪ LISTBOX VÀO TEXTBOX
yamakashi2003 > 22-11-19, 01:22 PM
Em chào các anh, chị trong group ạ,
Các bác cho em hỏi giả sử em có 1 listbox và 1 textbox, 1 commond button,
Trong listbox có 1 cột với 3 dòng là A, B, C. Em đã chọn thuộc tính Multi select của listbox là : Extend.
Các bác cho em hỏi là viết code như thế nào để khi em giữ Ctrl và kick vào các dòng trong listbox, giả sử kich cả A, C. thì khi click vào commondbutton. Nội dung trong textbox sẽ là: A, C ạ.
Tức là trong sự kiện onclick của commondbutton em nên viết gì để có thể truyền đồng thời nhiều dữ liệu từ listbox vào textbox ạ
Mong các bác giúp đỡ.
Em xin cảm ơn -
RE: XUẤT DỮ LIỆU TỪ LISTBOX VÀO TEXTBOX
ongke0711 > 22-11-19, 02:23 PM
Bạn dùng code này nhé.
Mã PHP:Dim item As Variant
Dim sDS As String
If Me.List0.ItemsSelected.Count <> 0 Then 'Neu co chon dòng thi moi xu ly'
For Each item In Me.List0.ItemsSelected
sDS = sDS & Me.List0.ItemData(item) & ", "
Next item
Else
MsgBox "Ban không chon dòng nào", vbInformation
Exit Sub
End If
sDS = Left$(sDS, Len(sDS) - 2)
Me.txtDanhSach.Value = sDS
Trong đó:
- List0 thay bằng tên Listbox của bạn
- txtDanhSach: là tên textbox hiển thị của bạn. -
RE: XUẤT DỮ LIỆU TỪ LISTBOX VÀO TEXTBOX
yamakashi2003 > 25-11-19, 12:17 AM
(22-11-19, 02:23 PM)ongke0711 Đã viết: Bạn dùng code này nhé.
Mã PHP:Dim item As Variant
Dim sDS As String
If Me.List0.ItemsSelected.Count <> 0 Then 'Neu co chon dòng thi moi xu ly'
For Each item In Me.List0.ItemsSelected
sDS = sDS & Me.List0.ItemData(item) & ", "
Next item
Else
MsgBox "Ban không chon dòng nào", vbInformation
Exit Sub
End If
sDS = Left$(sDS, Len(sDS) - 2)
Me.txtDanhSach.Value = sDS
Trong đó:
- List0 thay bằng tên Listbox của bạn
- txtDanhSach: là tên textbox hiển thị của bạn.
Em cám ơn bác nhiều,
bác cho em hỏi dòng lệnh này có ý nghĩa gì ạ:
sDS = Left$(sDS, Len(sDS) - 2)
Left$ nghĩa là gì vậy bác,
em xin cảm ơn bác -
RE: XUẤT DỮ LIỆU TỪ LISTBOX VÀO TEXTBOX
ongke0711 > 25-11-19, 12:27 AM
(25-11-19, 12:17 AM)yamakashi2003 Đã viết: sDS = Left$(sDS, Len(sDS) - 2)
Left$ nghĩa là gì vậy bác,
Trong code có câu lệnh:
sDS = sDS & Me.List0.ItemData(item) & ", "
Thì cái vụ Left$... là để cắt bỏ cái dấu phẩy + khoảng trắng (2 ký tự) cuối chuỗi sDS.
Còn hàm Left và Left$ khác nhau ở chỗ hàm Left$ là chỉ dành cho tham số là String, hàm Left thì tham số là Variant. Bạn đã xác định chuỗi sDS là String thì dùng Left$, nó sẽ xử lý nhanh hơn so với Left(). Code C++ của hàm Left cho tham số Variant dài hơn. -
RE: XUẤT DỮ LIỆU TỪ LISTBOX VÀO TEXTBOX
yamakashi2003 > 07-09-20, 01:14 PM
(25-11-19, 12:27 AM)ongke0711 Đã viết: [quote="yamakashi2003" pid='43738' dateline='1574612221']
Bác ơi,
có phải câu lệnh này là áp dụng với những dữ liệu đang được chọn trong listbox:
For Each item In Me.List0.ItemsSelected
Vậy em muốn áp dụng với tất cả dữ liệu có trong listbox thì nên thay .itemselected bằng gì ạ,
Em xin cảm ơn -
RE: XUẤT DỮ LIỆU TỪ LISTBOX VÀO TEXTBOX
AnNguyen > 07-09-20, 05:03 PM
(07-09-20, 01:14 PM)yamakashi2003 Đã viết: Bác ơi,
Bạn dùng hàm FOR nhé,
có phải câu lệnh này là áp dụng với những dữ liệu đang được chọn trong listbox:
For Each item In Me.List0.ItemsSelected
Vậy em muốn áp dụng với tất cả dữ liệu có trong listbox thì nên thay .itemselected bằng gì ạ,
Em xin cảm ơn
1: là vị trí của cột, i là vị trí dòng đi qua
Mã:For i = 0 To List1.ListCount - 1
sDS = sDS & Me.List0.Column(1,i)
Next i -
RE: XUẤT DỮ LIỆU TỪ LISTBOX VÀO TEXTBOX
yamakashi2003 > 07-09-20, 09:55 PM
(07-09-20, 05:03 PM)AnNguyen Đã viết:
Em cảm ơn ạ,(07-09-20, 01:14 PM)yamakashi2003 Đã viết: Bác ơi,
Bạn dùng hàm FOR nhé,
có phải câu lệnh này là áp dụng với những dữ liệu đang được chọn trong listbox:
For Each item In Me.List0.ItemsSelected
Vậy em muốn áp dụng với tất cả dữ liệu có trong listbox thì nên thay .itemselected bằng gì ạ,
Em xin cảm ơn
1: là vị trí của cột, i là vị trí dòng đi qua
Mã:For i = 0 To List1.ListCount - 1
sDS = sDS & Me.List0.Column(1,i)
Next i
Em cũng nghĩ ra cách đó,
Nhưng do thấy có thuộc tính .itemdata của listbox Khi gõ code mà dùng thử thì không ra,
nên muốn hỏi các tiền bối xem có cách nào ngắn hơn dùng vòng lặp không ạ -
RE: XUẤT DỮ LIỆU TỪ LISTBOX VÀO TEXTBOX
ongke0711 > 07-09-20, 11:33 PM
(07-09-20, 09:55 PM)yamakashi2003 Đã viết: Nhưng do thấy có thuộc tính .itemdata của listbox Khi gõ code mà dùng thử thì không ra,
nên muốn hỏi các tiền bối xem có cách nào ngắn hơn dùng vòng lặp không ạ
- Listbox,ItemSelected trả về một Collection các Item được click chọn. Mỗi Item trong Collection này là một số Integer là số dòng của Item được chọn đó.
- Dùng .Column hay .ItemData đều được.
Còn bạn hỏi "có cách nào ngắn hơn.." thì câu hỏi nào không rõ ràng về hoàn cảnh xử lý.
- Dùng vòng lặp: nếu bạn muốn xử lý một tác vụ gì đó cần cái đặc tính của từng item trong vòng lặp.
- Nếu muốn lấy nguyên Danh sách của Listbox thì bạn ngâm cứu tới thuộc tính Row Source hoặc Recordset của nó.