Thứ Sáu, 26 tháng 2, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 8 - Bảng đơn bán hàng - tồn kho

James Perry, Richard Newmark


Chương 8
Qui trình bán hàng - thu tiền


Bảng đơn bán hàng - tồn kho


Bảng đơn bán hàng – tồn kho sẽ ghi nhận quan hệ dành riêng nhiều-nhiều giữa tblSaleOrder tblInventory. Bảng sẽ lưu 4 trường:

1. Khóa chính của tblSaleOrder.
2. Khóa chính của tblInventory.
3. Số lượng từng hàng tồn kho xuất hiện trên từng đơn bán hàng.
4. Đơn giá từng hàng tồn kho xuất hiện trên từng đơn bán hàng.

Các khóa chính từ tblSaleOrder tblInventory hợp thành khóa chính phức hợp trong tblReservation-SaleOrderInventory. Trong Microsoft Access, bạn tạo khóa chính phức hợp bằng cách tạo 2 trường tách rời – mỗi trường cho khóa chính của từng bảng thực thể rồi chỉ định cả 2 trường làm khóa chính. Nếu dùng màn hình hỗ trợ của Microsoft Access, bạn có thể để ý rằng Microsoft dùng thuật ngữ bảng nối (juction table) thay cho bảng-quan-hệ, trong tài liệu hỗ trợ trực tuyến và các tài liệu khác. Trước khi bắt đầu bài tập kế, hãy đóng mọi bảng và form đang mở.

BÀI TẬP 8.20: TẠO BẢNG-QUAN-HỆ TBLRESERVATION-SALEORDERINVENTORY

1. Tạo bảng mới. Kích CREATE tab, rồi kích Table Design trong nhóm Tables.

2. Nhập SaleOrderID vào Field Name và để Data Type là Short Text.

3. Nhấn F6. Đặt Field Size là 6, đặt Input Mask là 000000;;_, đặt Caption là Sale Order #, và thuộc tính Required là Yes.

4. Đặt thuộc tính Indexed là Yes (Duplicates OK). Thuộc tính Indexed phải được phép trùng lặp vì trường thuộc khóa chính phức hợp rất có thể chứa giá trị trùng lặp, mặc dù tổ hợp cả hai khóa chính sẽ duy nhất. Nhớ rằng khóa chính phức hợp, giống khóa ngoại, phải khớp kiểu và kích cỡ với các khóa chính ở bảng gốc. Các trường trùng khớp này cho phép cơ sở dữ liệu lưu giá trị SaleOrderID đồng thời vào bảng này và tblSaleOrder. Nửa kia của khóa chính phức hợp là InventoryID, khóa chính của tblInventory.

5. Gõ InventoryID vào dòng Field Name thứ hai và để Data Type là Short Text. Nhấn F6. Đặt Field Size là 4, đặt Input Mask là 0000;;_, Caption là Item #, thuộc tính Required là Yes, và  thuộc tính Indexed là Yes (Duplicates OK).

6. Trong lúc nhấn phím Ctrl, kích nút chọn bản ghi (record selector) cho SaleOrderID InventoryID.

7. Với cả hai trường được chọn, kích Primary Key trong nhóm Tools. Biểu tượng khóa chính cần xuất hiện ở nút chọn bản ghi của cả hai trường, như thể hiện ở Hình 8.23.

Hình 8.23. Tạo khóa chính phức hợp cho tblReservation-SaleOrderInventory.

8. Trường kế trong tblReservation-SaleOrderInventory sẽ lưu số lượng của từng hàng tồn kho mà khách hàng đặt mua trên một đơn bán hàng cụ thể. Gõ QuantityOrdered vào Field Name rồi đặt Data Type là Number. Đặt Field Size là Long Integer, Decimal Places là 0, Caption là Quantity, và thuộc tính Required là Yes. Việc thiết đặt thuộc tính số nguyên giả sử rằng Pipefitters Supply Company không tiếp nhận các đơn hàng có đơn vị thập phân. Thiết đặt thuộc tính long integer cho phép công ty ghi nhận số lượng lên đến 2 tỉ đơn vị cho mọi hàng tồn kho trên đơn bán hàng bất kỳ.

9. Trường cuối cùng trong tblReservation-SaleOrderInventory sẽ lưu đơn giá mà khách hàng đồng ý thanh toán cho từng hàng tồn kho trên từng đơn bán hàng. Để tạo trường này, nhập SOPrice vào Field Name, đặt Data Type là Currency, để Format là Currency, đặt Decimal Places là 2, đặt thuộc tính Caption là Price, và đặt thuộc tính Required là Yes.

10. Đóng và lưu bảng với tên tblMyReservation-SaleOrderInventory.

Đến đây thiết kế cơ bản của tblReservation-SaleOrderInventory đã hoàn tất. Một phiên bản kèm theo dữ liệu cho Pipefitters Supply Company đã được cung cấp trong cơ sở dữ liệu Ch08.accdb.

Bạn đã học cách tạo tblCustomer, tblInventory (và các bảng phân loại tồn kho liên quan), tblSaleOrder, và tblReservation-SaleOrderInventory. Trước đây bạn đã thiết lập quan hệ giữa tblInventory và các bảng phân loại tồn kho. Bây giờ bạn đã sẵn sàng hoàn thành việc tạo mọi quan hệ giữa các bảng này như đã đặc tả trong Hình 8.5. Bài tập 8.21 sẽ chỉ bạn cách định cỡ và di chuyển bảng trong cửa sổ quan hệ để làm mô hình cơ sở dữ liệu dễ đọc hơn.

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

Đăng nhận xét