Tải dữ liệu vào listbox vào các hàng khác nhau (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

quoc nhat

Thành viên tiêu biểu
Tham gia
8/3/12
Bài viết
567
Được thích
43
Nghề nghiệp
cán bộ ngành y tế
Xin chà các anh chị
Em có File excel kính nhờ các anh chị giúp đỡ
Em có 1 Form tìm kiếm khi nhập mã thẻ vào Textbox thì sẻ tìm dữ liệu trên sheet Data.
Nhưng vấn đề ở đây là em muốn dữ liệu tìm được sẽ load vào các hàng khác nhau trên listbox chứ không muốn hiển thị như củ
Nhờ các anh chị giúp em với
em cảm ơn nhiều
 

File đính kèm

Bạn nói chung chung quá, chả tưởng tượng được khác là khác như thế nào! load ra sao!
 
Upvote 0
Bạn nói chung chung quá, chả tưởng tượng được khác là khác như thế nào! load ra sao!
Dạ thưa anh có nghĩa là dòng dữ liệu tìm kiếm được
ví dụ:
tên của bệnh nhân sẽ ở một dòng
tuổi ở 1 dòng
và các cột khác cũng sẽ được chia ra ở các dòng khác nhau trên listbox đó anh
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ thưa anh có nghĩa là dòng dữ liệu tìm kiếm được
ví dụ:
tên của bệnh nhân sẽ ở một dòng
tuổi ở 1 dòng
và các cột khác cũng sẽ được chia ra ở các dòng khác nhau trên listbox đó anh
Bạn thể hiện trên sheet như thế nào tôi xem! Thêm 1 sheet và xem sheet đó là kết quả của ListBox sau khi lọc. Tôi xem khả năng tôi có lọc được như bạn nói không rồi tính tiếp.
 
Upvote 0
Xin chà các anh chị
Em có File excel kính nhờ các anh chị giúp đỡ
Em có 1 Form tìm kiếm khi nhập mã thẻ vào Textbox thì sẻ tìm dữ liệu trên sheet Data.
Nhưng vấn đề ở đây là em muốn dữ liệu tìm được sẽ load vào các hàng khác nhau trên listbox chứ không muốn hiển thị như củ
Nhờ các anh chị giúp em với
em cảm ơn nhiều

Chào bạn,

Chờ mình ăn cơm xong mình viết cho bạn đoạn code lấy dữ liệu và đưa vào ListBox cho nhé!
Còn lại bạn muốn lấy khi nào thì tùy bạn: change, click button, nhập đủ kí tự v.v...
Nếu bạn muốn thử thì mình có gợi ý như thế này, như mình làm thì có 2 cách:
1 là bạn dùng hàm của excel: match, index để tìm hàng, sau đó lấy lên ListBox
2 là dùng ADO để lấy

Chúc buổi tối vui vẻ!
Thân
 
Upvote 0
Ý em như trong sheet" Mô phỏng" đó anh
Anh xem giúp em nhé
em sửa lại bài viết và thay đổi File đính kèm không hiếun sao không xóa được file củ
anh thông cảm
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Chào bạn,

Chờ mình ăn cơm xong mình viết cho bạn đoạn code lấy dữ liệu và đưa vào ListBox cho nhé!
Còn lại bạn muốn lấy khi nào thì tùy bạn: change, click button, nhập đủ kí tự v.v...
Nếu bạn muốn thử thì mình có gợi ý như thế này, như mình làm thì có 2 cách:
1 là bạn dùng hàm của excel: match, index để tìm hàng, sau đó lấy lên ListBox
2 là dùng ADO để lấy

Chúc buổi tối vui vẻ!
Thân
Cảm ơn bạn hiện tại trình đọ mình còn kém về món Excel này lắm
Bạn giúp mình nghe
 
Upvote 0
Dạ thưa anh có nghĩa là dòng dữ liệu tìm kiếm được
ví dụ:
tên của bệnh nhân sẽ ở một dòng
tuổi ở 1 dòng
và các cột khác cũng sẽ được chia ra ở các dòng khác nhau trên listbox đó anh

Tại sao em không làm như những cái đã có sẳn (thể hiện nội dung 1 dòng trong ListBox) mà lại tự làm khó mình là thể hiện lên 4 nội dung là 4 dòng trong ListBox, cái này hơi khó hiểu đó.
 
Upvote 0
Ý em như trong sheet" Mô phỏng" đó anh
Anh xem giúp em nhé
em sửa lại bài viết và thay đổi File đính kèm không hiếun sao không xóa được file củ
anh thông cảm
Hỏi nhỏ một tí, bạn ưu tiên lọc từ khóa tại cột 4, tức cột mã thẻ à?
 
Upvote 0
Có phải nhấp vào dòng nào của listbox thì nó nạp xuống sheet Mô phỏng?
 

File đính kèm

Upvote 0
Cảm ơn bạn hiện tại trình đọ mình còn kém về món Excel này lắm
Bạn giúp mình nghe

Chào bạn,

Mình đã làm như file đính kèm bạn xem thử xem sao!
Mình viết và gọi hàm trong sự kiện sau:
Private Sub Searchbtn_Click()
FindfollowingPatientNumber Trim(tbxTuKhoa.Text)
End Sub
Nếu bạn muốn gọi khi kết thúc nhập thì sửa lại phù hợp nhé!

Thân
 

File đính kèm

Upvote 0
Tôi đã làm thế này:

1) Chọn cột cần lọc, tôi mặc định là cột 4

