ntt0503 > 06-07-17, 11:05 AM
(06-07-17, 03:26 AM)tranthanhan1962 Đã viết: Cái này là do bạn thiết đặt sai kiểu dữ liệu của field INVOICEDTAE trong table INVOICE, dữ liệu ngày mà data type sao lại là Short Text, bạn sửa lại là Date/Time mới đúng.
tranthanhan1962 > 07-07-17, 11:38 PM
ntt0503 > 07-07-17, 11:42 PM
(07-07-17, 11:38 PM)tranthanhan1962 Đã viết: Trả lời về việc bạn hỏi: Hỏi về cách làm form tìm kiếm theo nhiều điều kiện từ nhiều bảng. Bạn có gởi cho mình database, nhưng mình không biết bạn tìm kiếm bao nhiêu điều kiện, và từ bao nhiêu bảng các điều kiện và bảng cụ thể là như thế nào? Nên chỉ có thể trả lời như bạn thế này. Bao nhiêu điều kiện và bao nhiêu bảng không thành vấn đề.
1/Trên form có bao nhiêu textbox điều kiện thì trên query có bấy nhiêu criteria textbox đó với field tương ứng.
2/Bạn có thể tạo nhiều query với nhiều điều kiện hay một query tùy thích, có thể dùng nút để mở form có record source là query đã đặt criteria (giống như mở report mà bạn từng làm. Chỉ cần lệnh open vì các điều kiện đã thực hiện trên query làm recordsource rồi). Cũng có thể đưa các form đó làm subform cho main form chứa điều kiện. Nhớ đặt lệnh requery các subform vào event after update của các texbox làm điều kiện trên mainform.
Chúc bạn thành công!
tranthanhan1962 > 08-07-17, 02:34 PM
Private Sub comtinhtrang_AfterUpdate()
TIMKIEM_DKT_CB.Requery
End Sub
ntt0503 > 08-07-17, 03:14 PM
(08-07-17, 02:34 PM)tranthanhan1962 Đã viết: Form tìm kiếm của bạn có nhiều điều kiện quá . Nhưng thật ra cách làm thì cũng giống nhau thôi, nên mình hỗ trợ bạn ở các textbox: txtmakh (tìm theo giá trị trong textbox), combobox: comloaihs, comtinhtrang (tìm theo giá trị combobox), các textbox: txttungaymo_VS, txtdenngaymo_VS (tìm trong khoảng thời gian), các yêu cầu còn lại cũng giống như vậy nên bạn tự làm.
http://www.mediafire.com/file/x81s1zq3ql...SE_ESI.mdb
Chú ý mấy điểm sau:
1/Các giá trị default cho các control tìm text là "*", có nghĩa là lấy hết tất cả các record khi chưa lọc.
2/Mình thấy dữ liệu của bạn hiện nay chỉ có trong năm 2017. Vậy gán giá trị tìm default từ ngày đầu năm 2017 là 01/01/2017 và đến ngày hiện tại là Date(), cũng có nghĩa lấy hết record khi chưa lọc.
3/Criteria của MAHS_DKT trong query TIMKIEM_DKT_CB là Like [Forms]![f_timkiem]![comloaihs] & "*", có thêm &"*" là do combobox tìm kiếm của bạn chỉ cần trùng các ký tự đầu, nhắc thêm với bạn là "*" là đại diện cho mọi ký tự, "?" là đại diện cho 1 ký tự.
4/Giá trị dữ liệu của list combobox lọc phải đồng bộ hoặc nhiều hơn so với với các giá trị của các record được lọc. nhưng trên các record của field TINHTRANG_DKT có các giá trị: "Tạm ngừng", "Đang làm" mà trên comtinhtrang lại có "Đang làm";"Đã hoàn thành";"Đã nộp", thiếu "Tạm ngừng". Trong những trường hợp này nên tạo một table làm controlsource cho combobox và dùng nó làm display control cho cả phần nhập liệu lẫn phần tìm kiếm.
5/Tại mỗi control điều kiện lọc đều có code afte update làm mới subform nên bạn khỏi cần viết code cho button Tìm (Command69)
Mã:Private Sub comtinhtrang_AfterUpdate()
TIMKIEM_DKT_CB.Requery
End Sub
ntt0503 > 18-07-17, 11:34 AM
(08-07-17, 02:34 PM)tranthanhan1962 Đã viết: Form tìm kiếm của bạn có nhiều điều kiện quá . Nhưng thật ra cách làm thì cũng giống nhau thôi, nên mình hỗ trợ bạn ở các textbox: txtmakh (tìm theo giá trị trong textbox), combobox: comloaihs, comtinhtrang (tìm theo giá trị combobox), các textbox: txttungaymo_VS, txtdenngaymo_VS (tìm trong khoảng thời gian), các yêu cầu còn lại cũng giống như vậy nên bạn tự làm.
http://www.mediafire.com/file/x81s1zq3ql...SE_ESI.mdb
Chú ý mấy điểm sau:
1/Các giá trị default cho các control tìm text là "*", có nghĩa là lấy hết tất cả các record khi chưa lọc.
2/Mình thấy dữ liệu của bạn hiện nay chỉ có trong năm 2017. Vậy gán giá trị tìm default từ ngày đầu năm 2017 là 01/01/2017 và đến ngày hiện tại là Date(), cũng có nghĩa lấy hết record khi chưa lọc.
3/Criteria của MAHS_DKT trong query TIMKIEM_DKT_CB là Like [Forms]![f_timkiem]![comloaihs] & "*", có thêm &"*" là do combobox tìm kiếm của bạn chỉ cần trùng các ký tự đầu, nhắc thêm với bạn là "*" là đại diện cho mọi ký tự, "?" là đại diện cho 1 ký tự.
4/Giá trị dữ liệu của list combobox lọc phải đồng bộ hoặc nhiều hơn so với với các giá trị của các record được lọc. nhưng trên các record của field TINHTRANG_DKT có các giá trị: "Tạm ngừng", "Đang làm" mà trên comtinhtrang lại có "Đang làm";"Đã hoàn thành";"Đã nộp", thiếu "Tạm ngừng". Trong những trường hợp này nên tạo một table làm controlsource cho combobox và dùng nó làm display control cho cả phần nhập liệu lẫn phần tìm kiếm.
5/Tại mỗi control điều kiện lọc đều có code afte update làm mới subform nên bạn khỏi cần viết code cho button Tìm (Command69)
Mã:Private Sub comtinhtrang_AfterUpdate()
TIMKIEM_DKT_CB.Requery
End Sub
ntt0503 > 24-07-17, 05:48 PM
(08-07-17, 02:34 PM)tranthanhan1962 Đã viết: Form tìm kiếm của bạn có nhiều điều kiện quá . Nhưng thật ra cách làm thì cũng giống nhau thôi, nên mình hỗ trợ bạn ở các textbox: txtmakh (tìm theo giá trị trong textbox), combobox: comloaihs, comtinhtrang (tìm theo giá trị combobox), các textbox: txttungaymo_VS, txtdenngaymo_VS (tìm trong khoảng thời gian), các yêu cầu còn lại cũng giống như vậy nên bạn tự làm.
http://www.mediafire.com/file/x81s1zq3ql...SE_ESI.mdb
Chú ý mấy điểm sau:
1/Các giá trị default cho các control tìm text là "*", có nghĩa là lấy hết tất cả các record khi chưa lọc.
2/Mình thấy dữ liệu của bạn hiện nay chỉ có trong năm 2017. Vậy gán giá trị tìm default từ ngày đầu năm 2017 là 01/01/2017 và đến ngày hiện tại là Date(), cũng có nghĩa lấy hết record khi chưa lọc.
3/Criteria của MAHS_DKT trong query TIMKIEM_DKT_CB là Like [Forms]![f_timkiem]![comloaihs] & "*", có thêm &"*" là do combobox tìm kiếm của bạn chỉ cần trùng các ký tự đầu, nhắc thêm với bạn là "*" là đại diện cho mọi ký tự, "?" là đại diện cho 1 ký tự.
4/Giá trị dữ liệu của list combobox lọc phải đồng bộ hoặc nhiều hơn so với với các giá trị của các record được lọc. nhưng trên các record của field TINHTRANG_DKT có các giá trị: "Tạm ngừng", "Đang làm" mà trên comtinhtrang lại có "Đang làm";"Đã hoàn thành";"Đã nộp", thiếu "Tạm ngừng". Trong những trường hợp này nên tạo một table làm controlsource cho combobox và dùng nó làm display control cho cả phần nhập liệu lẫn phần tìm kiếm.
5/Tại mỗi control điều kiện lọc đều có code afte update làm mới subform nên bạn khỏi cần viết code cho button Tìm (Command69)
Mã:Private Sub comtinhtrang_AfterUpdate()
TIMKIEM_DKT_CB.Requery
End Sub
ntt0503 > 27-09-17, 07:22 PM
dangvanhoavc > 08-05-19, 11:37 PM