Thứ Sáu, 30 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Form thông tin cổ đông / bên cho vay Stockholder/Creditor

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Form thông tin cổ đông / bên cho vay Stockholder/Creditor


Form thông tin cổ đông / bên cho vay Stockholder/Creditor Information chứa dữ liệu tương tự form thông tin nhà cung ứng Vendor Information mà bạn đã tạo ở Chương 9. Vì thế, bạn sẽ bắt đầu với một bản sao của form thông tin nhà cung ứng Vendor Information rồi chỉ việc sửa nguồn dữ liệu từ tblVendor thành tblStockholderCreditor.

BÀI TẬP 11.6: DÙNG FORM THÔNG TIN NHÀ CUNG ỨNG VENDOR INFORMATION ĐỂ TẠO FORM THÔNG TIN CỔ ĐÔNG / BÊN CHO VAY STOCKHOLDER/CREDITOR INFORMATION

1. Tạo một bản sao của frmVendor ở phần Chapter 9 Forms thuộc Navigation Pane rồi đặt tên là frmStockholderCreditor.

2. Mở frmStockholderCreditor ở góc nhìn Design. Nó nằm ở phần Unassigned Objects thuộc Navigation Pane.

3. Kích Property Sheet ở nhóm Tools nếu Property Sheet chưa mở.

4. Chọn Form từ combo box ở đỉnh Property Sheet. Trên Data tab, sửa Record Source thành tblStockholderCreditor.

5. Hãy sửa VendorID thành FinancierID. Kích thành phần điều khiển VendorID control. Trên Property Sheet, hãy sửa Control Source thành FinancierID bằng cách kích mũi tên combo box. Kích Other tab. Sửa Name thành FinancierID.

6. Sửa nhãn ở phần chi tiết Detail của form thành Financier #.

7. Hãy sửa Control Source của các trường còn lại thành trường thích hợp từ tblStockholderCreditor. Chẳng hạn, sửa Control Source từ VendorName thành FinancierName. Cũng vậy, sửa các thuộc tính Name trong Other tab để bắt đầu với Financier.

8. Sửa đầu đề Header thành thông tin cổ đông / bên cho vay Stockholder/Creditor Information.

9. Lưu form. Xem form ở góc nhìn Form. Nó cần trông giống form ở Hình 11.7 sau khi bạn nhập liệu từ Hình 11.6.


Hình 11.7 Form thông tin cổ đông / bên cho vay Stockholder / Creditor ở góc nhìn Form.

Thứ Năm, 29 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Bảng cổ đông / bên cho vay Stockholder/Creditor

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Bảng cổ đông / bên cho vay Stockholder/Creditor


Bảng đầu tiên trong qui trình tài chính sẽ được mô tả là bảng cổ đông / bên cho vay Stockholder/Creditor. Nó chứa các trường giống bảng nhà cung ứng Vendor. Vì ta sẽ thu thập cùng một dữ liệu về nhà cung ứng và cổ đông / bên cho vay, ta đã có thể lưu thông tin cổ đông/ bên cho vay vào bảng nhà cung ứng Vendor. Tuy nhiên, ta sẽ cần thêm bảng kiểu tác nhân ngoại, rồi kết nối hai bảng bằng cách thên trường mã kiểu tác nhân ngoại ExternalAgentTypeID vào bảng nhà cung ứng Vendor. Hơn nữa, ta cần đổi tên bảng và các thuộc tính để phản ánh chính xác nội dung bảng và các trường của nó. Việc đặt tên bảng và thuộc tính không phải là vấn đề lớn cho đến khi bạn nhận ra rằng các trường và biểu thức trong các truy vấn và đối tượng Access khác có thể cần phải thay đổi bằng tay. Một phương án khác, được chọn ở đây, là thêm một bảng riêng Stockholder/Creditor.

BÀI TẬP 11.5: TẠO BẢNG CỔ ĐÔNG / BÊN CHO VAY TBLSTOCKHOLDERCREDITOR TỪ BẢNG NHÀ CUNG ỨNG TBLVENDOR

1. Mở cơ sở dữ liệu Ch11.accdb.

2. Hãy tạo một bản sao của bảng nhà cung ứng tblVendor. Kích bảng nhà cung ứng tblVendor trong phần Chapter 9 Tables thuộc Navigation Pane. Nhấn Ctrl+C, nhấn Ctrl+V, gõ tblStockholderCreditor vào ô Paste Table As, kích nút radio Structure Only, rồi kích OK.

3. Mở bảng cổ đông / bên cho vay tblStockholderCreditor ở góc nhìn Design. Nó nằm ở phần Unassigned Objects thuộc Navigation Pane.

4. Sửa tên khóa chính từ VendorID thành FinancierID. Ta đã chọn Financier thay vì StockholderCreditor làm tiền tố cho các tên trường thuộc tblStockholderCreditor vì nó ngắn hơn nhiều và có nghĩa tương tự. Sửa phụ đề Caption của FinancierID thành Financier #.

5. Sửa tiền tố trên các trường còn lại từ Vendor thành Financier.

6. Lưu các thay đổi rồi đóng bảng. Hãy đợi đến khi bạn tạo Stockholder/Creditor form để nhập dữ liệu cổ đông / bên cho vay ở Hình 11.6.

Hình 11.6 tblStockholderCreditor ở góc nhìn Datasheet.

Thứ Tư, 21 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Thông tin cổ đông Stockholder và bên cho vay Creditor

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Thông tin cổ đông Stockholder và bên cho vay Creditor


Các công ty cần dễ dàng và tự tin truy xuất thông tin về các cổ đông và bên cho vay. Việc truy xuất thông tin này cần được giới hạn chỉ cho những cá nhân cần đến nó. Hãy hình dung mọi nhân viên Wal-Mart đều có quyền truy xuất thông tin liên lạc đến mọi bên cho vay của Wal-Mart! Các kế toán viên và quản lý viên tham gia các hoạt động tài chính sẽ cần tên, địa chỉ, số điện thoại, và người liên hệ của cổ đông và bên cho vay. Họ cũng cần biết số cổ phiếu mà cổ đông đang sở hữu hay khoản vay nào liên quan đến bên cho vay nào. Giống như thông tin khách hàng, nhà cung ứng, và nhân viên, mọi thông tin về cổ đông và bên cho vay được lưu vào một bảng để đảm bảo thông tin được nhất quán khi dùng. Chẳng hạn, nếu bên cho vay chuyển địa điểm, địa chỉ của bên cho vay chỉ được sửa một lần. Trong hệ thông tin kế toán cơ sở dữ liệu quan hệ (AIS) của Pipefitters, thông tin cổ đông và bên cho vay được lưu trong bảng Stockholder/Creditor.

Thứ Ba, 20 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Hoàn tất mô hình tài chính

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Hoàn tất mô hình tài chính


Để hoàn thành mô hình, các khóa chính cho từng thực thể đã được nhận diện (xem Hình 11.4). Dựa trên các khóa chính và lực lượng tham gia, bạn có thể tạo các khóa ngoại và bảng quan hệ. Cần lực lượng tham gia gì để liên kết hai thực thể qua bảng quan hệ thay vì dùng khóa ngoại? Hãy ôn lại phần “Hệ quản trị cơ sở dữ liệu” ở Chương 2 nếu bạn không chắc.

Hình 11.4 Qui trình tài chính với các khóa chính.

BÀI TẬP 11.4: TẠO CÁC QUAN HỆ QUA KHÓA NGOẠI VÀ BẢNG QUAN HỆ

1. Bằng việc dùng các khóa chính cung cấp cho mô hình dữ liệu của Pipefitters ở Hình 11.4, hãy tạo khóa ngoại cho các quan hệ một-nhiều one-to-many.

2. Hãy tạo khóa ngoại cho các quan hệ một-một one-to-one.

Nếu khóa ngoại cho các quan hệ một-nhiều one-to-many của bạn không khớp với các khóa ngoại ở Hình 11.5, hãy ôn lại phần “Hệ quản trị cơ sở dữ liệu” ở Chương 2.

Làm sao bạn tạo được liên kết cho quan hệ một-một one-to-one? Bạn có thể đặt khóa ngoại cho một trong hai bảng thuộc quan hệ một-một one-to-one, nhưng bạn không thể đặt khóa ngoại cho cả hai bảng. Qui tắc chung chọn bảng là tránh giá trị rỗng null. Nếu đó là quan hệ thời gian, chẳng hạn giữa biến cố cam kết và biến cố kinh tế, hãy tạo khóa ngoại trong biến cố phát sinh sau để tránh giá trị rỗng null. Chẳng hạn, ở Hình 11.5 LoanID từ bảng hợp đồng vay Loan Agreement được gởi vào trường EventID trong bảng thâu ngân Cash Receipt. Bằng cách này, khi ghi nhận biến cố thâu ngân Cash Receipt, khóa ngoại LoanID đã tồn tại. Nếu RAID, khóa chính của bảng thâu ngân Cash Receipt, được gởi làm khóa ngoại trong bảng hợp đồng vay Loan Agreement thì trường khóa ngoại RAID không thể là trường bắt buộc vì nó phải rỗng null cho đến khi ghi nhận biến cố thâu ngân từ việc vay. Đây là một khuyết điểm của kiểm soát nội bộ. Các kiểm toán viên trong và ngoài sẽ phải thêm việc để xác định giá trị rỗng null nào của khóa ngoại RAID là đúng và giá trị nào là lỗi hay bất thường.

