Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Thủ Thuật] Lọc điều kiện theo nhiều dòng trong 1 Listbox hoặc nhiều Listbox
#1
Chào các bạn,

Mình chia sẽ 1 hàm nhỏ để xử lý chọn nhiều điều kiện trong 1 listbox hay nhiều listbox cùng lúc.
- Mục đích của hàm ChuoiDieuKien () là kết hợp các dòng được chọn trong 1 hoặc nhiều Listbox thành một chuỗi với các điều kiện  cách nhau dấu phẩy "," (nếu là number) hoặc dấu ngoặc kép " " (nếu là text). Sau đó sử dụng kết quả này cho query, câu lệnh SQL để lọc dữ liệu.
- Để chọn được nhiều dòng trong Listbox bạn vô Form Properties - Other, chọn Multi select: Extended (hoặc Simple). Bạn chọn thử sẽ thấy sự khác biệt giữa Extended và Simple.

[Hình: 30483340791_993a143189_z.jpg]



File demo: MultiSelectListBox.mdb
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn ledangvan , tranthanhan1962 , Yến , Che_Guevara , caytregiavn77
#2
Hi! xin chào bạn ongke0711, đọc qua bài MultiSelectlistBox của bạn, mình đã làm được rất nhiều việc, cám ơn bạn ongke0711 nhiều.
Bạn ongke0711 có thể cho mình hỏi 2 vấn đề nha (cái này mình đang làm nhưng không bít cách):
1/ Mình có thể tìm kiếm THÊM trên textbox được không bạn?
2/ Kết quả tìm, mình có thể xuất trên listbox (vì để mình doubleclick recore đó) để chỉnh sửa.
Trân trọng.
Chữ ký của caytregiavn77 caytregiavn77,gia nhập Thủ Thuật Access từ 13-01 -16.
Reply
Những người đã cảm ơn
#3
1. Có thể thêm điều kiện trên textbox được bạn à. Cần chỉnh code lại chút ít. Cái hàm ChuoiDieuKien() viết áp dụng cho listbox nên nếu thêm điều kiện textbox bạn sẽ thêm riêng các điều kiện này vào biến "dieukienloc".
2. Kết quả sẽ là row source cho listbox vẫn đuợc bạn à.
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn caytregiavn77
#4
Cám ơn bạn ongke0711  nhiều! vẫn ví dụ trên (theo hướng dẫn của bạn, mình làm tìm 3 điều kiện trên 3 listbox) bạn có thể chỉ dẫn mình phần tìm kiếm cho textbox và kết quả cho listbox nha bạn. Mình rất cám ơn bạn nhiều. Mình công tác ở Quận 3 - TPHCM. Không biết bạn ở đâu?
Trân trọng.
Chữ ký của caytregiavn77 caytregiavn77,gia nhập Thủ Thuật Access từ 13-01 -16.
Reply
Những người đã cảm ơn
#5
Bạn up file mẫu data của bạn lên để làm mẫu cho nhanh.
Vd: theo như file demo của tôi, sau khi bạn có được biến dieukienloc của 3 listbox bạn thêm dòng code cho biến này như sau (khỏi phải viết hàm) 
dieukienloc=dieukienloc & " AND [Tên trường muốn lọc] = " & Me.TexboxTHEM
Có bao nhiêu textbox thêm thì cứ thêm dòng code trên.
Chú ý nếu điều kiện dạng TExt thì phải thêm dấu nháy đơn ' sau dấu "=".
 Vd: dieukienloc=dieukienloc & " AND [Tên trường muốn lọc] = '" & Me.TexboxTHEM & "'"

(Ps: Tôi ở quận 1)
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn caytregiavn77
#6
Cám ơn bạn ongke0711, sau khi được bạn hướng dẫn, mình đã làm phần textbox được rồi, tuy nhiên khi mình không điền dữ liệu lọc trên textbox thì nó vẫn lọc (cái này mình không làm được), mình up dữ liệu lên để bạn có thể chỉ dẫn cho dễ; phần dữ liệu xuất ra listbox thì mình đã làm thử (mặc dù cũng được, tuy nhiên không bít có bị sai gì không).
P/s:  Đây là chương trình đầu tay mình làm để quản lý cán bộ trong cơ quan, mong được bạn xem, và cho ý kiến để phần mình được hoàn thiện hơn.
Trân trọng.
Dữ liệu http://www.mediafire.com/download/8w9s84...016%29.rar
Chữ ký của caytregiavn77 caytregiavn77,gia nhập Thủ Thuật Access từ 13-01 -16.
Reply
Những người đã cảm ơn
#7
Về phần lọc dữ liệu của textbox của bạn là tên cán bộ dạng text thì bạn sửa code của biến dieukienloc đang sử dụng dấu "=" thành "Like" và thêm Default value của textbox [ten] là dấu "*". Dấu "*" này để khi bạn không nhập tên cần tìm thì điều kiện lọc là sẽ tự động tìm tất cả tên (like '*')
 dieukienloc = dieukienloc & " AND [ten] Like '" & Me.Txt_ten & "'"
