MS Access 2003 - Bài 23: Thiết kế truy vấn riêng

Đến lúc này, bạn đã có thể sử dụng Query Wizard để tạo các truy vấn. Nhưng Query Wizard chỉ tạo một vài truy vấn thường dùng. Nếu một trong những truy vấn đó không phù hợp, bạn có thể tạo truy vấn riêng.

Nhiều người nghĩ rằng tự xây dựng truy vấn riêng là một trong những phần khó nhất khi làm việc với Access 2003. Điều đó có thể đúng, nhưng với một vài hướng dẫn và nhiều lần thực hành, bạn có thể xây dựng bất kỳ truy vấn nào mà bạn nghĩ ra.

Khi tự tạo các truy vấn từ đầu, bạn sẽ được biết các nguyên tắc để có thể áp dụng khi chỉnh sửa truy vấn sẵn có. Với cách như vậy - tạo hay chỉnh sửa - bạn sử dụng cửa sổ thiết kế truy vấn.

Quá trình sau để tạo một truy vấn, phần lớn dựa vào loại truy vấn mà bạn muốn tạo. Không quan tâm đến loại truy vấn, bạn thường bắt đầu với cùng một cách: chọn nút Queries trong cửa sổ Database, kích đúp chuột vào tùy chọn Create Query in Design View. Màn hình xuất hiện như hình 1.


Hình 1: Tạo truy vấn

Chú ý rằng cửa sổ thiết kế truy vấn là phần sau. Trong phần đầu, Access hiển thị hộp thoại Show Table đưa ra cho bạn lựa chọn nguồn dữ liệu muốn sử dụng. Như các truy vấn khác, bạn có thể lựa chọn cả bảng hoặc các truy vấn làm nguồn dữ liệu (đều có ở hộp thoại Show Table). Trong trường hợp này, chọn bảng Business Customers và kích chuột vào nút Add. Access mở một cửa sổ nhỏ cho bảng đó có chứa các trường. Để đóng hộp thoại Show Table, kích chuột vào nút Close.

Sau khi đóng hộp thoại Show Table, Access hiển thị cửa sổ thiết kế truy vấn. Ở phần giữa cửa sổ là chỗ trống cho các nguồn dữ liệu đã được mở. Trong trường hợp này, chỗ trống chứa bảng Business Customers. Bên dưới là lưới thiết kế OBE (ví dụ cho truy vấn). Cửa sổ thiết kế truy vấn xuất hiện như hình 2.


Hình 2: Cửa sổ thiết kế truy vấn

Trong lưới thiết kế QBE, bạn xác định các tiêu chuẩn cho truy vấn. Những tùy chọn sẵn có trong lưới phụ thuộc vào loại truy vấn bạn tạo.

Công cụ thiết kế truy vấn

Công cụ thiết kế truy vấn chỉ xuất hiện bên dưới thực đơn bất cứ khi nào bạn sử dụng cửa sổ thiết kế truy vấn. Nhiều công cụ trên thanh công cụ rất quen như đã sử dụng trong các cửa sổ Access khác. Tuy nhiên, có các công cụ khác là chỉ có trên thanh công cụ của truy vấn Design. Bảng 1 hiển thị những công cụ đó và công việc chúng thực hiện.

Công cụ Tên Tính năng
Query Type Cho phép xác định loại truy vấn bạn tạo
Run Thi hành truy vấn nếu cần thiết.
Show Table Hiển thị hộp thoại Show Table
Totals Hiển thị dòng tổng trong lưới QBE. Nó không sẵn có khi tạo một truy vấn cập nhật hay xóa truy vấn
Top Values Tìm giá trị cao nhất trong một truy vấn dựa vào tỷ lệ phần trăm hay số các dòng
Properties Hiển thị cửa sổ Properties, cho các trường truy vấn hoặc cho chính các truy vấn
Build Hiển thị cửa sổ Builder khi tạo tiêu chuẩn cho một trường.

Bảng 1: Các công cụ thiết kế

Bạn thường sử dụng Query Wizards để tạo các truy vấn bình thường, có nghĩa là sử dụng cửa sổ thiết kế truy vấn cho những truy vấn phổ biến hơn. Do vậy, bạn sẽ thường sử dụng công cụ Query Type khi bắt đầu phần thiết kế để cho biết loại truy vấn bạn tạo. Nếu kích chuột vào mũi tên xuống phía bên phải công cụ, bạn có thể thấy Access cho phép tạo những loại truy vấn sau: 

Select Query (truy vấn lựa chọn): Là loại truy vấn được mặc định, cho phép bạn xây dựng một truy vấn mà trả về là số các trường được xác định tiêu chuẩn. 

Crosstab Query (Truy vấn Crosstab): Sửa đổi lưới QBE sao cho những tùy chọn của nó đại diện sự cần thiết cho truy vấn. 

