• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

ListBox chuẩn có nhiều cột

Các thủ thuật liên quan đến việc xử lý ứng dụng, biểu mẫu và control
User avatar
truongphu
VIP
VIP
Posts: 4765
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

ListBox chuẩn có nhiều cột

Postby truongphu » Fri 16/01/2009 4:35 pm

Thủ thuật: ListBox chuẩn có nhiều cột
Tác giả: truongphu
Mô tả: ListBox chuẩn (List1) có nhiều cột
Trình bày dữ liệu không cho edit



Chỉ cần List1 và code sau:

Code: Select all

  1. Option Explicit
  2.   Private Const LB_SETTABSTOPS As Long = &H192&
  3.   Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
  4.   (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, lParam As Any) As Long
  5.  
  6. Private Sub Form_Load()
  7.   ReDim TabStops(1) As Long
  8.  
  9.   TabStops(0) = 32
  10.   TabStops(1) = 113
  11.  
  12.   Call SendMessage(List1.hWnd, LB_SETTABSTOPS, 2&, TabStops(0))
  13.  
  14.   Dim i&, Ngày As Date: Ngày = #5/8/1990#
  15.   List1.AddItem "STT" & vbTab & "Ho và Tên" & vbTab & "Ngày Sinh"
  16.   For i = 2 To 31
  17.     List1.AddItem i - 1 & vbTab & "Hoc Sinh " & CStr(i - 1) & _
  18.     vbTab & Ngày
  19.     Ngày = Ngày + 17
  20.   Next
  21.  
  22. End Sub


Hay không? Cảm ơn đã đọc bài. Xin nhấn nút Thank tại đây


o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

User avatar
truongphu
VIP
VIP
Posts: 4765
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Re: ListBox chuẩn có nhiều cột

Postby truongphu » Sun 18/01/2009 10:38 am

Để minh họa bài viết trên rõ ràng hơn: tôi dùng ADODB để truy xuất dữ liệu file text, cho hiện ta list1
(Ghi chú: file text không dùng Unicode)

Code: Select all

  1. Private Const LB_SETTABSTOPS As Long = &H192&
  2.   Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
  3.   (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, lParam As Any) As Long
  4. Private Sub Form_Load()
  5. Dim Cn As New ADODB.Connection
  6. Dim Rs As New ADODB.Recordset
  7. Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
  8.           "Data Source=" & App.Path & "\" & _
  9.           ";Extended Properties=""text;HDR=YES;FMT=Delimited"""
  10.  
  11. Rs.Open "SELECT * FROM Danhsách.txt", _
  12.           Cn, adOpenStatic, adLockOptimistic, adCmdText
  13.  
  14.   ReDim TabStops(1) As Long
  15.  
  16.   TabStops(0) = 32
  17.   TabStops(1) = 113
  18.  
  19.   Call SendMessage(List1.hWnd, LB_SETTABSTOPS, 2&, TabStops(0))
  20.  
  21.   List1.AddItem "STT" & vbTab & "Ho và Tên" & vbTab & "Ngày Sinh"
  22.     Do While Not Rs.EOF
  23.         List1.AddItem Rs!STT & vbTab & Rs!HovàTên & vbTab & Rs!NgàySinh
  24.         Rs.MoveNext
  25.     Loop
  26.  
  27. End Sub
Attachments
CSDL là Text file.rar
(1.76 KiB) Downloaded 895 times
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

User avatar
playgemboy
Thành viên danh dự
Thành viên danh dự
Posts: 289
Joined: Sun 13/04/2008 6:10 am
Location: Bình Phú, Quận 6, TP.HCM
Been thanked: 1 time
Contact:

Re: ListBox chuẩn có nhiều cột

Postby playgemboy » Sat 24/01/2009 8:50 am

Chịu thua bác TruongPhu luôn, kiến thức của cháu còn rất bị hạn chế, cái code này của bác hay thật, cháu hiểu nôm na cái code của bác dùng tab để chia thành cột
Nhưng lần đầu tiên cháu thấy cách đọc file text kiểu như vậy, còn chia ra được từng trường, giống như đang đọc file .mdb vậy, liệu cháu có thể thao tác dữ liêu được hay không?(thêm, xóa, cập nhật....), bằng cách nào?

Nhân tiện cho cháu hỏi 1 chút về code:
ReDim TabStops(1)...

Cháu không thấy bác khai báo biến này, vậy tại sao có thể Redim (phải Dim bien() .. rồi mới Redim Bien(x) ... chứ nhỉ, lạ thật

...adOpenStatic, adLockOptimistic, adCmdText...
những cái này có phải giống như hằng cung cấp sẵn phải ko bác truongphu?
<I Come Back>

User avatar
truongphu
VIP
VIP
Posts: 4765
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Re: ListBox chuẩn có nhiều cột

Postby truongphu » Tue 27/01/2009 8:43 am

CHÚC MỪNG NĂM MỚI!
playgemboy wrote:dùng tab để chia thành cột

- Đúng

playgemboy wrote:chia ra được từng trường, giống như đang đọc file .mdb vậy, liệu cháu có thể thao tác dữ liêu được hay không?(thêm, xóa, cập nhật....), bằng cách nào?

truongphu wrote:Mô tả: ListBox chuẩn (List1) có nhiều cột
Trình bày dữ liệu không cho edit


playgemboy wrote:không thấy bác khai báo biến này, vậy tại sao có thể Redim (phải Dim bien() .. rồi mới Redim Bien(x) ... chứ nhỉ

TabStops là biến có sẵn của VB, thật ra nó có thể là Class, là Property tùy sử dụng. Nói chung nó là một Object, là một biến có sẵn

playgemboy wrote:...adOpenStatic, adLockOptimistic, adCmdText...
những cái này có phải giống như hằng cung cấp sẵn phải ko bác truongphu?

- Đúng thế, xem: Kết nối CSDL, ADODB. Cập nhật thường xuyên. Mục Lục
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

kaildo
Thành viên chính thức
Thành viên chính thức
Posts: 43
Joined: Fri 26/11/2010 12:57 am
Has thanked: 6 times
Been thanked: 3 times

Re: ListBox chuẩn có nhiều cột

Postby kaildo » Mon 07/10/2013 3:29 am

Bác Phú cho hỏi mình có lấy được stt hay tên hay năm sinh khi click vào từng dòng ko nhĩ.


Return to “[VB] Ứng dụng - Form và Control”

Who is online

Users browsing this forum: No registered users and 1 guest