vulhu06 > 25-04-14, 10:16 AM
(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:
- 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!
khanhduycsgt > 25-04-14, 03:08 PM
caytregiavn77 > 11-02-16, 03:10 AM
maidinhdan > 18-02-16, 03:51 PM
huuduy.duy > 03-08-16, 11:43 PM
(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.Chào các anh chị !
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:
- 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!
maidinhdan > 04-08-16, 12:26 AM
(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
huuduy.duy > 04-08-16, 01:06 AM
(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
Thân mến!
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"
Trích dẫn:s1 = " AND ((tbNhanvien.MaCBTennhanvien= " & [txtHoVaTen] & ")"
s2 = " AND ((B_ViecRieng.LyDo.LyDo) like '" & "*" & [txtLydo] & "*" & "')"
maidinhdan > 04-08-16, 09:41 PM
(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 đỡ
huuduy.duy > 04-08-16, 10:29 PM
(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.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.
=> 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!
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.
NguyenDungAnh > 11-08-18, 07:46 PM