Hình 11.5 Qui trình tài chính với các khóa chính, khóa ngoại, và bảng quan hệ.

Thứ Hai, 19 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Các giả định nhằm đơn giản hóa

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Các giả định nhằm đơn giản hóa


Để đơn giản, ta sẽ bỏ qua biến cố công bố cổ tức Dividend Declaration, được mô hình là một biến cố cam kết khác. Biến cố đó sẽ liên kết với biến cố giải ngân Cash Disbursement và hợp đồng mua bán cổ phiếu Stock Subscription. Biến cố phát hành cổ phiếu Stock Issue sẽ không còn liên kết trực tiếp với biến cố giải ngân Cash Disbursement.

Một giả định đơn giản hóa khác là ta không liên kết các biến cố cam kết với tài nguyên, tài khoản tiền mặt Cash Account, qua các quan hệ dành riêng Reservation. Nhắc lại các quan hệ dành riêng Reservation từ các chương trước: quan hệ Sale Order – Inventory trong qui trình bán hàng - thu tiền (Chương 8), quan hệ Purchase Order – Inventory trong qui trình mua hàng - chi tiền (Chương 9), và quan hệ Work Schedule – Labor Type trong qui trình nhân sự HR (Chương 10).

BÀI TẬP 11.3: THÊM CÁC BIẾN CỐ CAM KẾT VÀO MÔ HÌNH DỮ LIỆU TÀI CHÍNH CỦA PIPEFITTERS SUPPLY COMPANY

1. Hãy thêm hợp đồng vay Loan Agreement và hợp đồng mua bán cổ phiếu vào mô hình dữ liệu tài chính trong Hình 11.2 và các quan hệ thích hợp.

2. Hãy thêm lực lượng vào các quan hệ.

Hình 11.3 trình bày mô hình dữ liệu qui trình tài chính đầu đủ cho Pipefitters Supply Company. Quan hệ hoàn tất Fulfillment giữa các biến cố cam kết (hợp đồng vay Loan Agreement và hợp đồng mua bán cổ phiếu Stock Subscription) và thâu ngân Cash Receipt là một-một one-to-one vì phần mô tả cho biết một hợp đồng tài chính chỉ có một đợt thâu ngân. Quan hệ hoàn tất Fulfillment giữa một trong hai hợp đồng tài chính với giải ngân Cash Disbursement là một-nhiều one-to-many. Mỗi hợp đồng vay Loan Agreement sẽ có nhiều đợt giải ngân Cash Disbursement để trả nợ, và mỗi đợt giải ngân Cash Disbursement để trả nợ chỉ liên quan đến một hợp đồng vay Loan Agreement. Lập luận tương tự cũng áp dụng giữa hợp đồng mua bán cổ phiếu Stock Subscription và các đợt giải ngân Cash Disbursement để chia cổ tức. Cũng vậy, quan hệ tham gia Participation giữa các biến cố cam kết và tác nhân (tác nhân nội Internal lẫn tác nhân ngoại External) là một-nhiều one-to-many vì duy nhất một tác nhân nội Internal và một tác nhân ngoại External tham gia vào từng biến cố cam kết, và một tác nhân có thể tham gia nhiều biến cố cam kết theo thời gian.

Hình 11.3 Qui trình tài chính của Pipefitters Supply Company với tất cả các tài nguyên, biến cố, và tác nhân.

Để ý rằng ta đã thêm thực thể kiểu giải ngân Cash Disbursement Type đã giới thiệu ở Chương 10. Ta đã dùng lập luận tương tự để thêm thực thể kiểu thâu ngân Cash Receipt Type vào mô hình dữ liệu tài chính của Pipefitters, vì Pipefitters có ít nhất ba kiểu thâu ngân: thu tiền khách hàng, tiếp nhận khoản vay, và phát hành cổ phiếu. Sau cùng, ta đã lờ đi ba thực thể phân loại nhân viên (kiểu nhân viên Employee Type, khoản miễn thuế Exemption, và thuế thu tại nguồn Withholding) trong mô hình để làm sơ đồ dễ đọc hơn. Hãy hình dung mô hình dữ liệu sẽ rối rắm ra sao nếu có thêm ba bảng và các quan hệ … hay mô hình có đầy đủ bốn qui trình tác nghiệp của Pipefitters (tài chính, mua hàng chi tiền, nhân sự HR, và bán hàng thu tiền)!

Chủ Nhật, 18 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Hợp đồng mua bán cổ phiếu

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Hợp đồng mua bán cổ phiếu


Hợp đồng mua bán cổ phiếu cũng qui định các điều khoản thu tiền, gồm số cổ phiếu cần phát hành và giá cổ phiếu. Nó còn qui định kiểu cổ phiếu. Tuy nhiên, vì Pipefitters chỉ phát hành cổ phiếu thường, hợp đồng mua bán cổ phiếu không qui định thời điểm và khoản chia cổ tức trong tương lai. Nếu Pipefitters phát hành cổ phiếu ưu đãi, hợp đồng mua bán cổ phiếu còn chứa mức cổ tức hàng năm. Pipefitters không phát hành cổ phiếu ưu đãi vì công ty buộc phải chia cổ tức ngay khi có đủ lợi nhuận để chia.

Thứ Bảy, 17 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Hợp đồng vay

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Hợp đồng vay


Hợp đồng vay qui định các điều khoản tiếp nhận khoản vay. Hợp đồng vay còn qui định lãi suất, thời điểm và khoản tiền trong từng đợt giải ngân, cũng như sự phân bổ trong từng đợt giải ngân vào nợ gốc và lãi.

Thứ Sáu, 16 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Các biến cố cam kết

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Các biến cố cam kết


Ở Bài tập 11.3, bạn sẽ thêm không chỉ một, mà hai biến cố cam kết. Không giống các mô hình dữ liệu ở các qui trình tác nghiệp khác đã được mô hình trong tài liệu này, mỗi biến cố cam kết được nối với cả biến cố tăng kinh tế và biến cố giảm kinh tế.

Thứ Năm, 15 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Biến cố giải ngân Cash Disbursement

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Biến cố giải ngân Cash Disbursement


Biến cố này tương tự biến cố giải ngân Cash Disbursement đã được mô hình trong qui trình mua hàng - chi tiền ở Chương 9 và qui trình nhân sự HR ở Chương 10. Mô hình dữ liệu ở Hình 11.2 cho thấy một biến cố giải ngân Cash Disbursement sẽ phát sinh một dòng tiền ra Outflow để đến tác nhân ngoại External, cổ đông hay bên cho vay, và một nhân viên (tác nhân nội Internal) cũng tham gia quan hệ. Một lần nữa, bạn thấy các quan hệ tham gia điển hình.

Quan hệ dòng ra Outflow giữa giải ngân Cash Disbursement và tài khoản tiền mặt Cash Account cũng là một-nhiều one-to-many vì một tài khoản tiền mặt Cash Account có thể có nhiều dòng ra Outflow từ nhiều biến cố giải ngân Cash Disbursement và một biến cố giải ngân Cash Disbursement cụ thể chỉ đến từ duy nhất một tài khoản tiền mặt Cash Account.

Thứ Tư, 14 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Biến cố thâu ngân Cash Receipt

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Biến cố thâu ngân Cash Receipt


Biến cố thâu ngân Cash Receipt ở Hình 11.2 hầu như giống biến cố thâu ngân được mô hình ở qui trình bán hàng - thu tiền ở Chương 8. Một biến cố thâu ngân Cash Receipt sẽ phát sinh một dòng tiền vào Inflow từ một cổ đông hay bên cho vay (tác nhân ngoại External), và một nhân viên (tác nhân nội Internal) cũng tham gia quan hệ. Cả hai biến cố tham gia đều là một-nhiều one-to-many.

Hình 11.2 Tính đối ngẫu tài chính của Pipefitters Supply Company với tài nguyên và các tác nhân.

Tài nguyên, tài khoản tiền mặt Cash Account, được dùng vì ta theo dõi thông tin các tài khoản tiền mặt, gồm thời điểm dòng tiền vào ra. Lực lượng một-nhiều one-to-many cho biết một tài khoản tiền mặt Cash Account có thể có nhiều dòng vào Inflow từ nhiều biến cố thâu ngân Cash Receipt và một biến cố thâu ngân Cash Receipt cụ thể chỉ được gửi vào duy nhất một tài khoản tiền mặt Cash Account.

Thứ Ba, 13 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Mô hình dữ liệu tài chính cơ bản

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Mô hình dữ liệu tài chính cơ bản


Trong bài tập sau bạn sẽ thêm các tài nguyên và tác nhân vào từng biến cố trong quan hệ đối ngẫu. Các biến cố tăng kinh tế có quan hệ dòng vào Inflow một tài nguyên và các biến cố giảm kinh tế có quan hệ dòng ra Outflow một tài nguyên. Các biến cố thường tham gia với ít nhất một tác nhân nội trong quan hệ tham gia nội Internal, và với duy nhất một tác nhân ngoại trong quan hệ tham gia ngoại External. Mô hình dữ liệu kết quả sẽ tạo nên phần lõi của qui trình tài chính.

