minhhvm94@gmail.com > 10-08-20, 11:48 AM
Xuân Thanh > 10-08-20, 12:59 PM
minhhvm94@gmail.com > 10-08-20, 03:21 PM
tranthanhan1962 > 10-08-20, 07:42 PM
(10-08-20, 03:21 PM)minhhvm94@gmail.com Đã viết:(10-08-20, 12:59 PM)Xuân Thanh Đã viết: Lấy ngày hạn báo cáo - ngày hiện hành nếu < 3 thì tạo MsgBox "Gần đến hạn báo cáo", nếu =0 thì tạo MsgBox "Đã đến ngày báo cáo", nếu > 0 thì tạo MsgBox "Đã quá hạn báo cáo"Bác có thể nói rõ hơn em hiểu không?
minhhvm94@gmail.com > 11-08-20, 09:46 AM
(10-08-20, 07:42 PM)tranthanhan1962 Đã viết:cái này em muốn tạo một query để thông báo anh ah(10-08-20, 03:21 PM)minhhvm94@gmail.com Đã viết:(10-08-20, 12:59 PM)Xuân Thanh Đã viết: Lấy ngày hạn báo cáo - ngày hiện hành nếu < 3 thì tạo MsgBox "Gần đến hạn báo cáo", nếu =0 thì tạo MsgBox "Đã đến ngày báo cáo", nếu > 0 thì tạo MsgBox "Đã quá hạn báo cáo"Bác có thể nói rõ hơn em hiểu không?
Còn phải xem nó nằm trong form hay ở đâu. Nói tom lại phải có bẩy event để cho nó xuất hiện.
Cụ thể Ví dụ ngày hết hạn báo cáo là 01/10/2020 Thì ngày hiện hành là Date() có nghĩa là if date() =Ngày hết hạn -3 [=27/10/2020] then {làm cái gì đó tùy bạn}.
Thường tôi sẽ sử dụng Date() = Bethween ngày hết hạn And ngày hết hạn -3. Cách bác Xuân Thanh cũng OK ngày hạn báo cáo - ngày hiện hành nếu < 3 tương đương Date() = Bethween ngày hết hạn And ngày hết hạn -3
ongke0711 > 11-08-20, 11:24 AM
(11-08-20, 09:46 AM)minhhvm94@gmail.com Đã viết: cái này em muốn tạo một query để thông báo anh ah
Private Sub frmMain_Load()
Dim rs As DAO.Recordset
Dim s As String
s = "SELECT * FROM tblBaoCao WHERE DateDiff("d", Date(),[HanBaoCao]) <= 3"
Set rs = CurrentDb.OpenRecordset (s, dbOpenSnapShot)
If rs.EOF And rs.BOF Then Exit Sub
Msgbox "Có " & rs.RecordCount & " báo cáo sắp tới han."
rs.Close
Set rs = Nothing
End Sub
minhhvm94@gmail.com > 11-08-20, 02:37 PM
(11-08-20, 11:24 AM)ongke0711 Đã viết:(11-08-20, 09:46 AM)minhhvm94@gmail.com Đã viết: cái này em muốn tạo một query để thông báo anh ah
Access nó xử lý theo qui trình, mỗi qui trình thao tác khác nhau thì cách xử lý cũng khác nhau, chỉ giống nhau chỗ cái code tính ngày để ra thông báo thôi, do đó mấy ông anh chỉ hướng dẫn cho bạn code chính thôi vì bạn không mô tả rõ qui trình thao tác của bạn.
Theo như qui trình mà tôi hay xử lý là:
1. Mỗi khi mở ứng dụng lên sẽ tự động kiểm tra thông tin gần đến hạn một nghiệp vụ nào đó (hợp đồng lao động, báo cáo...).
2. Khi ứng dụng khởi động, sẽ có một cái Form Chính (frmMain) nào đó tự khởi động cùng. Có thể là Form Dashboard, Form menu v.v..
3. Vì cái qui trình 1 + 2 nên tôi sẽ dùng sự kiện frmMain_Load() để chạy code kiểm tra có báo cáo nào sắp đến hạn để pop up cái thông báo, nếu không có thì im lặng mà thực hiện các công việc tiếp theo thôi.
Lại ví dụ tiếp là các báo cáo của bạn lưu vào một Table là "tblBaoCao" có các Field (cột): [MaBaoCao], [NgayBanHanh],[HanBaoCao],...
Khi đó code cho sự kiện frmMain_Load () như sau:
Mã PHP:Private Sub frmMain_Load()
Dim rs As DAO.Recordset
Dim s As String
s = "SELECT DateDiff("d", Date(),[HanBaoCao]) As SoNgayToiHan FROM tblBaoCao"
Set rs = CurrentDb.OpenRecordset (s, dbOpenSnapShot)
If rs.EOF And rs.BOF Then Exit Sub
Select Case rs!SoNgayToiHan
Case > 0
Msgbox "Còn " & rs!SoNgayToiHan & " ngày tới hạn báo cáo."
Case = 0
Msgbox "Hôm nay tới hạn báo cáo."
Case < 0
Msgbox "Đã quá hạn báo cáo " & rs!SoNgayToiHan & " ngày."
End If
rs.Close
Set rs = Nothing
End Sub
ongke0711 > 11-08-20, 03:05 PM
(11-08-20, 02:37 PM)minhhvm94@gmail.com Đã viết:Mã PHP:"SELECT DateDiff("d", Date(),[HanBaoCao]) As SoNgayToiHan FROM tblBaoCao"
Cảm ơn bác. Em muốn dùng query thì để nó riêng biệt được không bác?
tranthanhan1962 > 11-08-20, 03:18 PM
DooHoaangPhuuc > 11-08-20, 11:56 PM