Make-Table Query (Truy vấn tạo bảng): Áp dụng khi cần tạo ra một bảng mới. Access sử dụng bảng này để lưu trữ kết quả phần chính của truy vấn. Khi chọn công cụ này, Access yêu cầu bạn đặt tên cho bảng và nơi lưu trữ bảng. Lưới QBE cũng tương tự như truy vấn chọn lựa. 

Update Query (Truy vấn cập nhật): Dùng để cập nhật nhiều bản ghi trong một bảng. Access thay đổi lưới QBE để đại diện cho sự cần thiết của truy vấn. 

Append Query (Truy vấn Bổ sung): Dùng để bổ sung các bản ghi thành một bảng. Khi chọn công cụ này, Access yêu cầu bạn đặt tên bảng và nơi lưu trữ bảng đó. Access thay đổi lưới QBE để phản ánh lại những tiêu chuẩn cho loại truy vấn này. 

Delete Query (Truy vấn xóa): Dùng để xóa cac bản ghi. Access thay đổi lưới QBE thành dạng đơn giản hơn các truy vấn khác.

Những truy vần này trông rất quen thuộc, về cơ bản, chúng giống như những truy vấn đã được đề cập ở phần đầu chương này.

Sử dụng lưới QBE

Bất kỳ bạn chọn loại truy vấn nào, thường sử dụng lưới QBE để thiết kế truy vấn. Bạn có thể áp dụng các mục trong lưới cũng giống như cách dùng ở các lưới thiết kế khác. Ví dụ, Ở chương 5 “Sắp xếp và phân loại thông tin”, bạn đã biết được cách có thể sử dụng lưới cửa sổ Filter. Lưới QBE cũng thực hiện như vậy, bạn có thể thêm, xóa, và di chuyển các cột. Ngoài ra bạn cũng có thể lựa chọn ô trong lưới và chỉnh sửa chúng.

Ý nghĩa của các dòng trong lưới QBE thay đổi phụ thuộc vào loại truy vấn bạn đang thiết kế. Tuy nhiên, ở dòng đầu tiên luôn luôn chứa tên trường. Mỗi cột ở dòng này đại diện cho trường mà Access sẽ hiển thị trong kết quả truy vấn. Do vậy, nếu bạn muốn hiển thị 5 trường trong kết quả truy vấn, bạn nên sử dụng 5 cột trong lưới QBE. Access hiển thị các trường theo thứ tự bạn đặt trong lưới. Tuy nhiên, bạn có thể thiết lập dòng Show cho mỗi trường quản lý dù Access có hiển thị các trường hay không (Hình 3)


Hình 3: Lưới QBE

Nếu bạn chọn dòng Show cho một cột riêng, Access hiển thị trường đó ra kết quả. Nếu không chọn dòng Show, Access không hiển thị trường. Tại sao bạn không muốn hiển thị trường đó? Đơn giản, nếu bạn chỉ sử dụng một cột để lựa chọn hoặc sắp xếp các bản ghi, bạn không cần hiển thị nó. Ví dụ, nếu bạn chọn các bản ghi dựa vào giá trị của trường là Yes/No (chỉ chọn những trường được thiết lập Yes), như bạn biết rằng mọi giá trị mà kết quả trường sẽ là (-1). Do vậy, đó thực sự không cần để hiển thị trường. Có thể sử dụng dòng Show để ẩn hoặc hiển thị các trường như bạn muốn.

Chú ý: Dòng Show không áp dụng với các truy vấn Crosstab, Cập nhật, Bổ sung và Xóa.

Dòng Sort và Criteria làm việc tương tự như đã đề cập về các filter ở chương 5 “Sắp xếp và lọc thông tin”. Nếu bạn vẫn chưa rõ về vấn đề này, có thể xem lại chương đó.

Cách tốt nhất để khám phá ra cách sử dụng lưới QBE là thực hành. Giả sử bạn muốn tạo một truy vấn sử dụng bảng Business Customers và hiển thị tất cả các tài khoản còn hoạt động với thẻ giới hạn trên 1000$ của một trong những nhân viên bán hàng. Thêm vào đó, bạn muốn các tài khoản được liệt kê sắp xếp theo thứ tự giảm dần dựa vào thời hạn thẻ của họ (đối với những tài khoản với thời hạn thẻ bằng nhau, bạn muốn chúng được sắp xếp theo thứ tự tên công ty). Để thiết kế truy vấn như vậy, thực hiện các bươc sau: 

1. Bắt đầu một lưới QBE trống. 

2. Sử dụng công cụ Query Type để chắc chắn Select Query được thiết kế. 

3. Trong danh sách các trường, kích đúp chuột vào tên trường Active. Access hiển thị tên trường này ở cột đầu tiên của lưới QBE. 

