yamakashi2003 > 13-10-20, 09:32 PM
(13-10-20, 01:15 AM)tranthanhan1962 Đã viết: Hiểu rồi! Bạn phải sử dụng bộ lọc của bạn. Dựa trên query bạn tạo. Do bạn dùng bộ lọc hệ thống để lọc, nên khi kiểm tra record source của form F_ChitietHang là Q_chitietHang, nó sẽ thấy thiếu tham số nên đòi bạn nhập tham số vào. Đây không phải lỗi mà do bạn xác định nguồn của query do bạn đặt tham số, nhưng bạn dùng phương pháp khác để xử lý. thiếu tham số thì nó đòi thôi.Vâng em hiểu rồi ạ, nhưng ý em là hỏi cách: ấn tìm kiếm thoải mái và filter rồi chạy mà báo cáo không lỗi ạ,
Nếu bạn làm đúng "quy trình" thì nó sẽ không báo lỗi
tranthanhan1962 > 13-10-20, 11:37 PM
yamakashi2003 > 14-10-20, 11:43 AM
(13-10-20, 11:37 PM)tranthanhan1962 Đã viết: Không phải là không được! Nhưng khi bạn lọc bằng bộ lọc form hệ thống thì:
1/Bạn phải bỏ hết tất cả các điều kiện lọc mà bạn đã tự tạo trên query
2/Tạo một tetxbox trên sub form để lấy giá trị biểu thức lọc trên form sau mỗi lần lọc. Đây cũng là biểu thức lọc trên report
Giá trị biểu thức lọc trên form là =[Filter].
Nhớ bỏ lọc sau lệnh open report. Đây là điểm khác biệt giữa accdb và mdb. mdb khi bạn close form thì bộ lọc form sẽ xóa và khi mở form lai nó sẽ không được lọc băng bộ lọc cũ. con accdb sẽ lưu bộ lọc cho đến lần mở form sau đó
ongke0711 > 14-10-20, 01:42 PM
(14-10-20, 11:43 AM)yamakashi2003 Đã viết: 1/Bạn phải bỏ hết tất cả các điều kiện lọc mà bạn đã tự tạo trên query => bác chỉ em rõ hơn được không ạ
Em có thử dùng câu lệnh này để gán lại nguồn cho form trước khi chạy báo cáo:nhưng vẫn lỗi
- Me.SF_ChitietHang.Form.RecordSource = "q_chitietHang"DoCmd.OpenReport "R_ChitietHang", acViewPreview, , Forms![F_BaoCao]![SF_ChitietHang].Form.Filter, acWindowNormalForms![F_BaoCao]![SF_ChitietHang].Form.FilterOn = False
2/Tạo một tetxbox trên sub form để lấy giá trị biểu thức lọc trên form sau mỗi lần lọc. Đây cũng là biểu thức lọc trên report
Giá trị biểu thức lọc trên form là =[Filter].
=> trên subform f_chitiethang em đã tạo textobx: txtFilter có giá trị bằng =[Filter]. và gán vào trường filter của report biểu thức = Forms![F_chitietHang]![txtFilter]
nhưng mỗi khi lọc -> chạy report, biểu thức này lại bị access thay đổi, và chạy báo cáo ra vẫn bị lỗi như video em gửi ở trên
yamakashi2003 > 14-10-20, 01:57 PM
(14-10-20, 01:42 PM)ongke0711 Đã viết:à em có hiểu cái đó rồi ạ,(14-10-20, 11:43 AM)yamakashi2003 Đã viết: 1/Bạn phải bỏ hết tất cả các điều kiện lọc mà bạn đã tự tạo trên query => bác chỉ em rõ hơn được không ạ
Em có thử dùng câu lệnh này để gán lại nguồn cho form trước khi chạy báo cáo:nhưng vẫn lỗi
- Me.SF_ChitietHang.Form.RecordSource = "q_chitietHang"DoCmd.OpenReport "R_ChitietHang", acViewPreview, , Forms![F_BaoCao]![SF_ChitietHang].Form.Filter, acWindowNormalForms![F_BaoCao]![SF_ChitietHang].Form.FilterOn = False
2/Tạo một tetxbox trên sub form để lấy giá trị biểu thức lọc trên form sau mỗi lần lọc. Đây cũng là biểu thức lọc trên report
Giá trị biểu thức lọc trên form là =[Filter].
=> trên subform f_chitiethang em đã tạo textobx: txtFilter có giá trị bằng =[Filter]. và gán vào trường filter của report biểu thức = Forms![F_chitietHang]![txtFilter]
nhưng mỗi khi lọc -> chạy report, biểu thức này lại bị access thay đổi, và chạy báo cáo ra vẫn bị lỗi như video em gửi ở trên
Tôi đã giải thích rất rõ trong bài trước, bạn đọc cho kỹ để hiểu. Tôi cũng đã đưa ra giải pháp thứ 3 cho bạn luôn rồi mà bạn cũng không tìm hiểu xem nó như thế nào.
tranthanhan1962 > 14-10-20, 05:51 PM
ongke0711 > 14-10-20, 05:56 PM
(14-10-20, 01:57 PM)yamakashi2003 Đã viết:(14-10-20, 01:42 PM)ongke0711 Đã viết:à em có hiểu cái đó rồi ạ,(14-10-20, 11:43 AM)yamakashi2003 Đã viết: 1/Bạn phải bỏ hết tất cả các điều kiện lọc mà bạn đã tự tạo trên query => bác chỉ em rõ hơn được không ạ
Em có thử dùng câu lệnh này để gán lại nguồn cho form trước khi chạy báo cáo:nhưng vẫn lỗi
- Me.SF_ChitietHang.Form.RecordSource = "q_chitietHang"DoCmd.OpenReport "R_ChitietHang", acViewPreview, , Forms![F_BaoCao]![SF_ChitietHang].Form.Filter, acWindowNormalForms![F_BaoCao]![SF_ChitietHang].Form.FilterOn = False
2/Tạo một tetxbox trên sub form để lấy giá trị biểu thức lọc trên form sau mỗi lần lọc. Đây cũng là biểu thức lọc trên report
Giá trị biểu thức lọc trên form là =[Filter].
=> trên subform f_chitiethang em đã tạo textobx: txtFilter có giá trị bằng =[Filter]. và gán vào trường filter của report biểu thức = Forms![F_chitietHang]![txtFilter]
nhưng mỗi khi lọc -> chạy report, biểu thức này lại bị access thay đổi, và chạy báo cáo ra vẫn bị lỗi như video em gửi ở trên
Tôi đã giải thích rất rõ trong bài trước, bạn đọc cho kỹ để hiểu. Tôi cũng đã đưa ra giải pháp thứ 3 cho bạn luôn rồi mà bạn cũng không tìm hiểu xem nó như thế nào.
vì em tháy bác thanhhan đưa ra giải pháp có vẻ ngắn mà đơn giản hơn nên e đang tìm hiểu
thuyyeu99 > 15-10-20, 01:51 PM
(14-10-20, 05:56 PM)ongke0711 Đã viết:Hình như em có đọc ở đâu đó dùng Filter nó chậm hơn query phải không anh ?
- Me.SF_ChitietHang.Form.RecordSource = "q_chitietHang"DoCmd.OpenReport "R_ChitietHang", acViewPreview, , Forms![F_BaoCao]![SF_ChitietHang].Form.Filter, acWindowNormalForms![F_BaoCao]![SF_ChitietHang].Form.FilterOn = False
ongke0711 > 15-10-20, 03:19 PM
(15-10-20, 01:51 PM)thuyyeu99 Đã viết:(14-10-20, 05:56 PM)ongke0711 Đã viết:Hình như em có đọc ở đâu đó dùng Filter nó chậm hơn query phải không anh ?
- Me.SF_ChitietHang.Form.RecordSource = "q_chitietHang"DoCmd.OpenReport "R_ChitietHang", acViewPreview, , Forms![F_BaoCao]![SF_ChitietHang].Form.Filter, acWindowNormal
- Forms![F_BaoCao]![SF_ChitietHang].Form.FilterOn = False
tranthanhan1962 > 15-10-20, 05:27 PM