Chủ Nhật, 31 tháng 7, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 5 - Tạo subform từ câu truy vấn

James Perry, Richard Newmark


Chương 5
Tạo và dùng forms


Tạo subform từ câu truy vấn


Nếu bạn muốn hiển thị giá thành, cần có câu truy vấn để kết hợp các trường từ bảng tblInvoiceLine tblInventory. Thay vào đó, ta muốn hiển thị tên mặt hàng. Vì thế, cần một trường từ bảng tồn kho là ItemName. Câu truy vấn sẽ chứa biểu thức bạn đã thấy trước đây nhằm tính giá thành:

Round([Quantity]*[tblInvoiceLine]![UnitPrice]*(1-[Discount]),2)

Hàm Round áp dụng lên biểu thức tính giá thành quen thuộc. “[tblInvoiceLine]![UnitPrice]” chỉ định đơn giá UnitPrice trong bảng tblInvoiceLine – không phải trường cùng tên trong tblInventory.

Ta hãy tạo truy vấn cần thiết rồi tạo form cùng subform mới, tham chiếu đến tblInvoice cùng truy vấn bạn sắp tạo. Vì bây giờ bạn đã biết cách tạo truy vấn, các bước sau sẽ ít chi tiết hơn bình thường. Nếu bạn quên cách tạo truy vấn, hãy xem lại Chương 4 (Tạo và dùng câu truy vấn).

BÀI TẬP 5.25: TẠO TRUY VẤN ĐỂ SUBFORM DÙNG

1. Hãy tạo một truy vấn nối tblInventory với tblInvoiceLine.

2. Ở góc nhìn Design, hãy đặt các trường sau vào dòng Field theo thứ tự được liệt kê: InvoiceID, ItemName, Quantity, tblInvoiceLine.UnitPrice (UnitPrice từ bảng tblInvoiceLine) và Discount.

3. Kích Save trong thanh công cụ truy xuất nhanh Quick Access Toolbar, gõ MyInvoiceSubformQuery, rồi kích OK. Việc lưu truy vấn lúc này sẽ cho phép các trường trong câu truy vấn xuất hiện nếu bạn chọn Builder để tạo biểu thức trong bước kế.

4. Trong ô Field, cột thứ sáu ở lưới truy vấn, hãy tạo biểu thức sau. Cẩn thận với số liệu cũng như các cặp ngoặc tròn và ngoặc vuông:

ExtPrice: Round([Quantity]*[tblInvoiceLine]![UnitPrice]*(1-[Discount]),2)

5. Kích Save trong thanh công cụ truy xuất nhanh Quick Access Toolbar. Đóng truy vấn. Kích phải tab truy vấn rồi kích Close.

Kế đến, bạn sẽ dùng Form Wizard để tạo form từ tblInvoice MyInvoiceSubformQuery, nối hai đối tượng trên trường liên kết chung của chúng là InvoiceID.

BÀI TẬP 5.26: TẠO FORM VÀ SUBFORM LIÊN QUAN DỰA TRÊN TRUY VẤN

1. Kích Create tab rồi kích Form Wizard trong nhóm Forms.

2. Kích mũi tên danh sách Tables/Queries, rồi kích Table: tblInvoice trong danh sách.

3. Kích nút >> (chọn tất cả) để đặt tất cả các trường khả dụng Available Fields vào danh sách các trường được chọn Selected Fields.

4. Kích mũi tên danh sách Tables/Queries, rồi kích Query: MyInvoiceSubformQuery trong danh sách.

5. Chuyển các trường ItemName, Quantity, UnitPrice, Discount, và ExtPrice vào danh sách Selected Fields. (Kích ItemName rồi kích > năm lần.) Đừng chọn trường InvoiceID trong danh sách Available Fields của truy vấn.

6. Kích Next. Kích by tblInvoice trong khung How do you want to view your data? (Bạn muốn xem dữ liệu ra sao?) để để đảm bảo việc gom nhóm đúng (xem Hình 5.28).

Hình 5.28 Hệ thống phân cấp form và subform.

7. Kích Next rồi kích Next lần nữa.

8. Kích kép ô văn bản Form bên dưới câu hỏi What title do you want for your forms? (Bạn muốn tiêu đề gì cho forms của bạn?) Gõ MyInvoiceForm2 để đổi tên form. Chọn tất cả văn bản trong ô văn bản Subform rồi gõ MyInvoiceSubform2 để đặt tên subform liên quan. Kích nút Finish. Access sẽ tạo cặp form/subform rồi hiển thị chúng ở góc nhìn Form (xem Hình 5.29).

Hình 5.29 Form và subform hóa đơn.

Form và subform có vài khuyết điểm, nhưng chúng chứa dữ liệu cần thiết. Bạn có thể cuộn qua form để xem hóa đơn và chi tiết dòng hóa đơn liên quan của khách hàng bằng việc dùng thanh di chuyển ở đáy form. Mặc dù form cần vài điều chỉnh, đừng làm lúc này. Đó là nội dung ở cuối chương!

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

Đăng nhận xét