4. Ở dòng Criterea đối với cột đầu tiên, nhập phép tính =Yes. Điều này có nghĩa Access chỉ ra những bản ghi với trường Active được thiết lập là đúng. 

5. Bỏ dấu tích ở dòng Show ở cột đầu tiên. Access không hiển thị giá trị của trường. 

6. Trong danh sách trường, kích đúp chuột vào tên trường Salesperson. Access hiển thị tên trường này ở cột thứ hai trong lưới QBE. 

7. Ở dòng Criteria đối với cột thứ hai, nhập phép toán = “John Davis”. Điều này có nghĩa bạn muốn chỉ những bản ghi có đại diện người bán hàng tên là John Davis. 

8. Xóa dấu tích ở dòng Show cho cột thứ hai. Access sẽ không hiển thị giá trị của trường. 

9. Kích đúp chuột vào tên trường Credit Limit. Access hiển thị trên trường này trong cột thứ 3 của lưới QBE. 

10. Trong dòng Sort ở cột thứ 3, chọn Descending

11. Trong dòng Criteria của cột thứ 3, nhập đẳng thức >1000. Điều này cho biết bạn chỉ muốn những bản ghi với thẻ giới hạn trên 1000$. 

12. Kích đúp chuột vào tên trường Company Name. Access hiển thị trường này ở cột 4 trong lưới QBE. 

13. Ở dòng Sort, chọn Ascending

14. Kích đúp chuột vào tên trường là Contact. Access hiển thị trường này ở cột thứ 5 trong lưới QBE. 

15. Kích đúp chuột vào tên trường là Contact Phone. Access hiển thị trường này ở cột thứ 6 trong lưới QBE. 

16. Kích đúp chuột vào trên trường Last Order. Access hiển thị tên trường này ở cột thứ 7 trong lưới QBE.

Lúc này bạn đã hoàn thành xong truy vấn. Cửa sổ thiết kế truy vấn của bạn được đưa ra như hình 4.


Hình 4: Truy vấn được hoàn thành

Truy vấn này hiển thị 5 trường từ bảng Business Customers, nhưng chỉ đối với những trường có điều kiện ở dòng Criteria. Bạn có thể lưu truy vấn ngay nếu muốn. Tuy nhiên, để thấy kết quả của truy vấn luôn, kích chuột vào công cụ Run trên thanh công cụ. Access chạy truy vấn mà không cần lưu nó và hiển thị ra kết quả. Cách này bạn có thể kiểm tra lại để thấy được nếu kết quả như mong đợi. Hình 5 hiển thị kết quả của truy vấn mới.


Hình 5: Kết quả truy vấn.

Khi hoàn thành kiểm tra kết quả truy vấn, bạn có thể sử dụng công cụ View (phía bên trái thanh công cụ) để chuyển đổi trở lại cửa sổ thiết kế truy vấn. Sau đó, lưu truy vấn bằng cách đóng cửa sổ thiết kế. Kích chuột vào nút Yes và Access đưa ra lời nhắc bạn cần đặt một tên (hình 6).


Hình 6: Bạn có thể lưu truy vấn sử dụng tên bạn muốn.

Nhập tên bạn muốn để sử dụng cho truy vấn, khi kích chuột vào nút OK, Access lưu truy vấn và cập nhật vào cửa sổ Database để thêm tên mới.

Thiết lập các thuộc tính

Trong chương 3 “Tùy biến các thành phần”, bạn đã học về các thuộc tính của trường và cách chúng tác động đến chế độ Datasheet. Các thuộc tính được miêu tả ở chương 3 áp dụng cho các trường trong một bảng nhưng bạn cũng có thể thiết lập các thuộc tính cho trường ở trong một truy vấn. Các thuộc tính truy vấn tác động đến cách Access hiển thị thông tin xuất phát từ truy vấn cũng như cách bạn có thể chỉnh sửa thông tin đó.

Để thấy được các thuộc tính cho một trường cụ thể, lựa chọn trường từ lưới QBE. Sau đó, kích chuột vào công cụ Properties. Access hiển thị cửa sổ Properties, xuất hiện các hình thức của cửa sổ phụ thuộc vào kiểu dữ liệu của trường. Một cửa sổ properties mẫu như hình 7 (Các thuộc tính cho trường Credit Limit)


Hình 7: Cửa sổ Properties cho trường Credit.

Chú ý rằng, có một vài thuộc tính mà bạn thấy trong bảng cửa sổ thiết kế. Tuy nhiên, các thuộc tính được hiển thị có chức năng gần giống với cách mà chúng thực hiện khi làm việc với bảng. (Bạn có thể trở lại chương 3 để xem lại).

Thứ Tư, 05/06/2019 09:57
2,73 👨 16.206