Phát triển HTTT kế toán bằng MS Access - Chương 10 - Các truy vấn tính lương
James Perry, Richard Newmark
Chương
10
Qui trình nhân sự
Các truy vấn tính lương
Lương
trước thuế gross pay gồm hai phần. Phần đầu là tính bình thường. Để tính, bạn
chỉ việc nhân lương một giờ của từng nhân viên với số giờ làm việc trong giờ
thuộc chu kỳ trả lương của họ. Vì bạn có lương một giờ
trong tblEmployee và số giờ làm việc trong giờ
theo chu kỳ trả lương ở tblLaborAcquisition, bạn có thể truy
vấn hai bảng này để tính lương trong giờ. Việc tính lương ngoài giờ chỉ phức tạp
hơn một tí vì lương một giờ phụ trội gấp 1.5 lần lương một giờ của nhân viên
đó.
Dữ
liệu mẫu của Pipefitters Supply Company sẽ minh họa việc tính lương khi bạn tạo
các truy vấn này. Bảng nhân viên Employee của Pipefitters có 50 bản ghi nhân
viên, và bảng sử dụng lao động Labor Acquisition của họ chứa dữ liệu của ba chu
kỳ trả lương theo tháng. Bạn sẽ dùng chu kỳ trả lương của tháng một để tính
trong các bài tập này.
BÀI
TẬP 10.19: TÍNH LƯƠNG TRƯỚC THUẾ GROSS PAY
1.
Kích Queries Design trong nhóm Queries trên dải
lệnh Create.
Thêm tblEmployee và tblLaborAcquisition vào
Table Pane.
2.
Liên kết giữa EmployeeID trong tblEmployee và
EmployeeSupervisorID
trong tblLaborAcquisition phải được xóa để thi
hành truy vấn này vì Access sẽ áp đặt đồng thời cả hai qui tắc nối nội. Các bản
ghi thỏa các yêu cầu này là các bản ghi sử dụng lao động Labor Acquisition trong
đó nhân viên và giám sát viên là cùng một người! Vì ta không cần thông tin giám
sát viên trong truy vấn này, hãy kích liên kết rồi nhấn
phím Delete. Bây
giờ, tblEmployee và tblLaborAcquisition chỉ
liên kết qua EmployeeID trong truy vấn này.
3.
Từ tblLaborAcquisition,
thêm EmployeeID, TimeCardID,
và LAPayPeriodEnded vào lưới QBE. Đặt ô Sort
của EmployeeID là Ascending.
4.
Vì lương trước thuế gross pay được dùng trong nhiều tính toán ngoài việc tính số
tiền ghi trên chi phiếu cho nhân viên (chẳng hạn, khoản chi lương trên báo cáo
thu nhập), tiêu chí cho LAPayPeriodEnded cần chứa chu kỳ thời gian (chẳng hạn
tháng, quí, năm). Giống như bạn đã tạo truy vấn cho các hạng mục trong báo cáo
thu nhập, bạn sẽ dùng hàm Between với tham biến thời điểm đầu và tham biến thời
điểm cuối. Hãy gõ Between [Beginning of Period Date] and [End of
Period Date] làm tiêu chí Criteria cho ô LAPayPeriodEnded trong
lưới QBE.
5.
Hãy thêm dữ liệu để tính lương trong giờ và lương ngoài giờ. Kích
kép EmployeePayRate từ tblEmployee.
Kích
kép LARegularTime và LAOvertime từ tblLaborAcquisition.
Lưu truy vấn với tên qryGrossPay.
6.
Ở cột trống đầu tiên, kích ô Field; kích phải rồi
chọn Build… để mở công cụ tạo biểu thức
Expression Builder. Tạo biểu thức tính lương trong
giờ: RegularPay: [EmployeePayRate] * [LARegularTime]. Nhớ
rằng bạn có thể kích kép các tên trường trong danh sách Expression Categories để
thêm chúng vào ô biểu thức. Kích OK khi tạo
xong.
7.
Để ý là biểu thức RegularPay được làm nổi bật. Hãy
nhấn Ctrl+C; kích
ô Field trống kế rồi
nhấn Ctrl+V. Hãy sửa biểu thức RegularPay để tính lương
ngoài giờ. Nhấn Shift+F2 để mở cửa sổ Zoom. Vì
ngoài giờ được tính bằng 1.5 lần lương trong giờ, lương ngoài giờ có thể là kết
quả có nhiều hơn hai chữ số thập phân. Lỗi làm tròn có thể mất nhiều giờ sửa
chữa trong các hệ thống kế toán, và tính lương có thể là nơi dễ xảy ra lỗi làm
tròn nhất. Một cách khử lỗi làm tròn tại thời điểm tính toán là làm tròn kết quả
về hai chữ số thập phân. Hãy sửa biểu thức trong cửa sổ Zoom
thành OvertimePay: Round([EmployeePayRate] * 1.5 *
[LAOvertime],2), rồi kích OK. Lưu truy vấn. Xem Chương
4, Bài tập 4.6 để có diễn giải chi tiết hơn.
8.
Hãy dùng công cụ tạo biểu thức Expression Builder để tạo biểu thức lương trước
thuế gross pay trong
ô Field kế: GrossPay:
[RegularPay] + [OvertimePay]. Kích OK khi
tạo xong.
9.
Hãy sửa định dạng và phụ đề cho ba biểu thức bạn đã tạo.
Kích RegularPay; mở Property Sheet; đặt
Format là Currency và đặt Caption
là Regular Pay. Hãy dùng định dạng tương tự cho hai biểu
thức kia. Đặt Caption cho OvertimePay là Overtime Pay, và
Caption cho GrossPay là Gross Pay. Lưu truy vấn.
10.
Hãy kiểm chứng việc tính lương là đúng bằng cách thi hành truy vấn và tính lương
trước thuế gross pay bằng tay cho một hay hai nhân viên đã làm ngoài giờ trong
tháng một năm 2012. Khi bạn thi hành truy vấn,
gõ 1/1/2012 cho thời điểm đầu kỳ
và 1/31/2012 cho thời điểm cuối kỳ và bạn cần
có 45 bản ghi (xem Hình 10.23). Mặc dù bạn có thể gõ 1/31/2012 cho cả hai thời
điểm, việc chỉ định toàn bộ tháng một sẽ báo động lỗi cho người dùng nếu thời
điểm khác 1/31/2012 xuất hiện trong tập động dynaset. Nếu một số nhãn không thấy
được hết bạn có thể điều chỉnh độ rộng của tất cả các cột cùng lúc bằng cách
kích nút chọn Datasheet, chọn Column Width từ
More menu trong nhóm Records, rồi kích Best Fit. Lưu rồi
đóng truy vấn.
Hình 10.23 Tập động dynaset của truy vấn tính lương
trước thuế gross pay.
Dĩ
nhiên, việc tính lương trước thuế gross pay chỉ là phần đầu của việc tính lương.
Phần thứ hai và phức tạp hơn là tính các khấu trừ khỏi lương trước thuế gross
pay để tính lương sau thuế net pay. Bước kế tiếp là
sửa qryGrossPay để tính các khấu trừ và lương
sau thuế net pay. Các khấu trừ lương gồm thuế, bảo hiểm, đóng góp, và nhiều hạng
mục khác. Qui tắc tính các khấu trừ nói chung rơi vào một trong bốn phân loại
sau:
1. Khấu
trừ khoản cố định. Dễ tính các khấu trừ này vì chúng là
khoản cố định trong từng chu kỳ trả lương. Ví dụ về các khấu trừ này là phí bảo
hiểm y tế, phí bảo hiểm nhân thọ, và đóng góp từ thiện được nhân viên đồng ý
chẳng hạn United Way.
2. Khấu
trừ phần trăm cố định. Các khấu trừ này là phần trăm cố
định của thu nhập trước thuế ở từng chu kỳ trả lương. Ví dụ về các khấu trừ này
là thuế chăm sóc y tế Medicare, và các khoản thuế thu tại nguồn withholding tax
trong nhiều thành phố và địa hạt của Hoa Kỳ được nhà tuyển dụng giữ lại. Một số
thuế thu nhập của bang cũng là phần trăm cố định của toàn bộ thu nhập.
3. Khấu
trừ phần trăm biến thiên. Các khấu trừ này tương tự khấu
trừ phần trăm cố định ngoại trừ phần trăm thay đổi theo mức thu nhập, tình trạng
lập gia đình, và số khoản miễn trừ đã khai. Thuế thu nhập liên bang Hoa Kỳ mà
nhà tuyển dụng phải khấu trừ từ lương nhân viên là ví dụ điển hình của loại thuế
này. Nhiều bang có qui định thuế thu tại nguồn tương tự qui định của liên bang,
nên cũng rơi vào loại này.
4. Khấu
trừ phần trăm cố định bị chặn trên. Các khấu trừ này là
phần trăm cố định trên thu nhập trước thuế cho đến khi chạm trần. Ví dụ điển
hình của loại khấu trừ này là thuế an sinh xã hội FICA tax. Nhà tuyển dụng sẽ
khấu trừ một phần trăm cố định trên thu nhập trước thuế cho đến khi đạt đến hạn
mức FICA trong năm đó. Một số bang, chẳng hạn California, yêu cầu nhân viên đóng
quĩ bảo hiểm thất nghiệp cũng theo cách này.
Kiểu
khấu trừ đầu tiên, khoản cố định trong từng chu kỳ trả lương, thì dễ mô hình.
Bạn chỉ cần thêm một trường vào bảng nhân viên Employee –chỉ dấu cho biết nhân
viên đó có bị khấu trừ không – để kích hoạt tính toán. Kiểu khấu trừ thứ hai,
phần trăm cố định, còn dễ thi triển hơn nữa. Bạn chỉ cần đưa phần trăm cố định
vào truy vấn tính lương. Kiểu khấu trừ thứ ba, phần trăm biến thiên, có thể khó
thi triển vì cần thêm một hay nhiều bảng. Các bảng này chứa nhiều giá trị phần
trăm khác nhau và các điểm tại đó chúng chuyển từ phần trăm này sang phần trăm
khác. Kiểu khấu trừ thứ tư, phần trăm cố định bị chặn trên, thậm chí còn khó thi
triển hơn. Nó cần thêm một truy vấn để tính tổng từ đầu năm đến nay rồi so tổng
đó với giá trị trần. Giá trị trần có thể được lưu vào một bảng riêng hay đưa vào
truy vấn.
Việc
tính lương của Pipefitters Supply Company sẽ gồm các kiểu khấu trừ thứ hai và
thứ ba. Các tính toán phần trăm cố định là thuế chăm sóc y tế Medicare và thuế
an sinh xã hội FICA tax. Khấu trừ thuế an sinh xã hội FICA tax thật ra là kiểu
thứ tư, vì đó là phần trăm cố định cho đến khi chạm trần hàng năm. Tuy nhiên, dữ
liệu mẫu của Pipefitters Supply Company đã được thiết kế để không có nhân viên
nào vượt trần FICA. Vì thế, bạn có thể mô hình thuế an sinh xã hội FICA tax cho
Pipefitters là khấu trừ phần trăm cố định. Khấu trừ thuế thu nhập liên bang mà
Pipefitters phải giữ lại từ lương nhân viên sẽ minh họa một số vấn đề phức tạp
khi mô hình kiểu khấu trừ thứ ba. Khấu trừ này thường được gọi
là thuế liên bang thu tại nguồn federal withholding tax
FWT hay thuế thu nhập liên bang thu tại
nguồn federal income tax FIT.
Làm
ơn để ý rằng các tính toán khấu trừ thuế được mô hình trong chương này không có
ý thực hiện đầu đủ và chính xác. Luật thuế doanh nghiệp thường xuyên thay đổi và
tùy thuộc bang. Mục đích ở đây là để bạn thực hành việc tạo bảng và truy vấn để
bạn có thể áp dụng vào các nhu cầu người dùng cụ thể và xử lý các yêu cầu biến
thiên của chính phủ.
Trước
khi tạo truy vấn để tính lương sau thuế net pay, bạn sẽ tạo hai bảng chứa dữ
liệu cần thiết để tính thuế liên bang thu tại nguồn withholding tax FWT: một
bảng lưu phần trăm thuế thu tại nguồn withholding tax FWT và bảng thứ hai lưu
các khoản miễn trừ. Bạn đã có thể đưa các phần trăm và khoản miễn trừ
vào qryNetPay, nhưng việc đặt chúng vào bảng riêng sẽ giúp
việc cập nhật dễ dàng hơn rất nhiều.
BÀI
TẬP 10.20: TẠO BẢNG MIỄN TRỪ EXEMPTION
Phần
trăm thuế liên bang thu tại nguồn withholding tax FWT phụ thuộc một phần vào
lương trước thuế gross pay trừ khoản miễn thuế. Trong bài tập này bạn tạo bảng
tra cứu để tìm khoản miễn thuế của nhân viên dựa trên số khoản miễn thuế mà họ
khai, được lưu trong trường EmployeeExemptions
thuộc tblEmployee.
1.
Kích Create tab; kích Table
Design trong nhóm Tables. Đặt tên trường đầu tiên
là ExemptionNumber rồi
kích Primary Key trong nhóm Tools. Đặt Data
Type là Number. Đặt các thuộc tính trường sau: Field Size
– Byte; Decimal Places – 0; Input Mask
– 9;;_ Caption – Num. of
Exempts; Required – Yes; Indexed – Yes
(No Duplicates). Điều này cho phép Pipefitters sửa chính sách của họ để cho
phép không nhiều hơn chín khoản miễn thuế (xem Bài tập 10.5, Bước 14) mà không
thay đổi cấu trúc bảng.
2.
Field Name thứ hai là ExemptionAmount. Đặt Data Type
là Currency. Đặt các thuộc tính trường sau: Format
– Currency; Decimal Places – 2; Caption
– Exemption Amt.; Required – Yes;
Indexed – No.
3.
Lưu bảng với tên tblExemption. Hãy nhập liệu. Bạn có thể
nhập liệu từ Ch10.xlsx file như đã làm cho
tblLaborAcquisition ở Bài tập 10.11 hay chuyển sang góc
nhìn Datasheet rồi sao chép và dán nó
từ tblExemption worksheet
trong Ch10.xlsx.
4.
Lưu rồi đóng bảng.
Để
ý rằng các khoản miễn thuế đều là bội số của $304.17. Bạn đã có thể dễ dàng tính
khoản miễn thuế bên trong truy vấn lương sau thuế net pay bằng cách nhân số
khoản miễn thuế của nhân viên với $304.17. Tuy nhiên, nhiều cơ quan thuế sẽ giảm
thuế nếu lương vượt quá một giá trị nào đó, đôi khi giảm về $0. Đây là một lý do
nữa tại sao bạn cần biết cách mô hình các khoản miễn thuế bằng bảng tra cứu.
BÀI
TẬP 10.21: TẠO BẢNG THUẾ THU TẠI NGUỒN WITHHOLDING
Một
bảng bạn cần xác định phần trăm để tính thuế liên bang thu tại nguồn federal
withholding tax FWT là bảng Withholding. Đây là bảng tra cứu phức tạp hơn. Thông
tin nhóm thuế được dùng để tính thuế liên bang thu tại nguồn federal withholding
tax FWT của từng nhân viên được dựa trên tình trạng lập gia đình của họ (lưu
trong bảng tblEmployee) và lương trước thuế gross pay trừ
khoản miễn thuế.
1.
Tạo bảng mới bằng cách dùng Table Design trong
nhóm Tables. Gõ MaritalStatus vào dòng đầu tiên
cột Field Name. Ở dòng thứ hai,
gõ FWTBracket (nhóm thuế liên bang thu tại
nguồn) vào cột Field Name.
2.
Tạo khóa chính phức hợp. Kích nút chọn bản ghi của MaritalStatus, nhấn và giữ
phím Ctrl rồi kích nút chọn bản ghi của
FWTBracket. Sau đó kích Primary Key trong nhóm
Tools.
3.
Dùng Hình 10.24 để đặt kiểu dữ liệu và thuộc tính trường
cho MaritalStatus và FWTBracket.
Thêm các thuộc tính ở phần cuối của Hình 10.24. Tại sao Input Mask cho
MaritalStatus >L?
Hình 10.24 Các khóa chính và thuộc tính
cho tblWithholding.
4.
Lưu bảng với tên tblWithholding.
5.
Nhập liệu. Bạn có thể chuyển sang góc nhìn Datasheet rồi nhập bằng tay dữ liệu ở
Hình 10.25, hay sao chép và dán nó
từ Ch10.xlsx file.
Hình 10.25 Dữ liệu
cho tblWithholding được hiển thị ở góc nhìn
Datasheet.
6.
Đóng bảng.
Để
ý ở Hình 10.25 rằng ta thật sự lưu hai bảng, mỗi bảng cho từng tình trạng hồ sơ.
Đây là một trong những lợi ích của việc dùng khóa chính phức hợp. Bạn thậm chí
có thể có nhiều hơn hai tình trạng lập gia đình hay các trạng thái khác. Chẳng
hạn, Bộ luật Thuế Hoa Kỳ U.S. Tax Code chứa bốn nhóm thuế dựa trên tình trạng
lập gia đình: có gia đình và cùng khai thuế, có gia đình nhưng khai thuế riêng,
chủ hộ, và độc thân. Hơn nữa, bạn có thể thêm nhiều nhóm thuế cho từng tình
trạng lập gia đình bằng cách thêm dòng vào bảng. Khả năng có thể dễ dàng mở rộng
bảng (chẳng hạn không phải sửa cấu trúc bảng hay thêm bảng mới) được gọi
là khả năng mở rộng scalability.
BÀI
TẬP 10.22: LIÊN KẾT TBLEXEMPTION
VÀ TBLWITHHOLDING VỚI TBLEMPLOYEE
1.
Đóng tất cả các bảng đang mở.
Kích Relationships trên dải
lệnh Database Tools rồi thu
gọn Navigation Pane.
2.
Thêm tblExemption và tblWithholding vào
cửa sổ Relationships dùng công cụ Show
Table trong nhóm Relationships.
3.
Thu gọn dải lệnh để hiển thị toàn bộ các danh sách trường. Kích phải thanh Menu
rồi kích Minimize the Ribbon.
4.
Định cỡ lại các bảng mới để chỉ hiển thị các khóa chính rồi dời chúng đến gần
danh sách trường bảng Employee.
5.
Tạo liên kết Exemption-Employee. Kéo từ khóa chính
trong tblExemption, ExemptionNumber, đến
khóa ngoại tương ứng, EmployeeExemptions,
trong tblEmployee.
6.
Đảm bảo là 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 cần là one-to-many. Đánh
dấu Enforce Referential
Integrity và Cascade Update Related Fields.
Kích nút Create.
7.
Tạo liên kết Withholding-Employee. Kéo từ khóa chính bộ
phận MaritalStatus trong tblWithholding đến
khóa ngoại tương ứng, EmployeeMaritalStatus,
trong tblEmployee. Đảm bảo là 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. MaritalStatus
trong tblWithholding không duy nhất vì nó là
một phần của khóa chính phức hợp. EmployeeMaritalStatus
trong tblEmployee không duy nhất vì nó là khóa
ngoại. Vì thế, kiểu quan hệ là many-to-many, Access hiển thị
là Indeterminate ở đáy hộp thoại. Bạn không thể
áp đặt tính toàn vẹn tham chiếu cho quan hệ indeterminate. Kích
nút Create để kết thúc.
8.
Bạn có thể cô lập qui trình nhân sự HR bằng cách loại các bảng và quan hệ không
liên quan đến nó. Kích danh sách
trường tblPurchase rồi nhấn
phím Delete. tblPurchase và
các quan hệ của nó không còn được hiển thị, nhưng các liên kết bạn đã tạo vẫn
tồn tại. Hãy xóa tblVendor bằng cách tương tự.
Đừng thử kích các quan hệ rồi xóa chúng. Việc xóa quan hệ trong cửa sổ
Relationships sẽ xóa mất quan hệ đó thay vì che
dấu nó.
9.
Khi làm xong, cửa sổ Relationships của bạn cần giống Hình 10.26.
Hình 10.26 Cửa sổ Relationships hoàn tất cho qui trình
nhân sự HR.
10.
Đóng cửa sổ Relationships và kích Yes trong hộp
thoại để lưu các thay đổi.
Trong
ba bài tập tới bạn sẽ thêm lương trước thuế gross pay trừ khoản miễn thuế
vào qryGrossPay, tạo truy vấn tính thuế liên bang thu tại
nguồn federal withholding tax FWT, và tạo truy vấn lương sau thuế net pay.
BÀI
TẬP 10.23: THÊM PHÉP TÍNH LƯƠNG TRƯỚC THUẾ GROSS PAY TRỪ KHOẢN MIỄN THUẾ
VÀO QRYGROSSPAY.
1.
Phục hồi Navigation Pane và dải lệnh nếu bạn chưa làm.
Mở qryGrossPay ở góc nhìn Design. Nó nằm ở phần
Unassigned Objects thuộc Navigation Pane.
2.
Thêm danh sách trường tblExemption vào Table
Pane. Dùng thanh cuộn thuộc Criteria Pane (lưới QBE) để cuộn sang phải cho đến
khi thấy cột trường GrossPay và ít nhất hai cột trống. Kích
kép ExemptionAmount để thêm nó vào cột trống
đầu tiên trong Criteria Pane. Lưu truy vấn.
3.
Tạo biểu thức để trừ ExemptionAmount khỏi GrossPay. Tuy nhiên, kết quả không
được bé hơn 0. Nếu không, kết quả sẽ không rơi vào khoảng chặn dưới và chặn trên
của bất kỳ nhóm thuế nào
thuộc tblWithholding (xem Hình 10.25). Vì thế,
bạn sẽ thêm hàm IIf để biểu thức không
cho phép số âm. Hàm IIf trông như sau: IIf(biểu-thức, phần-đúng,
phần-sai). IIF sẽ ước lượng biểu-thức. Nếu đúng, giá trị
của biểu thức trong phần-đúng được trả về. Nếu
sai, giá trị của biểu thức trong phần-sai được
trả về. Hãy kích ô Field ở cột trống đầu tiên
trên lưới QBE rồi kích Builder trong nhóm Query
Setup. Thêm vào biểu thức sau: GrossLessExempt: IIf([GrossPay] -
[ExemptionAmount] > 0, [GrossPay] - [ExemptionAmount], 0). Bạn có thể tận
dụng khả năng của công cụ tạo biểu thức Expression Builder bằng cách thực hiện
các bước sau nhằm giúp bạn tránh lỗi và tiết kiệm thời gian nhập các biểu thức
phức tạp.
a.
Gõ GrossLessExempt: vào cửa sổ Expression.
b.
Kích dấu + cạnh Functions trong cột Expression
Elements rồi kích Built-In Functions.
c.
Trong cột Expression Values, cuộn đến IIf rồi
kích kép nó để thêm nó vào cửa sổ Expression.
d.
Kích <<Expr>> rồi nhấn
phím Delete. Access đã chèn phần này vì nó dự kiến có một
toán tử (chẳng hạn +, -) giữa hai thành phần của một biểu thức.
e.
Kích qryGrossPay trong cột Expression Elements
để hiển thị các trường truy vấn trong cột Expression Categories.
f.
Thay các chỗ trống trong lệnh IIf bằng cách kích để làm nổi bật chỗ đó rồi gõ
hay kích kép các trường trong Expression Categories. Chẳng hạn,
kích <<expression>> trong cửa sổ
Expression để làm nổi bật nó. Kích
kép GrossPay thời gian cột Expression
Categories để thay, trong cửa sổ Expression gõ dấu -; kích
kép ExemptionAmount để chèn nó vào biểu thức
tại vị trí con trỏ; rồi gõ >0 để kết thúc
phần đầu của hàm. Hãy hoàn thành phần còn lại của hàm theo cách tương tự.
Bạn
còn có thể sao chép và dán bên trong biểu thức để tiết kiệm thời gian và tránh
lỗi.
4.
Thi hành truy vấn cho tháng 01/2012 rồi kiểm chứng xem truy vấn có tính đúng
GrossLessExempt hay không. Chẳng hạn, các khoản được làm nổi bật ở Hình 10.27
cho thấy các khoản miễn thuế vượt quá lương trước thuế gross pay. Vì thế, lệnh
IIf trả về $0.00 thay vì giá trị âm. Đóng truy vấn.
Hình 10.27 Một phần của tập động
dynaset qryGrossPay.
BÀI
TẬP 10.24: TẠO TRUY VẤN ĐỂ TÍNH THUẾ LIÊN BANG THU TẠI NGUỒN FEDERAL WITHHOLDING
TAX FWT
Trong
bài tập này bạn tạo truy vấn để bắt chước hàm tra cứu Lookup trong Excel. Bạn sẽ
dùng tổ hợp tình trạng lập gia đình MaritalStatus của nhân viên và khoản
GrossLessExempt để xác định nhóm FWT thích hợp, rồi thực hiện hàng loạt tính
toán dùng giá trị từ các trường bên trong nhóm FWT đó.
1.
Kích Create tab rồi kích Query
Design trong nhóm Queries.
Thêm tblEmployee, tblWithholding,
và qryGrossPay vào Table Pane. Định cỡ lại và
dời các danh sách trường để bạn có thể thấy toàn bộ các trường trong danh sách
trường. Bạn có thể mở rộng Table Pane bằng cách nắm lấy thanh giữa nó và
Criteria Pane rồi kéo xuống dưới.
2.
Từ danh sách trường qryGrossPay,
thêm EmployeeID, TimeCardID,
và LAPeriodEnded, vào Criteria Pane.
Sắp EmployeeID theo thứ tự
tăng Ascending.
3.
Thêm EmployeeMaritalStatus từ danh sách
trường tblEmployee để giới hạn nhóm FWT theo
tình trạng lập gia đình của nhân viên.
4.
Dựa trên tình trạng lập gia đình của nhân viên, hãy chọn nhóm thuế FWT ở đó
GrossLessExempt rơi vào khoảng từ chặn dưới FWT đến chặn trên FWT.
Thêm GrossLessExempt từ qryGrossPay và FWTBracket từ tblWithholding vào
Criteria Pane. Lưu truy vấn và đặt tên là qryFWTax. Để chỉ
định đúng nhóm thuế FWT, hãy thêm vào ô Criteria của GrossLessExempt biểu thức
sau: Between [FWTLowerLimit] And [FWTUpperLimit]. Bạn có thể
gõ biểu thức vào ô Zoom bằng cách nhấn Shift+F2, hay bạn có
thể dùng công cụ tạo biểu thức Expression Builder (kích Builder trong nhóm Query
Setup).
5.
Chọn dữ liệu thích hợp từ nhóm thuế FWT để tính khoản thuế FWT.
Thêm FWTLowerLimit, FWTRate,
và FWTBracketAmt từ danh sách
trường tblWithholding vào Criteria Pane.
6.
Lưu các thay đổi. Thi hành truy vấn cho tháng 01/2012. Dùng Hình 10.26 để kiểm
tra độ chính xác của nhóm thuế Tax Bracket, chặn dưới Lower Limit, và khoản thuế
cơ bản FWT Base Amt. cho năm nhân viên đầu tiên.
7.
Dùng công cụ tạo biểu thức Expression Builder để tính khoản thuế FWT. Vì tính
toán FWT có thể cho giá trị với nhiều hơn hai vị trí thập phân, bạn sẽ thêm hàm
Round vào tính toán của mình. Trở về góc nhìn Design. Kích ô
Field trong cột trống đầu tiên trên Criteria Pane rồi
kích Builder trong nhóm Query Setup.
Nhập FWT: Round((([GrossLessExempt] - [FWTLowerLimit]) *
[FWTRate]) + [FWTBracketBaseAmt],2).
Kích OK khi nhập xong.
8.
Lưu truy vấn rồi thi hành nó cho tháng 01/2012 để kiểm chứng độ chính xác của
các khoản thuế FWT. Hình 10.28 trình bày một phần tập động dynaset. Đóng truy
vấn.
Hình 10.28 Tập động
dynaset qryFWTax.
Công
thức tính lương sau thuế net pay bằng lương trước thuế Gross Pay - FWT - FICA -
Medicare. Bạn đã tính lương trước thuế gross pay ở Bài tập 10.18 và FWT ở Bài
tập 10.23. Vì thuế an sinh xã hội FICA tax và thuế chăm sóc y tế Medicare dựa
trên phần trăm cố định của lương trước thuế gross pay – phần trăm thuế an sinh
xã hội FICA tax là 6.2% và Medicare là 1.45% - bạn có tất cả thông tin cần để
tính lương sau thuế net pay. Nhớ rằng ta đang lờ đi chặn trên FICA để đơn giản
hóa tính toán.
BÀI
TẬP 10.25: TẠO TRUY VẤN ĐỂ TÍNH LƯƠNG SAU THUẾ NET PAY
1.
Kích Create tab rồi kích Query
Design trong nhóm Queries.
2.
Thêm qryFWTax và qryGrossPay vào
Table Pane. Định cỡ lại và dời các danh sách trường để bạn có thể thấy tất cả
các trường trong từng danh sách trường.
3.
Tạo liên kết giữa hai truy vấn bằng cách kích và
kéo TimeCardID từ danh sách trường này
đến TimeCardID ở danh sách trường kia. Bạn cần
thấy liên kết
giữa qryFWTax và qryGrossPay.
Tại sao lại cần liên kết này?
4.
Kích
kép EmployeeID, TimeCardID, LAPayPeriodEnded,
và GrossPay từ danh sách
trường qryGrossPay để thêm chúng vào Criteria
Pane. Sắp EmployeeID theo thứ tự
tăng Ascending. Thêm FWT từ
danh sách trường qryFWTax vào Criteria Pane rồi
lưu truy vấn với tên qryNetPay.
5.
Nhập biểu thức FICA vào ô Field trống trong lưới QBE dùng hàm
Round: FICA: Round([GrossPay] * 0.062,2). Thi hành truy vấn
dùng 1/1/2012 và 31/1/2012 làm
thời điểm đầu và thời điểm cuối để kiểm tra biểu thức. Các giá trị ở cột FICA
trong tập động dynaset kết quả phải không được có nhiều hơn hai vị trí thập phân
(xem Hình 10.29).
Hình 10.29 Tập động
dynaset qryNetPay.
6.
Nhập biểu thức Medicare vào ô Field kế FICA: Medicare:
Round([GrossPay] * 0.0145,2). Lưu truy vấn.
7.
Mở Property Sheet rồi đặt Format là Currency và
Decimal Places bằng 2 cho cả FICA và Medicare.
Lưu truy vấn.
8.
Dùng công cụ tạo biểu thức Expression Builder để nhập biểu thức lương sau thuế
net pay: NetPay: [GrossPay] - [FWT] - [FICA] - [Medicare].
Kích OK để dòng công cụ tạo biểu thức
Expression Builder. Đặt Format là Currency và
Decimal Places bằng 2; đặt Caption là Net
Pay.
9.
Lưu truy vấn rồi thi hành với tháng 01/2012. Tập động dynaset của bạn cần giống
Hình 10.29. Đóng truy vấn.







0 nhận xét