Một số góp ý thêm về thiết kế form:
- Bạn nên sử dụng các ký tự đầu đại diện cho table, form... chuẩn hoá để đơn giản các tên Table, tránh dài dòng sau này  viết code cũng mệt. Vd: Table_datacanbo => tblDataCanBo. Cái này trên net có đó bạn.
- Tôi thấy các form cập nhật danh mục bạn làm riêng từng form thì tôi nghĩ nếu các form này có điểm chung thì gộp vô 1 form có nhiều Tab (như cái form tìm kiếm của bạn) để User muốn cập nhật dữ liệu cũng tiện.
- Bạn có sử dụng module message box tiếng Việt MsgBoxUni rồi thì không cần dùng hàm Dlookup để tìm nội dung thông báo tiếng Việt. Dùng 1 trong 2 cách thôi. Để chuyển chuỗi unicode tiếng Việt ra chuỗi mã Unicode dùng trong VBA thì cũng có tool trong diễn đàn rồi đó. Link: http://thuthuataccess.com/forum/thread-4302.html
- Về giao diện form bạn cứ xem giao diện mấy cái ứng dụng chuyện nghiệp khác để tham khảo cách bố cục, màu sắc v.v.. (thường thì không dùng quá 3 màu trong form ngoại trừ các icon nút lệnh). Các nút lệnh bạn làm to hơn các item khác có nghĩa là bạn muốn người ta chú ý tới nút lệnh hơn các nội dung khác. Bạn nên chú ý phần nào cần nhấn, chú ý (focus) thì highlight nó tránh thiết kế cái nào cũng nổi bật thì thành ra User không biết focus vô cái nào.
Vài dòng góp ý vậy thôi, bạn cứ làm, tham khảo rồi nghiệm ra tiếp bởi vậy phần mềm mới có nhiều phiên bản.. 007
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#8
Cám ơn bạn ongke0711, đầu tiên xin cám ơn những phần góp ý đầy chân tình của bạn, qua góp ý của bạn, mình đang làm:
 
1/ Phần Lọc textbox: Mình đã làm được rồi;
2/ Phần chỉnh lại tên các table, Queries ....: mình đang chỉnh sửa
3/ Phần thiết kế Form: mình còn non kinh nghiệm lắm; cũng ko biết các ứng dụng nào chuyên nghiệp, có thể bạn chia sẽ những giao diện ứng dụng chuyên nghiệp để mình học hỏi thêm;
------- còn các phần code hoặc phần quan hệ, bạn xem có chỉ dẫn gì cho mình thêm không?
Trân trọng!
Ps: Mai mình trực, nếu được mình sẽ alo cho bạn nha.????"
Chữ ký của caytregiavn77 caytregiavn77,gia nhập Thủ Thuật Access từ 13-01 -16.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
Question [Help] Link tất các table trong một file.mdb bằng VBA MinhnHang 9 242 09-12-16, 06:11 PM
Bài mới nhất: maidinhdan
  Tìm mã theo một mã cho trước toanle 4 118 08-12-16, 01:17 PM
Bài mới nhất: ongke0711
  [Thủ Thuật] Tìm số thứ tự bị thiếu trong dãy toanle 8 205 07-12-16, 02:25 PM
Bài mới nhất: toanle
  Tránh xung đột dữ liệu trong access quocdung9999 16 1,703 23-11-16, 11:13 AM
Bài mới nhất: quocdung9999
  [Hỏi] Kết nối nhiều lần hay kết nối 1 lần trong ADO ưu điểm hơn Minh Tiên 1 125 10-11-16, 10:41 AM
Bài mới nhất: maidinhdan

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