BÀI TẬP 11.2: THÊM CÁC TÀI NGUYÊN VÀ TÁC NHÂN VÀO QUAN HỆ ĐỐI NGẪU CỦA CÁC BIẾN CỐ TÀI CHÍNH

1. Hãy thêm vào mô hình của bạn tài nguyên và các tác nhân cho biến cố thâu ngân Cash Receipt và các quan hệ của chúng với thâu ngân Cash Receipt.

2. Hãy thêm lực lượng vào các quan hệ với thâu ngân Cash Receipt.

3. Hãy thêm vào mô hình của bạn tài nguyên và các tác nhân cho biến cố giải ngân Cash Disbursement và các quan hệ của chúng với giải ngân Cash Disbursement.

4. Hãy thêm lực lượng vào các quan hệ với giải ngân Cash Disbursement.

Thứ Hai, 12 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Tính đối ngẫu của các biến cố kinh tế

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Tính đối ngẫu của các biến cố kinh tế


BÀI TẬP 11.1: MÔ HÌNH QUAN HỆ ĐỐI NGẪU CHO QUI TRÌNH TÀI CHÍNH CỦA PIPEFITTERS SUPPLY COMPANY

1. Dựa trên trình bày về qui trình tài chính của Pipefitters, hãy vẽ các thực thể và quan hệ đối ngẫu. Nhắc lại từ Chương 10 là việc trả lương và trả tiền mua hàng cho nhà cung ứng đều là biến cố giải ngân. Chúng chỉ là hai kiểu giải ngân khác nhau.

2. Hãy nhận diện biến cố tăng kinh tế bằng dấu “+”.

3. Hãy nhận diện biến cố giảm kinh tế bằng dấu “-”.

4. Hãy thêm các lực lượng vào bản vẽ của bạn.

Hình 11.1 trình bày tính đối ngẫu của qui trình tài chính. Thâu ngân Cash Receipt là biến cố tăng kinh tế; và tiền nhận được từ bên cho vay trong biến cố tiếp nhận khoản vay, và tiền còn nhận được từ cổ đông trong biến cố phát hành cổ phiếu. Giải ngân Cash Disbursement là biến cố giảm kinh tế, có thể từ việc trả nợ cho bên cho vay hay chia cổ tức cho cổ đông. Thâu ngân hầu như luôn xảy ra trước giải ngân.

Hình 11.1 Tính đối ngẫu tài chính của Pipefitters Supply Company.

Cả hai kiểu biến cố thâu ngân tài chính Cash Receipt đều có thể tham gia vào nhiều (M) đợt giải ngân Cash Disbursements. Hơn nữa, vì một đợt giải ngân Cash Disbursement chỉ thuộc một khoản vay hay phát hành cổ phiếu (các biến cố thâu ngân), phía thâu ngân Cash Receipt của quan hệ là 1.

Thứ Bảy, 10 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Qui trình tác nghiệp tài chính của Pipefitters Supply Company

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Qui trình tác nghiệp tài chính của Pipefitters Supply Company


Pipefitters Supply Company thỉnh thoảng cần tài trợ từ bên ngoài. Nguồn tài trợ bên ngoài chủ yếu là từ ngân hàng. Khi công ty mượn tiền ngân hàng, một trong ba chủ sở hữu của Pipefitters sẽ đàm phán hợp đồng vay, nhưng giao trách nhiệm cho một kế toán viên kiểm tra các điều khoản ghi trong hợp đồng phải khớp với những điều đã đàm phán. Việc nhận khoản vay thường diễn ra trong vòng 10 ngày sau khi ký hợp đồng. Một kế toán viên chịu trách nhiệm đảm bảo khoản vay được gửi vào một tài khoản phi kinh doanh. Tiền được chuyển khỏi tài khoản phi kinh doanh khi cần. Từng hợp đồng vay sẽ đi kèm với một đợt nhận khoản vay. Pipefitters Supply Company luôn trả góp vì cách đó khiến các dòng tiền của họ dễ dự đoán hơn. Việc trả nợ (giải ngân) được tiến hành hàng tháng, gồm nợ gốc lẫn lãi. Mỗi đợt trả nợ chỉ cho một khoản vay, thậm chí khi Pipefitters có nhiều khoản vay với cùng một ngân hàng. Một kế toán viên chịu trách nhiệm trả nợ. Các đợt trả nợ được trả từ tài khoản kinh doanh.

Pipefitters ban đầu phát hành cổ phiếu cho các sáng lập viên, nhưng hiện nay họ phát hành cổ phiếu cho các nhà đầu tư bên ngoài như một phương án huy động vốn vay. Hợp đồng mua bán cổ phiếu (stock subscriptions) bao gồm số cổ phiếu với giá từng cổ phiếu được đàm phán trước thời điểm phát hành. Các điều khoản đã đàm phán, gồm số cổ phiếu và giá phát hành, là một phần thông tin trong hợp đồng mua bán cổ phiếu. Mọi hợp đồng mua bán cổ phiếu đều áp dụng cho cổ phiếu không ghi mệnh giá. Một hợp đồng mua bán cổ phiếu chỉ liên quan đến một cổ đông. Giống hợp đồng vay, một chủ sở hữu (mặc dù mọi cổ đông đều là chủ sở hữu doanh nghiệp, ta dùng thuật ngữ chủ sở hữu nhằm ám chỉ các cổ đông, thường là sáng lập viên công ty, đang điều hành công việc kinh doanh chứ không phải các nhà đầu tư bị động) sẽ đàm phán hợp đồng mua bán cổ phiếu rồi giao trách nhiệm cho một kế toán viên. Việc phát hành cổ phiếu (thâu ngân) thường trong vòng 30 ngày sau khi ký hợp đồng mua bán cổ phiếu. Một kế toán viên chịu trách nhiệm thâu ngân từ việc phát hành cổ phiếu, gửi tiền vào một tài khoản phi kinh doanh và chuyển vào một tài khoản kinh doanh khi cần. Cổ tức thường được chia hàng tháng từ tài khoản kinh doanh. Cổ tức trên từng cổ phiếu sẽ phụ thuộc lợi nhuận của công ty và khả năng thanh khoản (liquidity) hiện thời của họ. Cổ tức được một kế toán viên xử lý. Pipefitters chưa bao giờ mua lại cổ phiếu từ chủ sở hữu / nhà đầu tư và không có ý định đó.

Thứ Sáu, 9 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Giới thiệu

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Giới thiệu


Chương này trình bày qui trình tác nghiệp tài chính của hệ thông tin kế toán. Nhiều thành phần của qui trình này được minh họa qua việc dùng dữ liệu mẫu của Pipefitters Supply Company. Qui trình tài chính bao gồm các hoạt động liên quan đến việc tiếp nhận khoản vay và chứng khoán góp vốn cổ phần. Các hoạt động này bao gồm mọi thứ từ việc tiếp nhận nguồn tài chính từ bên ngoài cho đến việc trả nợ và chia cổ tức. Dù công ty là nhà sản xuất, buôn bán, hay dịch vụ thì đều có qui trình tài chính tương tự. Hoạt động tài chính nợ bắt đầu bằng hợp đồng vay giữa công ty và bên cho vay, chứa các điều khoản vay. Sau đó công ty phát hành nợ - trao hối phiếu (giấy hẹn trả nợ) rồi nhận các khoản vay. Sau đó khoản vay được trả kèm lãi theo một hay nhiều đợt giải ngân. Hoạt động huy động vốn cổ đông bắt đầu bằng hợp đồng mua bán cổ phiếu giữa công ty và cổ đông, chứa các điều khoản phát hành cổ phiếu. Sau đó công ty phát hành cổ phiếu đến cổ đông và công ty nhận tiền. Cổ tức thường được trả cho cổ đông trong suốt thời gian hoạt động của doanh nghiệp (chỉ những doanh nghiệp nào phát hành cổ phiếu).

