Thứ Năm, 28 tháng 7, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 5 - Tạo truy vấn đằng-sau-form

James Perry, Richard Newmark


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


Tạo truy vấn đằng-sau-form


Khi cuộn qua các bản ghi bằng việc dùng form tồn kho inventory, rất có thể bạn thấy rằng các dòng dường như hiển thị theo thứ tự ngẫu nhiên. Thật ra, các dòng xuất hiện trong form theo khóa chính – dựa trên giá trị của trường InventoryID. Đây không phải là chọn lựa tốt nhất. Sẽ tốt hơn nếu hiển thị tồn kho theo một thứ tự có tổ chức hơn – chẳng hạn theo kiểu thức uống rồi theo thứ tự từ điển trong từng thức uống. Bằng cách đó, cà phê sẽ xuất hiện đầu tiên trong danh sách, sau đó là trà. Cà phê cũng được sắp theo tên trong nhóm của chúng, và trà cũng vậy. Một cách để thực hiện điều này là tạo một truy vấn chứa tất cả các trường tồn kho và qui định việc sắp tăng dần đầu tiên theo cột Beverage rồi sau đó theo cột ItemName. Như vậy, bạn đã có thể sửa form để nhận dữ liệu từ câu truy vấn thay vì trực tiếp từ bảng tblInventory.  Một giải pháp “an toàn hơn” và đẹp hơn là sửa form để dùng truy vấn đằng-sau-form. Truy vấn đằng-sau-form (behind-the-form query) là truy vấn trong suốt đối với cơ sở dữ liệu, không xuất hiện trong nhóm Queries, và chỉ được dùng bởi form mà nó gắn vào. Cách này an toàn hơn, như đã đề cập trước đây, vì nó ngăn người dùng sửa truy vấn trong nhóm Queries mà sẽ tác động đến form. Nghĩa là, truy vấn đằng-sau-form không thể tình cờ bị sửa và vì thế sẽ không tác động tiêu cực đến form cơ sở dữ liệu hay các đối tượng khác phụ thuộc chúng.

Ta hãy sửa lần cuối MyInventory3 form để nó tự động hiển thị form theo thứ tự sắp xếp, bất chấp thứ tự của chúng trong bảng. Bạn sẽ làm điều đó bằng cách sửa thuộc tính Record Source của form thành câu truy vấn. Bài tập kế sẽ chỉ bạn cách làm.

BÀI TẬP 5.23: TẠO TRUY VẤN ĐẰNG-SAU-FORM ĐỂ SẮP XẾP CÁC DÒNG

1. Hiển thị MyInventory3 ở góc nhìn Design. Nhấn F4 để hiển thị khung Property Sheet.

2. Đảm bảo form được chọn: Kích mũi tên ô danh sách trên đỉnh Property Sheet rồi kích Form.

3. Kích Data tab trên Property Sheet, kích thuộc tính Record Source, rồi kích nút ba chấm bên phải thuộc tính. Kích Yes khi được hỏi bạn có muốn tạo truy vấn từ bảng không (Do you want to create a query based on the table?)

4. Kích kép dấu * (hoa thị) trong khung trường bảng để đặt nó vào ô Field đầu tiên.

5. Kích kép Beverage trong khung field rồi kích kép ItemName để đặt Beverage và ItemName vào ô Fields thứ hai và thứ ba.

6. Xóa ô Show ứng với Beverage và ItemName trong lưới truy vấn để chúng không hiển thị hai lần.

7. Kích ô Sorted trong cột Beverage, kích mũi tên danh sách của nó, rồi chọn Ascending. Lặp lại bước này cho cột ItemName. Điều này sẽ khiến Access sắp các dòng trong bảng theo thứ tự Beverage rồi theo thứ tự ItemName (bên trong các giá trị Beverage phân biệt).

8. Kích nút Close trong nhóm Close thuộc tab ngữ cảnh Design, rồi kích Yes khi được hỏi có muốn lưu thay đổi và cập nhật câu truy vấn không (Do you want to save changes…). Thuộc tính Record Source, gắn liền với form, được chuyển thành lệnh SQL nhằm chọn mọi trường từ bảng tblInventory rồi sắp chúng. Hình 5.26 trình bày Property Sheet được mở rộng để thấy được toàn bộ lệnh SELECT.

Hình 5.26 Thuộc tính Record Source đã được sửa thành lệnh SQL để sắp xếp các dòng.

9. Kích Save trong thanh công cụ truy xuất nhanh Quick Access Toolbar để lưu form đã sửa.

10. Đóng Property Sheet (nhấn F4). Hiển thị form ở góc nhìn Form. Cuộn qua năm bản ghi đầu tiên để kiểm chứng rằng các sản phẩm cà phê hiển thị theo thứ tự tế nhị (bắt đầu với Almond Amaretto).

11. Kích phải MyInventory3 tab rồi kích Close All để đóng tất cả các cửa sổ Access đang mở.

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

Đăng nhận xét