Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Help] Tạo thông báo sắp đến niên hạn trong access
#1
Chào mọi người, mình mới tập tành làm VBA, giờ mình đang làm cái phần mềm quản lý máy tính, trong đó có mục máy sử dụng 5 năm thì phải mang đi bảo dưỡng. Mình đang vướng mắc chỗ này là làm sao để tạo ra được 1 forrm hoặc subform sẽ tự động hiển thị thông báo những máy tính trong khoảng từ 3 tháng trước cho tới niên hạn.
 Ví dụ máy tính sử dụng từ ngày 5/4/2018 thì ngày 15/1/2023 sẽ hiển thị thông báo máy sắp đến niên hạn bảo dưỡng cho đến hết ngày 5/4/2018 thì thôi.
Rất cảm ơn ạ  Peace Peace Peace Peace Peace Peace
Chữ ký của kaivn kaivn,gia nhập Thủ Thuật Access từ 03-01 -18.
Reply
Những người đã cảm ơn
#2
Ngày bảo dưỡng = Ngày đưa vào sử dụng + 5 năm
=>     Ngày bảo dưỡng = DateSerial(Year([Ngày đưa vào sử dụng])+5,Month([Ngày đưa vào sử dụng]),Day([Ngày đưa vào sử dụng]))
Ngày báo đến niên hạn bảo dưỡng = Ngày bảo dưỡng - 3 tháng
=>     Ngày báo đến niên hạn bảo dưỡng = DateSerial(Year([Ngày bảo dưỡng]),Month([Ngày bảo dưỡng])-3,Day([Ngày bảo dưỡng]))
hoặc
=>     Ngày báo đến niên hạn bảo dưỡng = DateSerial(Year([Ngày đưa vào sử dụng])+5,Month([Ngày đưa vào sử dụng])-3,Day([Ngày đưa vào sử dụng]))
Còn vấn đề thông báo thì bằng msgbox hoặc đổi màu textbox thì tùy cách viết code của bạn.
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn kaivn
#3
Chào Anh Kavin,
Em cũng đã làm qua loại Form này, có chút góp ý Anh xem hợp thì áp dụng.
+ Tạo Table_Baoduong :  có các Field (ID_Maytinh,   …………. ,  NgayBaoduong,  NgayBaoduongtiep)
- NgayBaoduong : bảo dưỡng lần đầu, hay ngày đưa vào sử dụng (kiểu Date)
- NgayBaoduongtiep :  ngày bảo dưỡng kế tiếp (Kiểu Date)
+ Tạo Query_Baoduong :  các Field lấy nguồn từ Table_baoduong, ngoài ra còn có 2 Field
-         HanBaoduong : Date()-[NgayBaoduongtiep]   (lọc Criteria  :  <30  _ cho thông báo trước 30 ngày)
-         ThongBao: IIf([HanBaoduong]>=30,"Máy tính cần bảo dưỡng định kỳ …..","")

+ Tạo Form_Thongbaobaoduong
Do cần quản lý danh sách máy tính đến hạn bảo dưỡng nên có thể có một số máy cần bảo dưỡng khi gần đến hạn. Nên Form_Thongbaobaoduong thường là Continuous Form, và trong Tab Other (PropertySheet của Form, chọn mục pop up là yes)
Nguồn dữ liệu cho Form_Thongbaobaoduong lấy từ Query_Baoduong.

+ Chú ý phần viết code cho Form_Main (Form chính):

Private Sub Form_Current()
If DCount("ID_Maytinh", "Q_Baoduong") > 0 Then
DoCmd.OpenForm "Form_HanBaoduong"
Me.Visible = False
Else
End If
End Sub

