Chủ Nhật, 13 tháng 3, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 8 - Đơn bán hàng còn để ngỏ

James Perry, Richard Newmark


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


Đơn bán hàng còn để ngỏ


Thông tin đơn bán hàng hết sức quan trọng để quản lý doanh nghiệp hiệu quả. Chẳng hạn, việc so sánh các đơn bán hàng với hàng tồn kho có sẵn sẽ giúp công ty biết khi nào đặt mua hàng mới. Hơn nữa, nhân viên quan hệ khách hàng, chẳng hạn nhân viên bán hàng, cần biết trạng thái của đơn bán hàng để trả lời cho khách hàng. Trong bài tập sau, bạn sẽ tạo 3 câu truy vấn nhằm phát sinh danh sách các mặt hàng khách hàng đã đặt nhưng chưa nhận đủ.

BÀI TẬP 8.50: TẠO CÁC TRUY VẤN ĐỂ PHÁT SINH DANH SÁCH CÁC MẶT HÀNG ĐÃ ĐẶT NHƯNG CHƯA NHẬN – PHẦN 1

Hãy tạo câu truy vấn đầu tiên để phát sinh danh sách các mặt hàng đã đặt trước hay vào một thời điểm xác định.

1. Kích CREATE tab và chọn Query Design.

2. Thêm tblSaleOrder tblReservation-SaleOrderInventory vào Table Pane.

3. Thêm các thuộc tính sau vào Criteria Pane: SaleOrderID từ tblSaleOrder; InventoryID QuantityOrdered từ tblReservationSaleOrderInventory; và SaleOrderDate từ tblSaleOrder.

4. Nhập <=[End of Period Date] (trước hay vào thời điểm cuối kỳ) vào ô Criteria cho SaleOrderDate.

5. Thêm các phụ đề. Mở Property Sheet từ nhóm Show/Hide. Đặt phụ đề Caption cho SaleOrderDate là Date Ordered. Kích QuantityOrdered trong Criteria Pane và đặt thuộc tính Caption của nó là Quantity Ordered.

6. Lưu câu truy vấn với tên qryOpenSaleOrders1-ItemsOrdered. Kiểm thử câu truy vấn bằng cách thi hành nó với 2/29/2012 là thời điểm cuối kỳ. Bạn cần thấy danh sách 217 mặt hàng đã được đặt trước và vào ngày 2/29/2012. Đóng câu truy vấn.

BÀI TẬP 8.51: TẠO CÁC TRUY VẤN ĐỂ PHÁT SINH DANH SÁCH CÁC MẶT HÀNG ĐÃ ĐẶT NHƯNG CHƯA NHẬN – PHẦN 2

Hãy tạo truy vấn thứ hai bằng cách sao chép và hiệu chỉnh qryOpenSaleOrders1-ItemsOrdered.

1. Tạo một bản sao của qryOpenSaleOrders1-ItemsOrdered rồi đặt tên là qryOpenSaleOrders2-ItemsShipped.

2. Mở qryOpenSaleOrders2-ItemsShippedDesign View. Kích Show Table trong nhóm Query Setup rồi thêm tblSale tblOutflow-SaleInventory vào Table Pane.

3. Đổi thuộc tính Table cho cả hai SaleOrderID SaleOrderDate thành tblSale.

4. Đổi thuộc tính Table cho InventoryID QuantityOrdered thành tblOutflow-SaleInventory.

5. Đổi trường QuantityOrdered thành QuantitySold. Mở Property Sheet rồi đổi Caption thành Quantity Sold.

6. Đổi trường SaleOrderDate thành ShippingDate và đặt Caption là Shipping Date.

7. Kích Totals trong nhóm Show/Hide. Đổi ô Total cho QuantitySold thành Sum để kết hợp các lần gởi hàng từng phần của cùng hàng tồn kho từ cùng một hóa đơn. Để thuộc tính ShippingDate là GroupBy để hiển thị thời điểm gửi hàng trong kết quả truy vấn.

8. Xóa tblSaleOrder tblReservation-SaleOrderInventory khỏi Table Pane trong câu truy vấn. Lưu các thay đổi.

9. Kiểm thử câu truy vấn bằng cách thi hành nó với 2/29/2012 là thời điểm cuối kỳ. Bạn cần thấy danh sách gồm 181 mặt hàng đã đặt trước và vào ngày 2/29/2012. Đóng câu truy vấn.

BÀI TẬP 8.52: TẠO CÁC TRUY VẤN ĐỂ PHÁT SINH DANH SÁCH CÁC MẶT HÀNG ĐÃ ĐẶT NHƯNG CHƯA NHẬN – PHẦN 3

Truy vấn thứ ba sẽ tính số lượng chưa giao của từng mặt hàng đã đặt bằng cách trừ QuantityShipped khỏi QuantityOrdered. Truy vấn này cần dùng hàm Nz và phép nối ngoại.

1. Tạo một truy vấn mới bằng Query Design trên dải CREATE. Thêm qryOpenSaleOrders1-ItemsOrderedqryOpenSaleOrders2-ItemsShipped vào Table Pane.

2. Tạo 2 phép nối ngoại, một cho SaleOrderID và một cho InventoryID. Kéo từng thuộc tính từ qryOpenSaleOrders1-ItemsOrdered sang qryOpenSaleOrders2-ItemsShipped. Kích nút radio 2 trong hộp thoại Join Properties cho từng liên kết. Các mũi tên kết quả cần trỏ đến qryOpenSaleOrders2-ItemsShipped.

3. Thêm tất cả các trường từ danh sách trường của qryOpenSaleOrders1-ItemsOrdered vào Criteria Pane.

4. Kéo SumOfQuantitySold từ qryOpenSaleOrders2-ItemsShipped vào ngay bên phải của QuantityOrdered. Kích kép ShippingDate trong qryOpenSaleOrders2-ItemsShipped để chuyển nó vào cạnh SaleOrderDate trên Criteria Pane.

5. Lưu truy vấn với tên qrySaleOrder3-OpenItems.

6. Kích Field trống đầu tiên trên Criteria Pane rồi mở Builder. Nhập UnfilledQuantity: [QuantityOrdered]-Nz([SumOfQuantitySold],0). Mở Property Sheet và đặt Caption cho UnfilledQuantity là Unfilled Quantity.

7. Lưu truy vấn. Kiểm thử câu truy vấn bằng cách thi hành nó với 2/29/2012 là thời điểm cuối kỳ. Bạn cần thấy danh sách 217 mặt hàng đã đặt trước hay vào 2/29/2012. Hình 8.54 cho thấy trạng thái các mặt hàng được đặt vào 2/18/2012 và 2/19/2012. Để ý rằng số lượng chưa giao là 0 đối với những mặt hàng đã giao xong. Điều gì đã xảy ra nếu một hay nhiều số lượng chưa giao có giá trị bé hơn 0? Làm sao bạn có thể dùng truy vấn này để thực hiện việc kiểm soát?

Hình 5.84. Tập hợp động qrySaleOrder3-OpenItems bao gồm các mặt hàng đã giao.

8. Trở lại Design View. Gõ >0 làm tiêu chuẩn Criteria cho UnfilledQuantity. Chạy lại câu truy vấn dùng 2/29/2012. Bây giờ chỉ có 36 mặt hàng chưa giao xong được hiển thị. Lưu và đóng truy vấn.

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

Đăng nhận xét