Khác biệt trong các hoạt động tài chính thường do qui mô công ty, tốc độ tăng trưởng, và số vòng quay của tiền (từ thời điểm mua hàng đến khi thu được tiền từ khách hàng. Chẳng hạn, các doanh nghiệp nhỏ thường phát hành cổ phiếu đến các chủ sở hữu tích cực, chứ không đến nhà đầu tư bị động. Họ có thể tự quản lý việc phát hành cổ phiếu. Các doanh nghiệp lớn rất có thể dùng công ty môi giới để quản lý việc phát hành cổ phiếu, rao bán trên sàn chứng khoán chủ yếu cho các nhà đầu tư bị động.

Hãy tải cơ sở dữ liệu Ch11.accdb về máy của bạn. Cơ sở dữ liệu này chứa mọi đối tượng cần thiết để làm theo các minh họa trong chương.

Thứ Năm, 8 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 11 - Mục tiêu

James Perry, Richard Newmark


Chương 11
Qui trình tài chính


Mục tiêu


Qui trình tác nghiệp tài chính bao gồm các hoạt động huy động vốn vay và huy động vốn cổ đông. Các hoạt động huy động vốn vay bao gồm hợp đồng vay, tiếp nhận khoản vay (thâu ngân), và trả nợ (giải ngân). Các hoạt động huy động vốn cổ đông bao gồm hợp đồng mua bán cổ phiếu, phát hành cổ phiếu (thâu ngân), công bố việc chia cổ tức, chia cổ tức (giải ngân), và mua lại cổ phiếu (giải ngân). Thông tin về các biến cố này được ghi nhận để ra quyết định, báo cáo tài chính, và duy trì các ghi nhận về tài nguyên liên quan đến các biến cố này (tiền) cũng như các tác nhân liên quan (chủ sở hữu / nhà đầu tư, bên cho vay, và nhân viên). Ở chương này, bạn sẽ biết cách dùng Microsoft Access để thiết kế bảng, truy vấn, forms, và báo cáo để giúp bạn:


  • Tạo mô hình qui trình tác nghiệp tài chính.
  • Tạo cơ sở dữ liệu Access dựa trên mô hình qui trình tác nghiệp.
  • Tạo kiểm soát để áp đặt các qui tắc tác nghiệp.
  • Tạo và bảo trì các ghi nhận về chủ sở hữu / nhà đầu tư và bên cho vay.
  • Tạo và bảo trì các ghi nhận về tiền.
  • Ghi nhận các hợp đồng vay.
  • Ghi nhận các đợt thu tiền từ bên cho vay.
  • Ghi nhận việc trả nợ gốc và lãi cho bên cho vay.
  • Ghi nhận hợp đồng mua bán cổ phiếu.
  • Ghi nhận các đợt thu tiền từ chủ sở hữu / nhà đầu tư.
  • Ghi nhận việc công bố cổ tức.
  • Ghi nhận việc chia cổ tức cho chủ sở hữu / nhà đầu tư.
  • Phát sinh thông tin để báo cáo tài chính.
  • Phát sinh thông tin để dùng nội bộ.

Thứ Tư, 7 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 10 - Tổng kết

James Perry, Richard Newmark


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


Tổng kết


Chương này trình bày cách thiết kế và tạo tác qui trình tác nghiệp nhân sự. Trong giai đoạn thiết kế bạn đã nhận diện tính đối ngẫu của các biến cố kinh tế, thêm biến cố kế hoạch làm việc, nhận diện và liên kết các tài nguyên cùng tác nhân gắn liền với các biến cố. Kế hoạch làm việc không có trong cơ sở dữ liệu thực vì Pipefitters chưa tích hợp kế hoạch làm việc điện tử vào hệ thông tin kế toán AIS của họ. Hơn nữa, tài nguyên nhân sự đã dùng, kiểu lao động, cũng không có trong hệ thông tin kế toán AIS vì Pipefitters chưa theo dõi công việc cụ thể mà nhân viên của họ đang làm. Sau đó bạn đã thêm các khóa chính, khóa ngoại, và bảng quan hệ. Bạn cũng đã dùng giai đoạn thiết kế để áp đặt các qui tắc tác nghiệp và thêm các kiểm soát.

Trong quá trình thiết kế qui trình tác nghiệp nhân sự bạn đã thấy những tương tự và khác biệt giữa mô hình dữ liệu cho qui trình nhân sự HR và qui trình mua hàng - chi tiền. Có những tương tự vì bạn đã áp dụng phương pháp luận tài nguyên, biến cố và tác nhân để tạo cơ sở dữ liệu, đồng thời cả hai cơ sở dữ liệu đều có biến cố giải ngân. Sự khác biệt trong hai qui trình đã làm cho việc thiết kế cơ sở dữ liệu khó hơn. Chẳng hạn, việc xác định tài nguyên đã dùng hay tác nhân ngoại là khá thách thức. Tuy nhiên, bằng cách theo đúng các bước nhận diện biến cố, tài nguyên và tác nhân mà chúng gắn với đã giúp bạn đặt đúng câu hỏi.

Sau khi thiết kế cơ sở dữ liệu, bạn đã tạo tác nó trong Access bằng việc tạo các bảng và quan hệ giữa chúng. Một trong những thách thức nhất ở phần thiết kế cơ sở dữ liệu này là liên kết các bảng và quan hệ từ các qui trình tác nghiệp khác. Bạn đã thêm các bảng mới, sửa các thuộc tính trường, và thậm chí sửa các thuộc tính quan hệ.

Một khi tạo xong bảng và quan hệ, bạn đã trải nghiệm việc thực hiện các tính toán phức tạp. Đặc biệt khó là tính thuế liên bang thu tại nguồn federal withholding tax FWT. Dữ liệu để tính đến từ nhiều bảng và bạn thậm chí đã dùng kết quả truy vấn để xác định khóa trong bảng tra cứu.

Bạn đã tạo các truy vấn từ dữ liệu của qui trình nhân sự HR để phát sinh các báo cáo tài chính cho bên ngoài. Cuối cùng, bạn đã nỗ lực đáng kể trong việc tạo các báo cáo nội bộ cung cấp thông tin hữu ích.

Thứ Ba, 6 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 10 - Báo cáo thời gian đã làm việc

James Perry, Richard Newmark


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


Báo cáo thời gian đã làm việc


Trong hai bài tập kế bạn sẽ tạo báo cáo hiển thị tổng số giờ làm việc trong giờ và ngoài giờ, lương trong giờ, lương ngoài giờ, và lương trước thuế gross pay, tất cả theo phòng ban. Kiểu báo cáo này có thể giúp quản lý viên quan tâm đến những phòng ban có thể có vấn đề nhân sự hay kế hoạch làm việc. Bạn sẽ tạo báo cáo này theo hai bước. Đầu tiên, bạn sẽ thiết kế một truy vấn liên kết ba bảng: sử dụng lao động Labor Acquisition, nhân viên Employee, và kiểu nhân viên Employee Type. Ở bước hai, bạn sẽ tạo báo cáo dựa trên truy vấn này.

BÀI TẬP 10.35: TẠO BÁO CÁO THỜI GIAN ĐÃ LÀM VIỆC

Hãy tạo truy vấn cho báo cáo.

1. Tạo một bản sao của qryGrossPay (trong phần Unassigned Objects thc Navigation Pane) và đặt tên là qryTimeWorked. Mở qryTimeWorked ở góc nhìn Design. Dùng Show Table trong nhóm Query Setup để thêm tblEmployeeType vào Table Pane.

2. Xóa các cột trường sau trong lưới QBE: EmployeeID, TimeCardID, EmployeePayRate, và GrossLessExempt. Xóa danh sách trường tblExemption khỏi Table Pane, do đó cũng xóa ExemptionAmount khỏi lưới QBE.

3. Kéo EmployeeTypeName từ danh sách trường tblEmployeeType vào cột đầu tiên trong lưới QBE. Lưu rồi thi hành truy vấn từ 1/1/2012 đến 3/31/2012. Bạn cần có 143 bản ghi. Đóng truy vấn.

Hãy tạo báo cáo thời gian đã làm việc và lương trước thuế gross pay theo phòng ban.

4. Kích qryTimeWorked trong phần Unassigned Objects thuộc Navigation Pane. Kích Create tab rồi kích Report Wizard trong nhóm Reports. Kích >> để chọn tất cả các trường khả dụng. Làm nổi bật LAPayPeriodEnded trong khung Selected Fields rồi kích nút < để loại nó. Kích Next.

5. Kích nút > để nhóm báo cáo theo EmployeeTypeName. Kích Next.

6. Kích nút Summary Options. Kích ô Sum cho tất cả năm trường đã kê; chọn nút radio Summary Only. Kích OK. Kích Next.

7. Kích nút radio Stepped Layout. Kích Next.

8. Đặt tên báo cáo là rptTimeWorked rồi kích Finish để xem báo cáo ở góc nhìn Print Preview. Nhập 1/1/2012 cho thời điểm đầu kỳ và 3/31/2012 cho thời điểm cuối kỳ. Kích Close Print Preview ở bên phải của dải lệnh Print Preview để trở về góc nhìn Design, góc nhìn này cần giống báo cáo ở Hình 10.39.

Hình 10.39 Góc nhìn Design và góc nhìn Print Preview của rptTimeWorked được tạo bằng Report Wizard.

BÀI TẬP 10.36: CẢI THIỆN BÁO CÁO THỜI GIAN ĐÃ LÀM VIỆC

Hãy tham khảo các Hình 10.40 đến 10.41 để làm bài tập này. Hơn nữa, bạn sẽ dùng các đối tượng từ rptEmployeePayRate trong báo cáo này để tiết kiệm thời gian và công sức.

Hình 10.40  rptTimeWorked cải tiến ở góc nhìn Design.

Hình 10.41 rptTimeWorked cải tiến ở góc nhìn Print Preview.

1. Kích và kéo đáy của Report Header xuống dưới để tăng kích thước của nó. Kích tiêu đề trong Report Header rồi xóa nó (nhấn phím Delete). Mở rptEmployeePayRate ở góc nhìn Design. Kích vùng trống ngay bên dưới ô For Internal Use Only rồi kéo con trỏ qua tất cả bốn ô tiêu đề (không gồm số trang) để chọn chúng. Nhấn Ctrl+C để sao chép các đối tượng này. Kích rptTimeWorked để trở về rptTimeWorked. Kích phần Report Header rồi nhấn Ctrl+V để dán. Với tất cả bốn ô tiêu đề vẫn đang được chọn, dùng phím mũi tên xuống để tạo khoảng không trên đỉnh của Report Header cho thông tin thời điểm và đường phân cách (xem Hình 10.40).

2. Sửa tiêu đề của báo cáo thành Time Worked & Gross Pay. Kích vùng trống trong Report Header để khử việc chọn tiêu đề. Để ý rằng bây giờ nó viết là Time Worked _Gross Pay. Dấu & không được hiển thị vì đây là ký tự đặc biệt được dùng để nối các biểu thức (chẳng hạn khi bạn tạo biểu thức CityStateZip). Để sửa, kích ô tiêu đề để chọn nó; kích biểu tượng lỗi (hình thoi màu vàng với dấu chấm than trên nó) kế ô tiêu đề; kích Change Caption rồi chọn Time Worked & Gross Pay. Sau khi đã điều chỉnh ô tiêu đề, chép và dán ô tiêu đề Time Worked & Gross Pay rồi dời nó lên góc trái trên của Report Header. Sửa tiêu đề thành For the Period between. Định cỡ lại ô để loại khoảng trống thừa. Tạo một bản sao của tiêu đề mới; dời và định cỡ lại nó theo Hình 10.40 rồi sửa tiêu đề thành and.

3. Thêm các thành phần điều khiển tham biến thời điểm. Kích Text Box trong nhóm Controls rồi kích vào Report Header nơi bạn muốn đặt thành phần điều khiển. Gõ tham biến thời điểm đầu [Beginning of Period Date] vào thành phần điều khiển. Xóa nhãn; sửa font cho khớp với tiêu đề bằng cách dùng các công cụ Font trên dải lệnh Format. Dùng Fomat tab trên Property Sheet để sửa Back Style và Border Style thành Transparent. Lờ đi biểu tượng lỗi. Tạo một bản sao tham biến thời điểm đầu. Dời nó đến đúng vị trí rồi sửa nội dung thành [End of Period Date]. Dùng góc nhìn Layout để định cỡ các thành phần điều khiển tham biến. Khi bạn chuyển từ góc nhìn Design sang một góc nhìn khác Access sẽ chạy lại truy vấn đằng sau báo cáo. Vì thế, bạn sẽ được yêu cầu nhập lại các tham biến thời điểm.

4. Sao chép đường thẳng từ Page Header của rptEmployeePayRate rồi dán vào Report Header của rptTimeWorked. Đảm bảo kích vào vùng Report Header trước khi dán. Sau khi định cỡ lại đường thẳng, hãy tạo một bản sao của nó để đặt ở đáy Report Header.

5. Xóa nhãn EmployeeTypeName trong Page Header. Kích và kéo ô chọn qua năm nhãn còn lại để chọn chúng. Kích và kéo chúng vào Report Header (xem Hình 10.40). Với năm nhãn được chọn, mở Property Sheet. Trên Format tab, đặt Back Style là Normal và Border Style là Transparent. Chọn Back ColorFore (font) Color phù hợp. Kích và kéo phần trên của EmployeeTypeName Header lên trên để loại Page Header khỏi báo cáo.

6. Chọn các thành phần điều khiển trong phần Detail rồi xóa chúng. Kích và kéo phần trên của thanh EmployeeTypeName Footer lên trên để loại phần Detail khỏi báo cáo.

7. Xóa thành phần điều khiển Summary trên đỉnh của EmployeeTypeName Footer rồi xóa nhãn Sum bên dưới nó. Chọn năm tổng gộp trong EmployeeTypeName Footer rồi kéo chúng vào EmployeeTypeName Header ngay dưới các nhãn của chúng trong Report Header.

8. Loại bỏ EmployeeTypeName Footer. Xóa các thành phần điều khiển trong Page Footer rồi loại Page Footer.

9. Định dạng tất cả các tổng. Mở Property Sheet. Ở góc nhìn Layout bạn cần chọn nó từ shortcut menu, là menu bạn kích phải trong ứng dụng bất kỳ. Dùng Standard Format và 0 Decimal Places cho tổng số giờ đã làm việc. Dùng Currency Format và 2 Decimal Places cho các tổng lương.

10. Dùng góc nhìn Layout để điều chỉnh các nhãn và thành phần điều khiển gộp. Tại sao bạn phải nhập lại các tham biến thời điểm?

11. Chuyển giữa góc nhìn Layout và góc nhìn Design khi cần. Lưu báo cáo sau khi hoàn tất. Báo cáo giờ đây cần giống báo cáo hoàn chỉnh ở Hình 10.41. Đóng báo cáo.

Báo cáo này minh họa cách bố trí dữ liệu nhân sự để nhận được một số thông tin lý thú. Bằng việc xem xét tỉ lệ ngoài giờ so với trong giờ trong báo cáo này, quản lý viên tại Pipefitters Supply Company có thể nhận diện loại nhân viên nào chưa được tuyển dụng hợp lý hay có vấn đề về kế hoạch làm việc.

Thứ Hai, 5 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 10 - Báo cáo thông tin nhân viên

James Perry, Richard Newmark


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


Báo cáo thông tin nhân viên


Bạn có thể tạo nhiều báo cáo từ thông tin trong tblEmployee. Báo cáo ví dụ mà bạn sẽ tạo trong bài tập kế minh họa một khả năng. Báo cáo lương nhân viên Employee Pay Rate trong bài tập này sẽ liệt kê tên nhân viên, thời điểm bắt đầu, và lương một giờ. Báo cáo sẽ nhóm các bản ghi nhân viên theo bộ phận và hiển thị lương một giờ trung bình của từng bộ phận.

BÀI TẬP 10.33: TẠO BÁO CÁO LƯƠNG NHÂN VIÊN EMPLOYEE PAY RATE

1. Tạo truy vấn cho báo cáo. Kích Create tab rồi kích Query Design trong nhóm Queries. Thêm tblEmployee tblEmployeeType vào Table Pane. Kích Queries tab, thêm qryEmployeeName vào Table Pane rồi kích Close.

2. Thêm các trường sau vào lưới QBE theo thứ tự đã liệt kê:

  • EmployeeTypeID EmployeeTypeName từ danh sách trường tblEmployeeType. Đặt thuộc tính Sort của EmployeeTypeID là Ascending.
  • EmployeeID từ danh sách trường tblEmployee. Đặt thuộc tính Sort là Ascending.
  • EmployeeName từ danh sách trường qryEmployeeName.
  • EmployeeStartDate EmployeePayRate từ danh sách trường tblEmployee.


3. Lưu truy vấn là qryEmployeePayRateRptInfo. Đóng truy vấn.

4. Kích qryEmployeePayRateRptInfo trong phần Unassigned Objects thuộc Navigation Pane. Kích Create tab rồi kích Report Wizard trong nhóm Reports. Kích >> để chọn tất cả các trường. Kích Next. Kích Next lần nữa để chấp nhận góc nhìn dữ liệu mặc định (theo tblEmployeeType).

5. Kích Next để đến hộp thoại Sort Order. Hãy sắp các bản ghi chi tiết theo EmployeeID. Kích nút Summary Options. Kích ô Avg và nút radio Detail and Summary nếu nó chưa được chọn. Kích OK để lưu các tùy chọn tổng kết. Kích Next.

6. Kích nút radio Outline Layout. Kích Next và đặt tên báo cáo là rptEmployeePayRate rồi kích Finish để mở báo cáo ở góc nhìn Print Preview. Kích Close Print Preview ở bên phải thuộc dải lệnh Print Preview để trở về góc nhìn Design (xem Hình 10.36).

Hình 10.36 rptEmployeePayRate được tạo bằng Report Wizard ở góc nhìn Design và góc nhìn Print Preview.

BÀI TẬP 10.34: CẢI THIỆN BÁO CÁO LƯƠNG NHÂN VIÊN

Hãy tham khảo các Hình 10.37 và 10.38 khi làm bài tập này.

Hình 10.37 rptEmployeePayRate cải tiến ở góc nhìn Design.

Hình 10.38 Trang 1 của rptEmployeePayRate cải tiến ở góc nhìn Print Preview.

1. Kích Group and Sort trong nhóm Grouping & Totals trên dải lệnh Design. Group on EmployeeTypeID cần được chọn. Kích More. Kích mũi tên bên cạnh do not keep group together on one page rồi chọn keep whole group together on one page. Kích dấu X ở góc phải trên của khung Group, Sort, and Total để đóng nó.

2. Kích và kéo phần trên của thanh EmployeeTypeID Header xuống dưới để tạo vùng đầu đề trang Page Header. Kéo tiêu đề trong Report Header vào phần Page Header. Sửa tiêu đề theo Hình 10.37. Hãy tạo các bản sao cho từng tiêu đề trong Page Header. Hãy thử nghiệm với fonts và kích cỡ font. Sửa màu nền trong Page Header.

3. Loại bỏ Report Header bằng cách kích và kéo phần trên của thanh Page Header lên trên. Kích rồi xóa các đối tượng trong Page Footer. Kích và kéo thanh Report Footer lên trên để loại bỏ phần Page Footer. Loại bỏ các đối tượng trong phần EmployeeTypeID Footer và chỉnh độ cao của phần này bằng 1/4 inch.

4. Giờ đây bạn có bốn phần trên báo cáo: Page Header, EmployeeTypeID Header, Detail, và EmployeeTypeID Footer. Bạn có thể kích và kéo phần trên của thanh bên dưới mỗi phần để tang kích cỡ của mỗi phần. Cách này cho bạn không gian để chứa tất cả các thành phần điều khiển mà báo cáo yêu cầu. Hãy dời và định cỡ lại các thành phần điều khiển theo Hình 10.37. Nếu không thể kéo một thành phần điều khiển từ phần  này sang phần kia, bạn có thể cắt dán. Trước khi dán thành phần điều khiển, hãy kích vào vùng trống trong phần mà bạn muốn dán.

5. Hãy thêm số trang vào vùng Page Header. Kích phần Page Header để biến nó thành phần đang được quan tâm. Kích Page Numbers trong nhóm Header/Footer. Trong hộp thoại Page Numbers, chọn Page N Format, vị trí đầu trang Top of Page Position, và canh phải Right Alignment; kích OK. Dời và định cỡ lại thành phần điều khiển Page. Chuyển sang góc nhìn Layout để xem số trang trông ra sao khi chạy báo cáo.

6. Hãy dời và định cỡ lại các đối tượng trong EmployeeTypeID Header. Đặt tên lại nhãn Average Pay Rate. Dời nhãn và thành phần điều khiển đó vào trong EmployeeTypeID Header. Mở Property Sheet để xóa đường biên bao quanh thành phần điều khiển Average Pay Rate.

7. Thêm các đường thẳng. Kích Line trong nhóm Controls trên dải lệnh Design. Kích và kéo từ bên này form sang bên kia form. Việc vẽ đường thẳng bằng chuột hay bàn di touch pad có thể phải chú ý nhiều. Khi bạn đặt con trỏ sang bên kia báo cáo, hãy di chuột lên xuống cho đến khi không còn thấy đường thẳng. Điều này cho biết nó đã ngay. Hãy đặt đường thẳng có độ dày 2 points. Kích đường thẳng để chọn nó; kích Format tab; kích Shape Outline menu trong nhóm Control Formatting; di con trỏ đến Line Thickness rồi để con trỏ lơ lửng trên từng lựa chọn cho đến khi thấy xuất hiện độ dày – độ dày 2 points là lựa chọn thứ ba tính từ trên. Việc sao chép, di dời, và định cỡ lại đường thẳng thì dễ hơn vẽ một đường mới.

8. Hãy chuyển giữa góc nhìn Layout và góc nhìn Design khi cần. Báo cáo cuối cùng của bạn cần giống Hình 10.38. Lưu báo cáo sau khi hoàn tất. Đóng báo cáo.

Thứ Năm, 1 tháng 12, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 10 - Các hạng mục trong báo cáo thu nhập

James Perry, Richard Newmark


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


Các hạng mục trong báo cáo thu nhập


Các hạng mục trong báo cáo thu nhập income statement liên quan đến qui trình nhân sự HR của Pipefitters Supply Company là khoản chi lương và thuế lương. Khoản chi lương có thể được báo cáo dưới dạng gộp hay từng thành phần. Hai thành phần thuế lương thông dụng nhất là khoản chi thuế an sinh xã hội FICA Tax Expense và khoản chi thuế chăm sóc y tế Medicare Tax Expense. Bạn chỉ cần một truy vấn nữa để tính các hạng mục trong báo cáo thu nhập income statement liên quan đến nhân sự của Pipefitters.

BÀI TẬP 10.32: TẠO TRUY VẤN KHOẢN CHI LƯƠNG

1. Kích Create tab rồi kích Query Design trong nhóm Queries. Kích Queries tab. Thêm qryWagesPayable3-NetPay vào Table Pane rồi kích Close. Thêm GrossPay, FICA, và Medicare vào lưới QBE.

2. Kích Totals trong nhóm Show/Hide. Sửa thuộc tính Total cho từng trường thành Sum.

3. Mở Property Sheet. Thêm các phụ đề Caption ở Hình 10.35. Đặt Format là Currency và Decimal Places là 2 cho tất cả ba trường. Lưu truy vấn là qryPayrollExpenses. Thi hành truy vấn với 3/31/2012. Bạn cần có các tổng giống Hình 10.35. Đóng truy vấn.

Hình 10.35 Tập động dynaset qryPayrollExpenses với 3/31/2012.

Thứ Tư, 30 tháng 11, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 10 - Thuế an sinh xã hội phải trả FICA Payable và thuế chăm sóc y tế phải trả Medicare Payable

James Perry, Richard Newmark


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


Thuế an sinh xã hội phải trả FICA Payable và thuế chăm sóc y tế phải trả Medicare Payable


Nghĩa vụ đóng thuế an sinh xã hội FICA tax và thuế chăm sóc y tế Medicare được chia đều cho nhà tuyển dụng và nhân viên (ngoại trừ năm 2011 phần thuế an sinh xã hội FICA tax của nhân viên là 4.2% thay vì 6.2%). Pipefitters Supply Company và mọi nhà tuyển dụng đều phải đóng 6.2% thuế an sinh xã hội FICA tax và 1.45% thuế chăm sóc y tế Medicare trên thu nhập trước thuế của nhân viên (bỏ qua khoản FICA trần). Vì thế, thuế an sinh xã hội phải trả FICA Payablee và thuế chăm sóc y tế phải trả Medicare Payable sẽ gấp đôi khoản giữ lại. Vì bạn đã hoàn thành mọi phần việc nhân sự khó cho hệ thông tin kế toán AIS của Pipefitters, phần còn lại chỉ là một truy vấn tính thuế an sinh xã hội phải trả FICA Payable và thuế chăm sóc y tế phải trả Medicare Payable.

BÀI TẬP 10.31: TẠO TRUY VẤN TÍNH FICA VÀ MEDICARE PAYABLE

1. Tạo một truy vấn mới dùng Query Design trên dải lệnh Create. Thêm qryWagesPayable4-SumOfNetPay vào Table Pane.

2. Tạo biểu thức FICA Payable cho ô Field đầu tiên (nhấn Shift+F2 để mở cửa sổ Zoom): FICAPayable: [SumOfFICA] * 2. Mở Property Sheet. Đặt Format là Currency và đặt Caption là FICA Payable.

3. Thêm biểu thức Medicare Payable vào ô Field thứ hai: MedicarePayable: [SumOfMedicare] * 2. Mở Property Sheet. Đặt Format là Currency và đặt Caption là Medicare Payable.

4. Lưu truy vấn là qryFICAandMedicarePayable. Thi hành truy vấn với 3/31/2012. Hãy so kết quả của bạn với Hình 10.34.

Hình 10.34 Tập động dynaset qryFICAandMedicarePayable với 3/31/2012.

Thứ Ba, 29 tháng 11, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 10 - Lương phải trả Wages Payable và thuế liên bang thu tại nguồn phải trả FWT Payable

James Perry, Richard Newmark


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


Lương phải trả Wages Payable và thuế liên bang thu tại nguồn phải trả FWT Payable


Lương phải trả Wages Payable, giống như nợ phải trả Accounts Payable, dựa trên sự mất cân đối giữa các biến cố đối ngẫu. Đó là tổng lương sau thuế net pay cho tất cả các đợt sử dụng lao động trừ tất cả các đợt giải ngân cho việc sử dụng lao động. Lương phải trả Wages Payable còn liên quan đến các khoản phải trả về thuế liên bang thu tại nguồn federal withholding tax FWT, thuế an sinh xã hội FICA, và thuế chăm sóc y tế Medicare. Trong quá trình tính lương phải trả Wages Payable, bạn cũng sẽ tính thuế liên bang thu tại nguồn phải trả FWT Payable, bằng tổng các khoản FWT khấu trừ từ lương nhân viên. Tuy nhiên, vì FICA và Medicare còn có đóng góp của nhà tuyển dụng, bạn sẽ tính thuế an sinh xã hội phải trả FICA Payable và thuế chăm sóc y tế phải trả Medicare Payable trong các tập truy vấn riêng.

BÀI TẬP 10.30: TẠO CÁC TRUY VẤN LƯƠNG PHẢI TRẢ WAGES PAYABLE VÀ THUẾ LIÊN BANG THU TẠI NGUỒN PHẢI TRẢ FWT PAYABLE

Các tính toán lương phải trả Wages Payable và thuế liên bang thu tại nguồn phải trả FWT Payable cần sáu truy vấn.

Ba truy vấn đầu giống qryGrossPay, qryFWTax, và qryNetPay, ngoại trừ ràng buộc thời điểm Between được thay bằng ràng buộc thời điểm nhỏ hơn hay bằng.

1. Tạo một bản sao của qryGrossPay và đặt tên là qryWagesPayable1-GrossPay. Mở qryWagesPayable1-GrossPay ở góc nhìn Design (trong phần Unassigned Objects thuộc Navigation Pane). Sửa tiêu chí cho LAPayPeriodEnded thành <= [End of Period Date]. Thi hành truy vấn và thử dùng thời điểm cuối kỳ là 3/31/2012. Bạn cần có 143 bản ghi trong tập động dynaset. Lưu rồi đóng truy vấn.

2. Tạo một bản sao của qryFWTax, đặt tên là qryWagesPayable2-FWT, rồi mở qryWagesPayable2-FWT ở góc nhìn Design. Kích Show Table trong nhóm Query Setup, kích Queries tab, rồi thêm qryWagesPayable1-GrossPay vào Table Pane. Với tất cả các cột trường trên lưới QBE có qryGrossPay là thuộc tính Table, sửa thuộc tính Table thành qryWagesPayable1-GrossPay. Xóa qryGrossPay khỏi Table Pane. Thi hành truy vấn và thử dùng thời điểm cuối là 3/31/2012. Bạn cần có 143 bản ghi trong tập động dynaset. Lưu rồi đóng truy vấn.

3. Tạo một bản sao của qryNetPay; đặt tên là qryWagesPayable3-NetPay rồi mở qryWagesPayable3-NetPay ở góc nhìn Design. Kích Show Table trong nhóm Query Setup; kích Queries tab; rồi thêm qryWagesPayable1-GrossPayqryWagesPayable2-FWT vào Table Pane. Liên kết qryWagesPayable1-GrossPay với qryWagesPayable2-FWT bằng cách kích và kéo TimeCardID từ danh sách trường này đến danh sách trường kia. Hãy thay thuộc tính Table thích hợp. Xóa qryGrossPayqryFWTax khỏi Table Pane. Thi hành truy vấn và thử dùng thời điểm cuối là 3/31/2012. Bạn cần có 143 bản ghi trong tập động dynaset. Lưu rồi đóng truy vấn.

Hãy tính tổng FWT, FICA, Medicare, và NetPay. Nếu ta giả sử rằng Pipefitters chưa chuyển bất kỳ khoản thuế lương nào đến chính phủ liên bang, tổng FWT cho chu kỳ đó sẽ bằng khoản FWT Payable trên bảng cân đối balance sheet.

4. Kích Create tab rồi kích Query Design trong nhóm Queries. Kích Queries tab; kích kép qryWagesPayable3-NetPay rồi kích nút Close. Thêm FWT, FICA, Medicare, và NetPay vào lưới QBE. Kích Totals trong nhóm Show/Hide. Sửa thuộc tính Total cho từng trường thành Sum. Mở Property Sheet. Thêm các phụ đề Caption trong Hình 10.32. Đặt Format và Decimal Places cho FICA và Medicare là Currency2. Lưu truy vấn là qryWagesPayable4-SumOfNetPay. Thi hành truy vấn với 3/31/2012. Bạn cần có các tổng như Hình 10.32.

Hình 10.32 Tập động dynaset cho các truy vấn FWT Payable và Wages Payable.

Hãy tạo một truy vấn tính tổng tất cả các đợt giải ngân trả lương trước hay vào thời điểm cuối. Ở Chương 9, ta đã liên kết tblCashDisbursement với tblPurchase trong truy vấn để liên kết các đợt giải ngân với các đợt mua hàng. Với việc thêm bảng kiểu giải ngân Cash Disbursement Type vào cơ sở dữ liệu, bạn có thể dùng CDTypeID để chọn các kiểu giải ngân cụ thể.

5. Tạo một truy vấn mới. Thêm tblCashDisbursement vào Table Pane. Thêm CashDisbursementAmount, CashDisbursementDate, và CDTypeID vào lưới QBE. Kích Totals trong nhóm Show/Hide. Sửa thuộc tính Total cho CashDisbursementAmount thành Sum.  Sửa thuộc tính Total cho CashDisbursementDate thành Where, và đặt Criteria của nó là <= [End of Period Date]. Sửa thuộc tính Total cho CDTypeID thành Where, và đặt Criteria của nó là 02. Bạn có thể kiểm chứng CDTypeID bằng cách mở tblCashDisbursementType ở góc nhìn Datasheet.

6. Mở Property Sheet. Nhập CD Payroll cho thuộc tính Caption của CashDisbursementAmount. Lưu truy vấn là qryWagesPayable5-SumOfCDPayroll. Thi hành truy vấn với 3/31/2012. Tập động dynaset ở Hình 10.32. Đóng truy vấn.

Hãy tạo một truy vấn để lấy tổng lương sau thuế net pay trừ tổng các đợt giải ngân. Bạn sẽ dùng hàm Nz như đã dùng để tính các hạng mục trong báo cáo tài chính như nợ phải thu Accounts Receivable và nợ phải trả Accounts Payable.

7. Tạo một truy vấn mới. Thêm qryWagesPayable4-SumOfNetPayqryWagesPayable5-SumOfCDPAyroll vào Table Pane. Thêm SumOfNetPay từ qryWagesPayable4-SumOfNetPay vào lưới QBE. Tạo biểu thức rỗng-thành-0 cho tổng các đợt giải ngân ở ô Field thứ hai trên lưới QBE. Nhấn Shift+F2 để mở cửa sổ Zoom. Gõ CDPayroll: Nz([SumOfCashDisbursementAmount],0) rồi kích OK.

8. Kích ô Field trống kế, mở cửa sổ Zoom, rồi nhập biểu thức lương phải trả Wages Payable: [SumOfNetPay]-[CDPayroll]. Mở Property Sheet rồi thêm các phụ đề Caption ở Hình 10.32. Lưu truy vấn là qryWagesPayable6-WagesPayable. Thi hành truy vấn dùng 3/31/2012 cho thời điểm cuối kỳ. Kết quả ở Hình 10.32. Thi hành lại truy vấn dùng 1/31/2012 cho thời điểm cuối kỳ. Hàm Nz sẽ trả về giá trị 0, nhờ đó lương phải trả Wages Payable có thể tính được. Đóng truy vấn.

THỬ NGHIỆM

Để ý rằng CDPayroll trong qryWagesPayable6-WagesPayable chưa có định dạng tiền tệ. Thông thường bạn có thể chỉnh sửa bằng cách mở Property Sheet rồi chọn Currency là Format. Tuy nhiên, thỉnh thoảng Format combo box trống không và không có thuộc tính Decimal Places! Không may là thỉnh thoảng Access diễn giải sai hay không thể xác định kiểu dữ liệu của một biểu thức, như trường hợp của biểu thức CDPayroll. May là bạn có thể thêm hàm chuyển kiểu vào biểu thức. Hàm CCur sẽ chuyển biểu thức sang kiểu tiền tệ. Dạng của biểu thức là CCur(expr), trong đó expr là biểu thức bạn muốn chuyển sang kiểu tiền tệ. Hãy mở qryWagesPayable6-WagesPayable ở góc nhìn Design. Thêm hàm CCur vào CDPayroll: CCur(Nz([SumOfCashDisbursementAmount],0)). Thi hành lại truy vấn với 3/31/2012. So kết quả của bạn (xem Hình 10.33) với cùng truy vấn ở Hình 10.32 mà không có hàm CCur.

Hình 10.33 qryWagesPayable6-WagesPayable cho 3/31/2012 bằng cách dùng hàm CCur cho biểu thức CDPayroll.

Thứ Hai, 28 tháng 11, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 10 - Dẫn xuất thông tin báo cáo tài chính

James Perry, Richard Newmark


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


Dẫn xuất thông tin báo cáo tài chính


Hoạt động nhân sự sẽ tạo các mục tài chính trên bảng cân đối balance sheet cũng như báo cáo thu nhập income statement. Đầu tiên bạn sẽ dẫn xuất thông tin cho bảng cân đối balance sheet. Các mục trên bảng cân đối balance sheet mà bạn có thể phát sinh từ phần nhân sự thuộc hệ thông tin kế toán AIS của Pipefitters Supply Company là các khoản nợ hiện thời: lương phải trả Wages Payable và thuế lương phải trả Payroll Taxes Payable. Ta có thể báo cáo thuế lương phải trả Payroll Taxes Payable dưới dạng gộp hay từng thành phần đơn lẻ - thuế liên bang thu tại nguồn phải trả FWT Payable, thuế an sinh xã hội phải trả FICA Payable, và thuế chăm sóc y tế phải trả Medicare Payable.

Sau khi phát sinh các mục trên bảng cân đối balance sheet, bạn sẽ sửa các truy vấn bảng cân đối balance sheet để phát sinh khoản chi lương Wages Expense và khoản chi thuế lương Payroll Tax Expense (từng thành phần đơn lẻ hay dưới dạng gộp). Ta tiếp tục dùng cùng qui ước đặt tên như ở các Chương 8 và 9 cho các truy vấn báo cáo tài chính, thường cần nhiều truy vấn để đạt kết quả cuối cùng.

Thứ Sáu, 25 tháng 11, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 10 - Form nhập liệu giải ngân cho các chi phiếu trả lương

James Perry, Richard Newmark


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


Form nhập liệu giải ngân cho các chi phiếu trả lương


Pipefitters Supply Company trả lương nhân viên vào ngày thứ hai sau thời điểm trả lương. Nếu ngày này rơi vào cuối tuần hay ngày nghỉ, các chi phiếu trả lương sẽ được lưu vào nơi an toàn của công ty và được giao vào ngày làm việc kế. Form nhập liệu trả lương sẽ trông giống form nhập liệu giải ngân mà bạn đã tạo ở Chương 9 để chi trả cho nhà cung ứng (xem Hình 9.50). Khác biệt chính là phần trên của form sẽ chứa thông tin trả lương nhân viên thay vì thông tin nhập kho và thông tin liên hệ nhà cung ứng. Trong bài tập kế bạn sẽ tạo một truy vấn chứa các trường trả lương nhân viên để điền thông tin vào phần trên của form.

BÀI TẬP 10.26: TẠO TRUY VẤN THÔNG TIN TRẢ LƯƠNG  NHÂN VIÊN

1. Tạo một truy vấn mới bằng công cụ Query Design. Thêm qryEmployeeName, qryGrossPay, và qryNetPay vào Table Pane. Liên kết qryEmployeeName với qryGrossPay bằng cách kéo EmployeeID từ danh sách trường này đến danh sách trường kia. Liên kết qryNetPay với qryGrossPay bằng cách kéo TimeCardID từ danh sách trường này đến danh sách trường kia.

2. Thêm các trường liệt kê ở Hình 10.30 vào Criteria Pane. Trong khi điền vào Criteria Pane hãy dùng thanh trượt để hiển thị các cột trống.

Hình 10.30 Các trường cho qryFormCDPayrollRecordSourceData.

3. Sắp TimeCardID theo thứ tự tăng Ascending.

4. Lưu truy vấn với tên qryFormCDPayrollRecordSourceData.

5. Thi hành truy vấn cho tháng 01/2012. Đóng truy vấn.

Form nhập chi phiếu trả lương sẽ dùng thiết kế form/subform. Phần trên của form sẽ chứa thông tin trả lương từ qryFormCDPayrollRecordSourceData. Không thể sửa trường nào ở đây vì chúng chỉ dùng tham khảo. Subform chứa tất cả các trường từ tblCashDisbursement. Việc liên kết các trường PayeeID và EventID vào form chính sẽ tự động điền PayeeID và EventID vào subform. Việc dùng dữ liệu dẫn từ tblLaborAcquisition sẽ là một kiểm soát vì các đợt giải ngân trả lương chỉ có thể được ghi nhận cho những đợt sử dụng lao động có mặt trong tblLaborAcquisition.

BÀI TẬP 10.27: DÙNG FORM WIZARD ĐỂ TẠO FORM NHẬP CHI PHIẾU TRẢ LƯƠNG

1. Kích qryFormCDPayrollRecordSourceData trong nhóm Unassigned Objects thuộc Navigation Pane để làm nổi bật tên truy vấn. Kích Create tab rồi kích Form Wizard trong nhóm Forms.

2. Kích nút >> để chuyển tất cả các trường từ qryFormCDPayrollRecordSourceData sang khung Selected Fields.

3. Chọn tblCashDisbursement từ combo box. Kích nút >> để chuyển tất cả các trường sang khung Selected Fields.

4. Kích Next, kích by qryFormCDPayrollRecordSourceData để đặt các trường truy vấn vào form chính và các trường Cash Disbursement vào subform, giống form nhập liệu giải ngân cho nhà cung ứng mà bạn đã tạo ở Chương 9.

5. Kích nút Next hai lần để đến hộp thoại đặt tên các forms. Đặt tên form là frmCashDisbursementPayroll và tên subform là fsubCashDisbursementPayroll. Kích nút Finish để đóng hộp thoại và mở frmCashDisbursementPayroll ở góc nhìn Form.

6. Gõ 1/1/2012 vào hộp thoại thời điểm đầu kỳ Beginning of Period Date và 1/31/2012 vào hộp thoại thời điểm cuối kỳ End of Period Date. Form chính sẽ mở ở góc nhìn Form và subform mở ở góc nhìn Datasheet. Đóng form.

Mặc dù form này đã có thể hoạt động, ta sẽ cải thiện giao diện của nó, và thêm một số thành phần điều khiển ở hai bài tập kế.

BÀI TẬP 10.28: CẢI THIỆN SUBFORM NHẬP CHI PHIẾU TRẢ LƯƠNG

1. Mở fsubCashDisbursementPayroll ở góc nhìn Design. Nó nằm ở nhóm Unassigned Objects thuộc Navigation Pane. Mở Property Sheet. Chọn Form từ Property Sheet combo box nếu nó chưa được chọn.

2. Vì chỉ có một chi phiếu trả lương sẽ được viết cho từng phiếu chấm công time card, bạn sẽ loại nhiều thành phần điều khiển di chuyển của subform bằng cách thực hiện các sửa đổi sau cho các thuộc tính Format của nó:

  • Đặt Record Selectors là No.
  • Đặt Navigation Buttons là No.
  • Đặt Scroll Bars là Neither.
  • Đặt Close Button là No.
  • Đặt Min Max Button là None.


3. Tất cả các chi phiếu trả lương được rút từ tài khoản trả lương, CashAccountID 102. Kích thành phần điều khiển CashAccountID để chọn nó trong Property Sheet combo box. Kích Data tab rồi đặt thuộc tính Default Value là “102”. Vì người dùng không được viết chi phiếu trả lương từ bất kỳ tài khoản nào khác, hãy sửa thuộc tính Enabled thành No và Locked thành Yes. Kích Other tab rồi sửa Tab Stop thành No. Các thay đổi này sẽ ngăn người dùng nhập sai tài khoản tiền mặt cho các chi phiếu trả lương.

4. Kích thành phần điều khiển CDTypeID. Kích Data tab rồi đặt thuộc tính Default Value là “02”, đây là mã kiểu giải ngân cho các đợt giải ngân trả lương. Thực hiện các sửa đổi cho CDTypeID như bạn đã làm cho CashAccountID ở Bước 3.

5. Các giá trị PayeeID EventID sẽ được đặt qua liên kết giữa subform và form. Hãy khóa các giá trị này như bạn đã làm ở Bước 3.

6. Xem subform ở góc nhìn Datasheet. Kích nút chọn Datasheet; kích More menu trong nhóm Records trên dải lệnh Home; kích Field Width; rồi kích Best Fit để điều chỉnh tất cả các độ rộng cột.

7. Đóng subform. Để ý rằng bạn không thể dùng nút đóng (dấu X ở góc bên phải form) vì bạn đã khóa nó. Kích phải fsubCashDisbursementPayroll tab; kích Close. Kích Yes để lưu các thay đổi.

BÀI TẬP 10.29: CẢI THIỆN FORM NHẬP DỮ LIỆU CHI PHIẾU TRẢ LƯƠNG

Hãy dùng Hình 10.31 làm tham khảo giao diện cho form của bạn.

Hình 10.31 frmCashDisbursementPayroll hoàn chỉnh ở góc nhìn Design và góc nhìn Form.

1. Mở frmCashDisbursementPayroll ở góc nhìn Design, mở Property Sheet. Sửa đầu đề thành Payroll Check Data Entry. Kích và kéo thanh Detail xuống dưới để bạn có thể nắm được nút điều chỉnh kích cỡ ở đáy nhãn đầu đề và giảm chiều cao quá mức của ô nhãn. Dời ô văn bản đầu đề sang phải 1/4-inch. Kéo thanh Detail ngược lên cho đến khi chạm ô nhãn đầu đề.

2. Kích và kéo con trỏ qua toàn bộ thành phần điều khiển và nhãn trong phần Detail ở trên subform. Sửa các thuộc tính Format sau trên Property Sheet để khóa các thành phần điều khiển:

  • Đặt Back Style là Transparent.
  • Đặt Border Style là Transparent.


3. Kích vào vùng trống trên form để khử việc chọn các đối tượng. Chọn tất cả các ô văn bản (không phải nhãn) trong phần Detail của form bằng cách kích và kéo con trỏ trên từng ô, hay giữ phím Shift xuống rồi kích từng ô văn bản. Kích Data tab trong Property Sheet. Sửa Enabled thành No và Locked thành Yes. Các thành phần điều khiển đã được khóa. Chỉ các thành phần điều khiển trong subform là còn hoạt động.

4. Để ý rằng PayeeID không được tự động điền vào subform vì Form Wizard không tạo liên kết giữa EmployeeID trong form và PayeeID trong subform. Vì thế, bạn sẽ thêm liên kết này. Trở về góc nhìn Design. Kích fsubCashDisbursementPayroll trong combo box trên Property Sheet. Kích Data tab; kích Link Master Fields để hiển thị nút Builder rồi kích nó. Chọn EmployeeID trong Master Fields combo box thứ hai và PayeeID trong Child Fields combo box thứ hai. Kích OK.

5. Định cỡ và bố trí lại các nhãn và thành phần điều khiển trong form cho giống Hình 10.31. Tất cả các nhãn được canh phải và in đậm. Góc nhìn Layout cho phép bạn nhìn subform ở góc nhìn Datasheet và cho bạn khả năng dời và định cỡ lại nó.

6. Lưu các thay đổi trên form rồi đóng lại.

7. Nhập dữ liệu tblCashDisbursement cho các chi phiếu trả lương từ Ch10.xlsx bằng cách dùng phương pháp tương tự Bài tập 10.11. tblCashDisbursement cần có 174 bản ghi sau khi nhập liệu. Mở frmCashDisbursementPayroll ở góc nhìn Form để xem form trông ra sao sau khi đã nhập liệu.

Giờ đây bạn đã hoàn tất việc tạo các form nhập để thu thập dữ liệu từ các hoạt động của qui trình nhân sự HR, bạn sẽ dẫn ra thông tin hữu ích cho các mục đích nội bộ cũng như bên ngoài.

Thứ Tư, 23 tháng 11, 2016

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 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 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 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 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 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 IntegrityCascade 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 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 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 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/201231/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.