Như vậy sau khi bảo dưỡng cho máy nào hoặc một số máy nào chỉ cần query lọc lại danh sách đến hạn trong table_baoduong, và thay đổi các ngày bảo dưỡng ban đầu và ngày bảo dưỡng kế tiếp để làm cơ sở cho lần bảo dưỡng tiếp theo nữa.
Anh xem tạo thử như trên chắc cũng không khó.
DooHoaangPhuuc
Chữ ký của DooHoaangPhuuc DooHoaangPhuuc,gia nhập Thủ Thuật Access từ 27-06 -17.
ღღღღღTài sản của DooHoaangPhuuc (View All Items) ღღღღღ
Reply
Những người đã cảm ơn kaivn
#4
hehe cám ơn bạn, để mình nghiên cứu
Chữ ký của kaivn kaivn,gia nhập Thủ Thuật Access từ 03-01 -18.
Reply
Những người đã cảm ơn
#5
(05-04-18, 08:29 PM)DooHoaangPhuuc Đã viết: Chào Anh Kavin,
Em cũng đã làm qua loại Form này, có chút góp ý Anh xem hợp thì áp dụng.
+ Tạo Table_Baoduong :  có các Field (ID_Maytinh,   …………. ,  NgayBaoduong,  NgayBaoduongtiep)
- NgayBaoduong : bảo dưỡng lần đầu, hay ngày đưa vào sử dụng (kiểu Date)
- NgayBaoduongtiep :  ngày bảo dưỡng kế tiếp (Kiểu Date)
+ Tạo Query_Baoduong :  các Field lấy nguồn từ Table_baoduong, ngoài ra còn có 2 Field
-         HanBaoduong : Date()-[NgayBaoduongtiep]   (lọc Criteria  :  <30  _ cho thông báo trước 30 ngày)
-         ThongBao: IIf([HanBaoduong]>=30,"Máy tính cần bảo dưỡng định kỳ …..","")

+ Tạo Form_Thongbaobaoduong
Do cần quản lý danh sách máy tính đến hạn bảo dưỡng nên có thể có một số máy cần bảo dưỡng khi gần đến hạn. Nên Form_Thongbaobaoduong thường là Continuous Form, và trong Tab Other (PropertySheet của Form, chọn mục pop up là yes)
Nguồn dữ liệu cho Form_Thongbaobaoduong lấy từ Query_Baoduong.

+ Chú ý phần viết code cho Form_Main (Form chính):

Private Sub Form_Current()
If DCount("ID_Maytinh", "Q_Baoduong") > 0 Then
DoCmd.OpenForm "Form_HanBaoduong"
Me.Visible = False
Else
End If
End Sub

Như vậy sau khi bảo dưỡng cho máy nào hoặc một số máy nào chỉ cần query lọc lại danh sách đến hạn trong table_baoduong, và thay đổi các ngày bảo dưỡng ban đầu và ngày bảo dưỡng kế tiếp để làm cơ sở cho lần bảo dưỡng tiếp theo nữa.
Anh xem tạo thử như trên chắc cũng không khó.
DooHoaangPhuuc

Bác ơi, như vậy là mình vẫn phải nhập trước ngày bảo dưỡng tiếp. Vì ngày bảo dưỡng tiếp chưa xác định được, có thể quá hạn hoặc chưa đến hạn, mục đích chỉ là hiện thông báo đó, có thể nó hiện thông báo đến khi nào bảo dưỡng thì thôi
Chữ ký của kaivn kaivn,gia nhập Thủ Thuật Access từ 03-01 -18.
Reply
Những người đã cảm ơn
#6
(05-04-18, 07:54 PM)tranthanhan1962 Đã viết: Ngày bảo dưỡng = Ngày đưa vào sử dụng + 5 năm
=>     Ngày bảo dưỡng = DateSerial(Year([Ngày đưa vào sử dụng])+5,Month([Ngày đưa vào sử dụng]),Day([Ngày đưa vào sử dụng]))
Ngày báo đến niên hạn bảo dưỡng = Ngày bảo dưỡng - 3 tháng
=>     Ngày báo đến niên hạn bảo dưỡng = DateSerial(Year([Ngày bảo dưỡng]),Month([Ngày bảo dưỡng])-3,Day([Ngày bảo dưỡng]))
hoặc
=>     Ngày báo đến niên hạn bảo dưỡng = DateSerial(Year([Ngày đưa vào sử dụng])+5,Month([Ngày đưa vào sử dụng])-3,Day([Ngày đưa vào sử dụng]))
Còn vấn đề thông báo thì bằng msgbox hoặc đổi màu textbox thì tùy cách viết code của bạn.

