LỚP CNTT 2 - 2007
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Tao query trong Access de cap nhat luong

Go down

Tao query trong Access de cap nhat luong Empty Tao query trong Access de cap nhat luong

Post  Admin 4/12/2007, 10:10

Tạo query trong Access để cập nhật lương
Hỏi: Tôi có table gồm các cột: MSNV, HoTen, NgayThangNangLuong, Bac, HeSoLuong, TrinhDo, VuotKhung. Tôi muốn tạo query để cập nhật lương. Người có trình độ cao học thì cứ 3 năm (tính từ thời điểm nâng lương lần trước) được nâng lương (hệ số tăng 0,34 và bậc tăng 1) vào ngày đầu tháng thứ nhất của quý (tháng 1, 4, 7, 10). Với trình độ đại học, cũng nâng lương sau 3 năm (hệ số tăng 0,33 và bậc tăng 1). Trung cấp thì 2 năm (hệ số tăng 0,2 và bậc tăng 1). Những người vượt khung thì cứ 1 năm là nâng lương, không căn cứ trình độ (hệ số không tăng và bậc không tăng). Chỉ tăng vượt khung là 1%.

Trả lời: Để cho đơn giản, bạn nên thiết kế các query riêng rẽ để cập nhật lương cho từng nhóm đối tượng: Cao học, Đại học, Trung cấp,... Bạn phải thiết kế query kiểu Update Query, trong đó quan trọng nhất là điều kiện lọc các nhân viên thỏa điều kiện được nâng lương.
Tôi trình bày cho bạn query nâng lương cho nhân viên có trình độ Đại học, các query còn lại được thiết kế tương tự:
UPDATE t00_HoSoCNV SET t00_HoSoCNV.Bac = t00_HoSoCNV.Bac+1, t00_HoSoCNV.HeSoLuong = t00_HoSoCNV.HeSoLuong+0.33
WHERE (((t00_HoSoCNV.NgayNaLuong1)<=DateAdd("yyyy",-3,CDate("1" & "/" & Str([Thang]) & "/" & Str(Year(Date()))))) AND ((t00_HoSoCNV.VanHoa)=15));

Trong query trên, điều kiện t00_HoSoCNV.VanHoa=15 tương ứng với mã trình độ văn hóa Đại học (trong bảng VanHoa do bạn thiết kế). Điều kiện còn lại được diễn giải là: “ngày nâng lương trước đó cộng thêm 3 năm vẫn nhỏ hơn hay bằng ngày đầu tiên trong quý của năm hiện hành xét nâng lương”.
Do đó, nếu nhân viên có trình độ Đại học nhưng ngày nâng lương trước đó là 20-4-2004 thì chỉ được nâng lương vào quý 3 năm 2007, vì thời điểm đầu quý 2 (tháng 4) năm 2007, nhân viên này còn thiếu 19 ngày nữa mới đủ 3 năm.
Biến có tên Thang là tham số của query, thay đổi tùy theo quý cần xét duyệt. Bạn nên thiết kế một form cho phép chọn quý, từ đó tính ra được tham số Thang để chuyển cho query.
Để thực hiện được việc cập nhật, các field Bac và HeSoLuong không được chứa trị Null, mà phải là giá trị số (là số 0 cũng phải gõ vào, chứ không được để trống).
Tùy yêu cầu xét duyệt thực tế, bạn có thể sửa lại.
Admin
Admin
Admin

Posts : 41
Join date : 2007-09-29

https://cntt207.forumotion.com

Back to top Go down

Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum