Thứ Năm, 10 tháng 11, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 10 - Bảng sử dụng lao động Labor Acquisition

James Perry, Richard Newmark


Chương 10
Qui trình nhân sự


Bảng sử dụng lao động Labor Acquisition


Trong phần này, bạn sẽ học cách tạo bảng chấm công để lưu số giờ trong và ngoài giờ làm việc cho từng nhân viên theo từng chu kỳ trả lương. Ta giả định hai điều quan trọng: Pipefitters tính lương theo giờ, và họ trả lương cho mọi nhân viên mỗi tháng một lần bằng một chi phiếu.

Bạn sẽ cần một khóa chính để nhận diện duy nhất thời gian đã làm việc của từng nhân viên trong từng chu kỳ trả lương. Pipefitters dùng phiếu chấm công để ghi nhận thời gian đã làm việc của nhân viên và các phiếu chấm công được đánh số tuần tự bằng năm chữ số; bạn sẽ dùng mã phiếu chấm công làm khóa chính.

Có các cách khác để tạo khóa chính cho bảng sử dụng lao động Labor Acquisition. Vì Pipefitters đã có mã nhân viên cho từng nhân viên và mỗi nhân viên có một bản ghi duy nhất cho từng chu kỳ trả lương, bạn có thể tạo khóa chính phức hợp gồm trường mã nhân viên và trường chu kỳ trả lương để nhận diện duy nhất từng bản ghi trả lương. Tuy nhiên, mã phiếu chấm công được chọn vì việc có các tài liệu được đánh số tuần tự là có thêm một kiểm soát. Các phiếu chấm công cho một chu kỳ trả lương bất kỳ không được nhảy cóc, phiếu chấm công đầu tiên cho chu kỳ trả lương tiếp theo phải là số tiếp theo. Có thể truy vấn để kiểm tra các phiếu chấm công có vi phạm qui định này không – để chứng tỏ đã có sai sót hay bất thường.

Bảng sử dụng lao động Labor Acquisition còn chứa hai trường để lưu số giờ đã làm việc – một trường lưu số giờ làm việc trong giờ, một trường lưu số giờ làm việc ngoài giờ. Pipefitters chỉ dùng một hệ số để tính lương ngoài giờ, gấp 1.5 lần lương trong giờ. Hơn nữa, bạn có thể giả định rằng quản lý viên của Pipefitters khi nhập dữ liệu vào bảng này, họ đã tính trước số giờ trong và ngoài giờ của nhân viên từ phiếu chấm công.

Trong Bài tập 10.11 bạn sẽ tạo bảng sử dụng lao động Labor Acquisition cho Pipefitters Supply Company. Bảng sử dụng lao động Labor Acquisition còn minh họa một số đặc trưng kiểm soát nội bộ giúp giảm lỗi và các bất thường khi Pipefitters xử lý việc trả lương.

BÀI TẬP 10.11: TẠO BẢNG SỬ DỤNG LAO ĐỘNG LABOR ACQUISITION

1. Tạo bảng mới bằng cách dùng Table Design trên dải lệnh Create. Đặt tên trường đầu tiên là TimeCardID, khóa chính. Để Data Type là Short Text và đặt Field Size bằng 5. Nhập Input Mask là 00000;0;_ và đặt Caption là Time Card #. Đặt thuộc tính Required là Yes, Allow Zero Length là No, đặt thuộc tính Indexed là Yes (No Duplicates), rồi kích Primary Key trong nhóm Tools.

2. Thêm năm trường còn lại và các thuộc tính được liệt kê ở Hình 10.12.

Để ý rằng EmployeeID và EmployeeSupervisorID đều là khóa ngoại từ tblEmployee. Như được minh họa ở Hình 10.6, EmployeeID là liên kết đến nhân viên làm tác nhân ngoại trong tblEmployee, trong khi EmployeeSupervisorID là liên kết tham gia nội giữa tblLaborAcquisitiontblEmployee. Hơn nữa LAPayPeriodEnded được lập chỉ mục indexed để giúp các truy vấn trên chu kỳ trả lương pay period được nhanh hơn. Cuối cùng, qui tắc kiểm tra hợp lệ cho số giờ đã làm trong và ngoài giờ không chỉ ngăn việc nhập số giờ lớn hơn giá trị cho phép (185 = 23 ngày x 8 giờ mỗi ngày với thời gian trong giờ; và 200 giờ ngoài giờ là chính sách của công ty), qui tắc kiểm tra hợp lệ còn ngăn quản trị viên tình cờ nhập số âm.

Hình 10.12 Các khóa ngoại và thuộc tính cho tblLaborAcquisition.

3. Lưu file. Đặt tên là tblLaborAcquisition. Đóng bảng.

4. Nhập liệu từ Ch10.xlsx Excel file vào tblLaborAcquisition. Kích Excel trong nhóm Import & Link trên dải lệnh External Data. Kích nút Browse để định vị Ch10.xlsx. Kích kép Ch10.xlsx.

5. Kích nút radio tùy chọn thứ hai Append a copy of records to the table: Chọn tblLaborAcquisition từ combo box. Kích OK.

6. Trong hộp thoại kế, làm nổi bật worksheet tblLaborAcquisition. Kích Next hai lần.

7. Trong hộp thoại cuối, tblLaborAcquisition cần đã được nhập vào ô Table:. Kích Finish. Mở tblLaborAcquisition ở góc nhìn Datasheet để kiểm chứng có tất cả 143 bản ghi đã được nhập vào cơ sở dữ liệu (xem Hình 10.13).

Hình 10.13 tblLaborAcquisition ở góc nhìn Datasheet.

Hình 10.6 cho thấy có hai liên kết giữa bảng sử dụng lao động Labor Acquisition và bảng nhân viên Employee của Pipefitters Supply Company. Cả hai khóa ngoại trong tblLaborAcquisition, EmployeeID và EmployeeSupervisorID đều liên kết với EmployeeID trong tblEmployee. Trong bài tập kế, bạn sẽ áp dụng tính toàn vẹn tham chiếu lên các liên kết này để ngăn người dùng nhập thời gian đã làm việc cho mã nhân viên không tồn tại trong tblEmployee. Đặc trưng kiểm soát nội bộ này, thường được gọi là kiểm tra tồn tại (existence check) hay kiểm tra hợp lệ (validity check), có thể giảm sai sót và bất thường khi xử lý việc trả lương. Bài tập 10.12 nhắc lại việc tạo đặc trưng kiểm soát này. Nhớ đóng tblLaborAcquisition trước khi làm bài tập.

BÀI TẬP 10.12: LIÊN KẾT TBLLABORACQUISITION VỚI TBLEMPLOYEE

1. Trên dải lệnh Database Tools, kích Relationships trong nhóm Show/Hide rồi thu gọn Navigation Pane.

2. Thêm tblLaborAcquisition vào cửa sổ Relationship. Kích Show Table trong nhóm Relationships; kích kép tblLaborAcquisition; rồi kích Close.

3. Định cỡ lại bảng tblLaborAcquisition để hiển thị toàn bộ tên bảng và tất cả các thuộc tính. Dời bảng đến giữa cửa sổ Relationship để nhất quán với định dạng mô hình tài nguyên, biến cố, và tác nhân (REA). Tham khảo Hình 10.14.

Hình 10.14 Cửa sổ Relationship trước và sau khi thêm liên kết thứ hai giữa tblEmployeetblLaborAcquisition.

4. Tạo liên kết đầu tiên giữa các bảng. Kéo khóa chính ở bảng tblEmployee đến khóa ngoại tương ứng, EmployeeID, trong tblLaborAcquisition.

5. Sau khi bạn kích và kéo khóa chính đến khóa ngoại cửa sổ Edit Relationships xuất hiện. Đảm bảo rằng các thuộc tính đúng xuất hiện trong các bảng bạn đã kéo từ và kéo đến. Kiểu quan hệ ở đáy hộp thoại phải luôn là one-to-many. Đánh dấu Enforce Referential IntegrityCascade Update Related Fields. Cuối cùng, kích Create trong hộp thoại.

6. Lặp lại các Bước 4 và 5, thay EmployeeID bằng EmployeeSupervisorID trong tblLaborAcquisition. Để ý hộp thoại ở Hình 10.14 xuất hiện khi bạn thử quan hệ thứ hai trên cùng hai bảng. Kích No để tạo quan hệ thứ hai. Cũng để ý là Access phát sinh một danh sách trường thứ hai cho tblEmployee thay vì hiển thị cả hai liên kết quan hệ giữa danh sách trường tblLaborAcquisition và danh sách trường tblEmployee. Khi hoàn thành cửa sổ Relationship của bạn cần giống Hình 10.14.

7. Đóng cửa sổ Relationship rồi kích Yes trong hộp thoại để lưu các thay đổi.

Không có nhận xét nào:

Đăng nhận xét