Bác ơi, e làm một cái table bảo dưỡng có ngày bảo dưỡng và ngày bảo dưỡng tiếp ( trong đó thì ngày bảo dưỡng và ngày bảo dưỡng tiếp nhập vào là ngày thực hiện bảo dưỡng thực ) còn đâu yêu cầu khoảng 5 năm bảo dưỡng 1 lần thì chỉ mang tính tương đối, ko nhất thiết phải chuẩn. 
Như vậy sẽ tạo cái query từ bảng ban đầu và thêm trường NgayBaoDuong và trường ThongBao, e đang bị lẫn lộn giữa mấy mấy cái này :/
Chữ ký của kaivn kaivn,gia nhập Thủ Thuật Access từ 03-01 -18.
Reply
Những người đã cảm ơn
#7
Có gì quan trọng quá đâu. Tạo các trường: Ngày đưa vào sử dụng, ngày bảo dưỡng, ngày bảo dưỡng kế tiếp. Tạo event update cho Ngày đưa vào sử dụng và ngày bảo dưỡng. Cứ nhập ngày đưa vào sử dụng và ngày bảo dưỡng sẽ ra ngày bảo dưỡng kế tiếp, cần gì làm query.
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#8
Chào Anh Kaivn
Như Anh gởi tin nhắn hỏi, em có tạo demo gởi Anh tham khảo theo link dưới

http://www.mediafire.com/file/bjghe1n7ah7yqo3/Bao%20duong.accdb

DooHoaangPhuuc
Chữ ký của DooHoaangPhuuc DooHoaangPhuuc,gia nhập Thủ Thuật Access từ 27-06 -17.
ღღღღღTài sản của DooHoaangPhuuc (View All Items) ღღღღღ
Reply
Những người đã cảm ơn kaivn
#9
(12-04-18, 12:52 AM)DooHoaangPhuuc Đã viết: Chào Anh Kaivn
Như Anh gởi tin nhắn hỏi, em có tạo demo gởi Anh tham khảo theo link dưới

http://www.mediafire.com/file/bjghe1n7ah7yqo3/Bao%20duong.accdb

DooHoaangPhuuc

cám ơn bạn nhiều <3
Chữ ký của kaivn kaivn,gia nhập Thủ Thuật Access từ 03-01 -18.
Reply
Những người đã cảm ơn
#10
(12-04-18, 12:52 AM)DooHoaangPhuuc Đã viết: Chào Anh Kaivn
Như Anh gởi tin nhắn hỏi, em có tạo demo gởi Anh tham khảo theo link dưới

http://www.mediafire.com/file/bjghe1n7ah7yqo3/Bao%20duong.accdb

DooHoaangPhuuc

bạn ơi mình thấy có 1 lỗi nhỏ là khi show những thằng cần bảo dưỡng trong vòng 1 tháng tới thì nó cũng show những thằng đã bảo dưỡng 1 tháng trước. Chẳng hạn hôm nay là 19/4 thì sẽ hiện những thằng trong khoảng từ hôm nay đến 19/5 cần bảo dưỡng và những thằng từ 19/3 đến hôm nay đã bảo dưỡng rồi :/
Chữ ký của kaivn kaivn,gia nhập Thủ Thuật Access từ 03-01 -18.
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] Sử dụng nút lăn chuột trong form phungminhluan 2 136 23-04-18, 01:26 PM
Bài mới nhất: phungminhluan
  [Hỏi] Cải thiện tốc độ chạy của ứng dụng ERP viết bằng MS access trong mạng lan. Tiennv84 8 511 22-04-18, 11:46 PM
Bài mới nhất: mrsiro
  xây dựng 1 chương trình access hoàn chỉnh chạy trên các version khác nhau tvn_hut 1 216 15-03-18, 12:06 AM
Bài mới nhất: tranthanhan1962
  [Hỏi] Xin kinh nghiệm thiết kế access dùng trong mạng Lan mrsiro 8 586 06-02-18, 01:13 AM
Bài mới nhất: ongke0711
  [Hỏi] Xuống dòng trong 1 text box toidjtjmtoi 2 233 19-01-18, 02:23 PM
Bài mới nhất: toidjtjmtoi

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ơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line