Đánh giá chủ đề:
  • 1 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hướng dẫn] Tạo form tìm kiếm theo nhiều tiêu chí khác nhau
#11
(24-06-12, 07:45 PM)khanhduycsgt Đã viết: Mình cũng biết được cách làm thông qua 1 trang web hướng dẫn trên mạng, mình cũng tự mò và cũng phát triển thêm về cách thức tạo form tìm kiếm theo nhiều tiêu chí khác nhau này.

Cách này dựa trên tìm kiếm bằng câu lệnh SQL.
Ví dụ ta có table tblTHONGTIN có các field như sau: MaCB, Hovaten, Ngaysinh, Quequan, Dantoc
Giờ ta muốn tạo 1 form tìm kiếm với tất cả các tiêu thí trong các field trên, dạng như form này:

[Hình: 1.jpg]

- Ta tạo các textbox để nhập khóa tìm kiếm lần lượt có tên là: txtMaCB, txtHovaten, txtNgaysinh, txtQuequan, txtDantoc
- Tạo 1 Listbox tên là lstDANHSACH để chứa kết quả tìm kiếm, listbox này không cần thiết phải đặt rowsource, ta chỉ chỉnh số CoulumWidths sao cho hiển thị đẹp và phù hợp với độ dài text trong field là được.

Code cho nút cmdTimkiem như sau:
Mã:
Dim s, s1, s2, s3, s4, s5 As String 'Khai bao cac bien chua thong tin

'Day la dong lenh SQL de apply cho lstDANHSACH.rowsource:
s = "SELECT tblTHONGTIN.MaCB, tblTHONGTIN.Hovaten, tblTHONGTIN.Ngaysinh, tblTHONGTIN.Quequan, tblTHONGTIN.Dantoc FROM tblTHONGTIN WHERE (1=1"

'Day la cac phan mo rong de chen vao sau doan SQL tren:
s1 = " AND ((tblTHONGTIN.MaCB) = " & [txtMaCB] & ")"
s2 = " AND ((tblTHONGTIN.Hovaten) like '" & "*" & [txtHovaten] & "*" & "')"
s3 = " AND ((tblTHONGTIN.Ngaysinh)=" & [txtNgaysinh & ")"
s4 = " AND ((tblTHONGTIN.Quequan) like '" & "*" & [txtQuequan] & "*" & "')"
s5 = " AND ((tblTHONGTIN.Dantoc)=" & Me.txtDantoc & ")"

'Cu moi textbox co du lieu thi se chen dieu kien loc vao doan SQL tren:
If IsNull(Trim(txtMaCB)) = False Then
s = s + s1
End If
If IsNull(Trim(txtHovaten)) = False Then
s = s + s2
End If
If IsNull(Trim(txtNgaysinh)) = False Then
s = s + s3
End If
If IsNull(Trim(txtQuequan)) = False Then
s = s + s4
End If
If IsNull(Trim(txtDantoc)) = False Then
s = s + s5
End If

'Chen them phan duoi ket thuc cu phap lenh SQL tren:
Me.lstDANHSACH.RowSource = s & ") ORDER BY tblTHONGTIN.MaCB; "
Me.lstDANHSACH.Requery

File demo là Phần mềm Quản lý Cán Bộ dành cho các cơ quan Hành Chính Đảng, phần mềm có tích hợp chức năng khóa menu, export file excel:

http://www.mediafire.com/?v5t1866h6hcdx7t
* Trong file đính kèm có file word hướng dẫn cách sử dụng

Cảm ơn các bạn đã đọc bài viết!

Cám ơn bạn đã chia sẻ, mình đang rất cần tìm kiếm theo nhiều tiêu chí như thế này, mình xem qua code của bạn rồi và có một số thắc mắc.
1. Dòng s=",,,," mình thấy where (1=1", cái này là điều kiện gì vậy ah
2. Theo như cách viết của bạn thì muốn tìm kiếm phải nhập hết macb,hoten,dantoc,quequan,ngaysinh thì mới cho ra kết quả?? vì bạn dùng từ khóa "AND", Bài của mình gần giống như vậy, nhưng có lúc người dùng chỉ nhập MCB,hoten hoặc nhập hoten,quequan,v.vv. rồi nhấn nút "Tìm kiếm" thì phải làm sao??
Rất mong bạn trả lời
Chữ ký của vulhu06 Xin chào, mình là vulhu06, Tham gia http://thuthuataccess.com/forum từ ngày 15-06 -12.
Reply
Những người đã cảm ơn
#12
1. Cái where(1=1, mục đích là cho cái điều kiện trong where luôn đúng, vì khi các textbox kia có dữ liệu sẽ sẽ chèn thêm điều kiện vào trong where, ở ví dụ này là chèn thêm các dòng s1, s2... Vì các dòng s1, s2 bắt đầu bằng code AND nên bắt buộc phải có 1=1
2. Vì lý do ở câu số 1 bạn hỏi mà mình đã giải thích ở trên, nên chương trình mẫu của mình có thể tìm từng tiêu chí hoặc tìm nhiều tiêu chí đều được. Bạn check lại xem nhé!
Chữ ký của khanhduycsgt Chào Guest, có mánh nào hay thì chia sẻ cho mình biết với nhé! Và hãy thanks bằng cách bấm nút Thanks để tỏ rõ mình là người lịch sự nào! ^^
Reply
Những người đã cảm ơn caytregiavn77
#13
Chào bạn khanhduycsgt, mình cám ơn bạn đã chia sẽ chương trình này, khi nhìn thấy bạn ghi QUy định 57 (trước là 75, nay là 57) là mình hiểu bạn làm bộ phận nào rồi... CHúc bạn luôn luôn thành đạt trong cuộc sống.
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
#14
Xem bài viết này ( có demo và hướng dẫn): [Thủ Thuật] Demo Tạo Form tìm kiếm theo nhiều điều kiện

Hình minh họa
[Hình: frmtimvanban.png]

Thân mến!
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#15
(24-06-12, 07:45 PM)khanhduycsgt Đã viết: Mình cũng biết được cách làm thông qua 1 trang web hướng dẫn trên mạng, mình cũng tự mò và cũng phát triển thêm về cách thức tạo form tìm kiếm theo nhiều tiêu chí khác nhau này.

Cách này dựa trên tìm kiếm bằng câu lệnh SQL.
Ví dụ ta có table tblTHONGTIN có các field như sau: MaCB, Hovaten, Ngaysinh, Quequan, Dantoc
Giờ ta muốn tạo 1 form tìm kiếm với tất cả các tiêu thí hoặc một vài tiêu chí trong các field trên, dạng như form này:

[Hình: 1.jpg]

- Ta tạo các textbox để nhập khóa tìm kiếm lần lượt có tên là: txtMaCB, txtHovaten, txtNgaysinh, txtQuequan, txtDantoc
- Tạo 1 Listbox tên là lstDANHSACH để chứa kết quả tìm kiếm, listbox này không cần thiết phải đặt rowsource, ta chỉ chỉnh số CoulumWidths sao cho hiển thị đẹp và phù hợp với độ dài text trong field là được.

Code cho nút cmdTimkiem như sau:
Mã:
Dim s, s1, s2, s3, s4, s5 As String 'Khai bao cac bien chua thong tin

'Day la dong lenh SQL de apply cho lstDANHSACH.rowsource:
s = "SELECT tblTHONGTIN.MaCB, tblTHONGTIN.Hovaten, tblTHONGTIN.Ngaysinh, tblTHONGTIN.Quequan, tblTHONGTIN.Dantoc FROM tblTHONGTIN WHERE (1=1"

'Day la cac phan mo rong de chen vao sau doan SQL tren:
s1 = " AND ((tblTHONGTIN.MaCB) = " & [txtMaCB] & ")"
s2 = " AND ((tblTHONGTIN.Hovaten) like '" & "*" & [txtHovaten] & "*" & "')"
s3 = " AND ((tblTHONGTIN.Ngaysinh)=" & [txtNgaysinh & ")"
s4 = " AND ((tblTHONGTIN.Quequan) like '" & "*" & [txtQuequan] & "*" & "')"
s5 = " AND ((tblTHONGTIN.Dantoc)=" & Me.txtDantoc & ")"

'Cu moi textbox co du lieu thi se chen dieu kien loc vao doan SQL tren:
If IsNull(Trim(txtMaCB)) = False Then
s = s + s1
End If
If IsNull(Trim(txtHovaten)) = False Then
s = s + s2
End If
If IsNull(Trim(txtNgaysinh)) = False Then
s = s + s3
End If
If IsNull(Trim(txtQuequan)) = False Then
s = s + s4
End If
If IsNull(Trim(txtDantoc)) = False Then
s = s + s5
End If

'Chen them phan duoi ket thuc cu phap lenh SQL tren:
Me.lstDANHSACH.RowSource = s & ") ORDER BY tblTHONGTIN.MaCB; "
Me.lstDANHSACH.Requery

File demo là Phần mềm Quản lý Cán Bộ dành cho các cơ quan Hành Chính Đảng, phần mềm có tích hợp chức năng khóa menu, export file excel:

http://www.mediafire.com/?v5t1866h6hcdx7t
* Trong file đính kèm có file word hướng dẫn cách sử dụng

Cảm ơn các bạn đã đọc bài viết!
Chào các anh chị !
Cho em hỏi, trường hợp như code trong file demo Phần mềm Quản lý Cán Bộ này thì khi tìm kiếm thì xuất dữ liệu tìm kiếm được ra listbox. Nhưng nay em muốn thay thế listbox đó thành subform thì mình chỉnh sữa lại như thế nào.
Mong được các anh chị giúp đỡ
Trân trọng cảm ơn
Chữ ký của huuduy.duy Xin chào, mình là huuduy.duy, Tham gia http://thuthuataccess.com/forum từ ngày 24-06 -13.
ღღღღღTài sản của huuduy.duy (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#16
(03-08-16, 11:43 PM)huuduy.duy Đã viết: Chào các anh chị !
Cho em hỏi, trường hợp như code trong file demo Phần mềm Quản lý Cán Bộ này thì khi tìm kiếm thì xuất dữ liệu tìm kiếm được ra listbox. Nhưng nay em muốn thay thế listbox đó thành subform thì mình chỉnh sữa lại như thế nào.
Mong được các anh chị giúp đỡ
Trân trọng cảm ơn

Xem Demo này: [Thủ Thuật] Demo Tạo Form tìm kiếm theo nhiều điều kiện

[Hình: frmtimvanban.png]

Thân mến!
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn huuduy.duy
#17
(04-08-16, 12:26 AM)maidinhdan Đã viết:
(03-08-16, 11:43 PM)huuduy.duy Đã viết: Chào các anh chị !
Cho em hỏi, trường hợp như code trong file demo Phần mềm Quản lý Cán Bộ này thì khi tìm kiếm thì xuất dữ liệu tìm kiếm được ra listbox. Nhưng nay em muốn thay thế listbox đó thành subform thì mình chỉnh sữa lại như thế nào.
Mong được các anh chị giúp đỡ
Trân trọng cảm ơn

Xem Demo này: [Thủ Thuật] Demo Tạo Form tìm kiếm theo nhiều điều kiện

[Hình: frmtimvanban.png]

Thân mến!

Cảm ơn anh!
- Bài này em có xem qua rồi, ý của em là muốn chỉnh sửa listbox trong demo Phần mềm Quản lý Cán Bộ sang dạng subform.
- Nhưng đối với demo tìm kiếm của anh là Continuous Forms, thì mình chuyển sang dạng Mainform và subform được không anh.
- Em có câu Query như sau.

SELECT B_ViecRieng.Manhanvien, tbNhanvien.Tennhanvien, B_ViecRieng.SoNgayNghi, B_ViecRieng.BatDau, B_ViecRieng.KetThuc, B_ViecRieng.LyDo, B_ViecRieng.MaNhanVienDuyet1, B_ViecRieng.MaNhanVienDuyet2, B_ViecRieng.MaNhanVienDuyet3, B_ViecRieng.GhiChu, tbMabophan.TenBophan

FROM (tbMabophan INNER JOIN tbNhanvien ON tbMabophan.MaBophan = tbNhanvien.MaBophan) INNER JOIN B_ViecRieng ON tbNhanvien.MaNhanvien = B_ViecRieng.Manhanvien;[/code]

Nhưng khi áp dụng vô trong đoạn code này 

................................

Mã:
s = "SELECT B_ViecRieng.Manhanvien, tbNhanvien.Tennhanvien, B_ViecRieng.SoNgayNghi, B_ViecRieng.BatDau, B_ViecRieng.KetThuc, B_ViecRieng.LyDo, B_ViecRieng.MaNhanVienDuyet1, B_ViecRieng.MaNhanVienDuyet2, B_ViecRieng.MaNhanVienDuyet3, B_ViecRieng.GhiChu, tbMabophan.TenBophan WHERE (1=1"


Tới đoạn code này em đổi điều kiện thành


Trích dẫn:s1 = " AND ((tbNhanvien.MaCBTennhanvien= " & [txtHoVaTen] & ")"

s2 = " AND ((B_ViecRieng.LyDo.LyDo) like '" & "*" & [txtLydo] & "*" & "')"

.................................

Nhưng không ra kết quả
Nhờ anh giúp đỡ
Chữ ký của huuduy.duy Xin chào, mình là huuduy.duy, Tham gia http://thuthuataccess.com/forum từ ngày 24-06 -13.
ღღღღღTài sản của huuduy.duy (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#18
(04-08-16, 01:06 AM)huuduy.duy Đã viết: Cảm ơn anh!
- Bài này em có xem qua rồi, ý của em là muốn chỉnh sửa listbox trong demo Phần mềm Quản lý Cán Bộ sang dạng subform.
- Nhưng đối với demo tìm kiếm của anh là Continuous Forms, thì mình chuyển sang dạng Mainform và subform được không anh.
- Em có câu Query như sau.

SELECT B_ViecRieng.Manhanvien, tbNhanvien.Tennhanvien, B_ViecRieng.SoNgayNghi, B_ViecRieng.BatDau, B_ViecRieng.KetThuc, B_ViecRieng.LyDo, B_ViecRieng.MaNhanVienDuyet1, B_ViecRieng.MaNhanVienDuyet2, B_ViecRieng.MaNhanVienDuyet3, B_ViecRieng.GhiChu, tbMabophan.TenBophan

FROM (tbMabophan INNER JOIN tbNhanvien ON tbMabophan.MaBophan = tbNhanvien.MaBophan) INNER JOIN B_ViecRieng ON tbNhanvien.MaNhanvien = B_ViecRieng.Manhanvien;[/code]

Nhưng khi áp dụng vô trong đoạn code này 

................................

Mã:
s = "SELECT B_ViecRieng.Manhanvien, tbNhanvien.Tennhanvien, B_ViecRieng.SoNgayNghi, B_ViecRieng.BatDau, B_ViecRieng.KetThuc, B_ViecRieng.LyDo, B_ViecRieng.MaNhanVienDuyet1, B_ViecRieng.MaNhanVienDuyet2, B_ViecRieng.MaNhanVienDuyet3, B_ViecRieng.GhiChu, tbMabophan.TenBophan WHERE (1=1"


Tới đoạn code này em đổi điều kiện thành


Trích dẫn:s1 = " AND ((tbNhanvien.MaCBTennhanvien= " & [txtHoVaTen] & ")"

s2 = " AND ((B_ViecRieng.LyDo.LyDo) like '" & "*" & [txtLydo] & "*" & "')"

.................................

Nhưng không ra kết quả
Nhờ anh giúp đỡ

Khi bạn gõ code như vậy tôi hiểu là bạn đang viết Code trên VBA của Access.

=> Và câu kết luận là, xem lại cách phát biểu code. sẽ không bao giờ ra đâu.

Đề nghị: sao bạn không gửi chính cái file của bạn lên đây, mà lấy bài của người khác để hỏi...mà hỏi câu khác nửa thì giống như bạn đang làm cho những người giúp bạn giống như: " Thức ra trong mộng lại nằm trong mơ."

Thân mến!
Chữ ký của maidinhdan * Để được hỗ trợ tốt nhất, nhấn vào link dưới đây để xem.
1. [Hướng dẫn] Kiểu file gửi lên để được giúp đỡ
2. [Hướng dẫn] Nội quy diễn đàn
3. [Hướng dẫn] Cách Đưa file và hình vào diễn đàn
4.[Hướng dẫn] Để xây dựng một ứng dụng hoàn hảo và lời cảm tạ
5. Cần tìm Demo hay ứng dụng sử dụng thanh tìm kiếm phía trên cùng, bên phải của diễn đàn.
* Nếu muốn cảm ơn, hãy nhấn nút thank, không cần viết thêm bài nào nửa.



ღღღღღTài sản của maidinhdan (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Che_Guevara , huuduy.duy
#19
(04-08-16, 09:41 PM)maidinhdan Đã viết: Khi bạn gõ code như vậy tôi hiểu là bạn đang viết Code trên VBA của Access.

=> Và câu kết luận là, xem lại cách phát biểu code. sẽ không bao giờ ra đâu.

Đề nghị: sao bạn không gửi chính cái file của bạn lên đây, mà lấy bài của người khác để hỏi...mà hỏi câu khác nửa thì giống như bạn đang làm cho những người giúp bạn giống như: " Thức ra trong mộng lại nằm trong mơ."

Thân mến!
Em mượn bài người khác là do thấy gần giống nhu cầu tìm kiếm của mình nên không muốn tạo topic mới.
Em có làm form tìm kiếm nhiều điều kiện bằng query, nhưng đến phần tìm theo dạng từ ngày đến ngày, và quý em không biết làm như thế nào, nhờ anh giúp đỡ.
Trân trọng cảm ơn anh
https://drive.google.com/file/d/0Bz23-2t...sp=sharing

Trích dẫn:from maidinhdan: file *.accb mình không hỗ trợ được, bạn nào cài xin giúp đỡ dùm.
Chữ ký của huuduy.duy Xin chào, mình là huuduy.duy, Tham gia http://thuthuataccess.com/forum từ ngày 24-06 -13.
ღღღღღTài sản của huuduy.duy (View All Items) ღღღღღ
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
  [Hỏi] Cách thêm dữ liệu vào form Main_Sub NganNguyen 1 38 06-12-16, 02:23 AM
Bài mới nhất: maidinhdan
  Tự động hiện Form khi loading hết thời gian ChiMai 1 49 02-12-16, 08:59 PM
Bài mới nhất: ongke0711
  [Help] Cập nhật combobox 2 từ combobox 1 (dữ liệu ở nhiều bảng) votinh.tq 6 208 22-11-16, 11:34 PM
Bài mới nhất: votinh.tq
Photo [Hỏi] Mở Form trên access 2007 báo lỗi jason 5 194 22-11-16, 09:23 AM
Bài mới nhất: jason
  Query hiện lên trên form? feeling 4 165 09-11-16, 09:49 PM
Bài mới nhất: toancvp

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ơ