2) Gõ từ khóa cần lọc để lọc danh sách vào ListBox

3) Click vào mục nào đó trên ListBox thì sẽ chuyển nội dung của 4 mục trên sheet mô phỏng vào mỗi TextBox tương ứng.

Đây là code chính:

1) Lọc theo từ khóa:

Mã:
Private Sub tbxTuKhoa_Change()
    Dim GetRows()
    Dim strType As String
    Dim n As Long, r As Long
    ''strType = "*" & UCase(tbxTuKhoa) & "*"  ''<-- Neu muon loc bat ky
    strType = UCase(tbxTuKhoa) & "*"
    ReDim GetRows(1 To pub_Ubd)
    For r = 1 To pub_Ubd
        If UCase(pub_ArrDanhMuc(r, cbxCotLoc)) Like strType Then
            n = n + 1
            GetRows(n) = r
        End If
    Next
    If n Then
        Dim ArrFilter(), c As Byte
        ReDim ArrFilter(1 To n, 1 To 6)
        For r = 1 To n
            For c = 1 To 6
                ArrFilter(r, c) = pub_ArrDanhMuc(GetRows(r), c)
            Next
        Next
        lstDanhmuc.List = ArrFilter
    Else
        lstDanhmuc.List = Array()
    End If
End Sub

2) Thủ tục chuyển vào các TextBox:

Mã:
Private Sub lstDanhmuc_Change()
    With lstDanhmuc
        If .ListCount Then
            tbxHoTen = .Value
            tbxNamSinh = IIf(.List(, 1) = "", .List(, 2), .List(, 1))
            tbxBHYT = .List(, 3)
            tbxMaDangKy = .List(, 4)
        End If
    End With
End Sub
 

File đính kèm

Upvote 0
Tôi đã làm thế này:

1) Chọn cột cần lọc, tôi mặc định là cột 4

2) Gõ từ khóa cần lọc để lọc danh sách vào ListBox

3) Click vào mục nào đó trên ListBox thì sẽ chuyển nội dung của 4 mục trên sheet mô phỏng vào mỗi TextBox tương ứng.

Đây là code chính:

1) Lọc theo từ khóa:

Mã:
Private Sub tbxTuKhoa_Change()
    Dim GetRows()
    Dim strType As String
    Dim n As Long, r As Long
    ''strType = "*" & UCase(tbxTuKhoa) & "*"  ''<-- Neu muon loc bat ky
    strType = UCase(tbxTuKhoa) & "*"
    ReDim GetRows(1 To pub_Ubd)
    For r = 1 To pub_Ubd
        If UCase(pub_ArrDanhMuc(r, cbxCotLoc)) Like strType Then
            n = n + 1
            GetRows(n) = r
        End If
    Next
    If n Then
        Dim ArrFilter(), c As Byte
        ReDim ArrFilter(1 To n, 1 To 6)
        For r = 1 To n
            For c = 1 To 6
                ArrFilter(r, c) = pub_ArrDanhMuc(GetRows(r), c)
            Next
        Next
        lstDanhmuc.List = ArrFilter
    Else
        lstDanhmuc.List = Array()
    End If
End Sub

2) Thủ tục chuyển vào các TextBox:

Mã:
Private Sub lstDanhmuc_Change()
    With lstDanhmuc
        If .ListCount Then
            tbxHoTen = .Value
            tbxNamSinh = IIf(.List(, 1) = "", .List(, 2), .List(, 1))
            tbxBHYT = .List(, 3)
            tbxMaDangKy = .List(, 4)
        End If
    End With
End Sub

Chào bạn,

Mình thì theo ý tác giả còn bạn thì nghĩ ra cách rất hay.
Ban đầu mình nghĩ đến DataGridView nhưng sợ phiên bản excel cũ không có.
Cảm ơn vì dc học hỏi thêm từ bạn!

Thân
 
Upvote 0
Cảm ơn các bài trả lời của các chị. Có quá nhiều cách để tham khảo và học hỏi
Cảm ơn các anh chị
P/s: không giám chê bài của các anh chị khác nhưng em thấy cách của anh Nghĩa là hay nhất làm ngay trên Form trong rất Pro
 
Upvote 0
Tại sao em không làm như những cái đã có sẳn (thể hiện nội dung 1 dòng trong ListBox) mà lại tự làm khó mình là thể hiện lên 4 nội dung là 4 dòng trong ListBox, cái này hơi khó hiểu đó.
Tại em muốn tham khảo theo cách mới đó anh be09 ạ
 
Upvote 0
Tại em muốn tham khảo theo cách mới đó anh be09 ạ

Cách này tham khảo chơi cho vui thôi chứ anh thấy chẳng hay ho gì, và cũng chẳng giúp ích được gì vì các nguyên nhân sau:

- Nếu sau khi tìm mà ListBox có nhiều đối tượng thì lúc hiện ra cho dù có hiện ra tất cả thì cũng sẽ rối rắm (hàng ngang sẽ dễ nhìn hơn hàng dọc).

- Sử dụng cách này thì phải thêm Code và cũng sẽ dễ bị mắc lỗi.

Sao em không tham khảo File theo dõi công văn đến anh có Up lên diễn đàn đã lâu rồi, có sử ListBox Load vào Form dễ nhìn và thuận tiện cho việc tìm kiếm, thêm, bớt, sửa, xóa (trong File này anh không khóa code) em tha hồ mà Voọc cho thỏa chí tang bồng.
 
Lần chỉnh sửa cuối:
Upvote 0
Cách này tham khảo chơi cho vui thôi chứ anh thấy chẳng hay ho gì, và cũng chẳng giúp ích được gì vì các nguyên nhân sau:

- Nếu sau khi tìm mà ListBox có nhiều đối tượng thì lúc hiện ra cho dù có hiện ra tất cả thì cũng sẽ rối rắm (hàng ngang sẽ dễ nhìn hơn hàng dọc).

- Sử dụng cách này thì phải thêm Code và cũng sẽ dễ bị mắc lỗi.

Sao em không tham khảo File theo dõi công văn đến anh có Up lên diễn đàn đã lâu rồi, có sử ListBox Load vào Form dễ nhìn và thuận tiện cho việc tìm kiếm, thêm, bớt, sửa, xóa (trong File này anh không khóa code) em tha hồ mà Voọc cho thỏa chí tang bồng.
Anh biết không? Em định dùng cách này để hiện thị từng đơn thuốc mà bác sĩ kê cho bệnh nhân vì khi ghi dũ liệu em ghi theo dòng( mổi loại thuốc em ghi vào từng cột theo 1 dòng tương ứng theo mã của bệnh nhân đó) nhưng khi muốn kiểm tra lại các đơn thuốc đã kê thì muốn hiển thị từng loại thuốc của 1 đơn theo các dòng khác nhau cho dể nhìn. Nên em đưa suy nghĩ này lên để xin bài tham khảo cho ý muốn của mình. Cuối cùng cũng tìm ra cách.
Thực ra em đã sử dụng cách khác mà không phải theo bài của anh Nghĩa hay các anh chị khác đã trả lời em trong topic này đó là dùng hàm Vlookup trong sheet phụ để tìm mã thẻ được chọn trong Listbox sau đó load ngược lên Form(2 form khác nhau). Nhưng em lại gặp một vấn đề là hàm Vlookup không phân biệt được các đơn thuốc khác nhau nhưng có mã trùng nhau. Anh có biết cách nào( dùng hàm nào) để khắc phục được lỗi này không, chỉ em cách với.
Cảm ơn anh đã quan tâm đến Topic này.
 
Lần chỉnh sửa cuối:
Upvote 0

Bài viết mới nhất

Back
Top Bottom