1. Các khái niệm
a) Mẫu hỏi
Như đã biết, một CSDL chứa dữ liệu phản ánh toàn bộ thông tin về tập hợp đối tượng cần quản lí (điểm số của học sinh, hoá đơn bán hàng, sách của một thư viện,...). Với các bài toán này, thường cần câu trả lời cho các câu hỏi như: Ai là người có điểm trung bình cao nhất trong lớp? Tổng số tiền bán được trong một ngày là bao nhiêu? Liệt kê các sách của một tác giả nào đó,... Nếu câu hỏi chỉ liên quan tới một bảng, bằng thao tác tìm kiếm và lọc có thể tìm được câu trả lời. Nhưng với câu hỏi phức tạp, liên quan tới nhiều bảng thì cần sử dụng mẫu hỏi.
Dùng mẫu hỏi dựa vào liên kết giữa các bảng, ta có thể thống kê dữ liệu, nhóm và lựa chọn các bản ghi của nhiều bảng theo các điều kiện cho trước.
Mẫu hỏi thường được sử dụng để:
- Sắp xếp các bản ghi
- Chọn các bản ghi thoả mãn các điều kiện cho trước;
- Chọn các trường để hiển thị;
- Thực hiện tính toán như tính trung bình cộng, tính tổng, đếm bản ghi,...;
- Tổng hợp và hiển thị thông tin từ nhiều bảng hoặc mẫu hỏi khác.
Tương tự như với bảng, cũng có hai chế độ làm việc với mẫu hỏi, đó là chế độ thiết kế và chế độ trang dữ liệu. Kết quả thực hiện mẫu hỏi cũng đóng vai trò như một bảng và có thể tham gia vào việc tạo bảng, biểu mẫu, tạo mẫu hỏi khác hoặc tạo báo cáo.
b) Biểu thức
Để thực hiện tính toán và kiểm tra điều kiện, trong Access có công cụ để viết các biểu thức, bao gồm các toán hạng và các phép toán.
Các phép toán thường dùng bao gồm:
+, -, *,/ (phép toán số học)
<, >, <=,=,=, <> (phép so sánh)
AND, OR, NOT (phép toán lôgic)
Toán hạng trong các biểu thức có thể là:
- Tên trường (đóng vai trò các biến) được ghi trong dấu ngoặc vuông, ví dụ: [Toan], [LUONG],
- Hằng số, ví dụ 0.1; 1000000,...
- Hằng văn bản, được viết trong dấu nháy kép, ví dụ "Nam", "Nữ",...
- Hàm (sum, avg, max, min, count,...).
Biểu thức số học được sử dụng để mô tả các trường tính toán trong mẫu hỏi.
Ví dụ
MAT_DO: [SO_DAN]/[DIEN_TICH]
TIEN_THUONG: [LUONG] * 0.1
Biểu thức lôgic được sử dụng trong các trường hợp sau:
- Thiết lập bộ lọc cho bảng;
- Thiết lập điều kiện lọc để tạo mẫu hỏi.
Ví dụ
Trong CSDL quản lí học sinh, có thể tìm các học sinh là nam, có điểm trung bình môn Tin từ 8,5 trở lên bằng biểu thức lọc:
[GT] = "Nam" AND [Tin] >= 8.5
c) Các hàm
Có thể tiến hành gộp nhóm các bản ghi theo những điều kiện nào đó rồi thực hiện các phép tính trên từng nhóm này. Access cung cấp một số hàm thống kê thông dụng áp dụng cho các nhóm, gọi tắt là các hàm gộp nhóm, trong đó có:
SUM Tính tổng;
AVG Tính giá trị trung bình;
MIN Tìm giá trị nhỏ nhất;
MAX Tìm giá trị lớn nhất;
COUNT Đếm số giá trị khác trống (Null).
Bốn hàm đầu tiên chỉ thực hiện trên các trường kiểu số.
2. Tạo mẫu hỏi
Để làm việc với mẫu hỏi, chọn Queries trong bảng chọn đối tượng.
Có thể tạo mẫu hỏi mới bằng cách dùng thuật sĩ hoặc tự thiết kế. Các bước chính để tạo một mẫu hỏi bao gồm:
- Chọn dữ liệu nguồn (các bảng và mẫu hỏi khác) cho mẫu hỏi;
- Chọn các trường từ dữ liệu nguồn để đưa vào mẫu hỏi;
- Khai báo các điều kiện cần đưa vào mẫu hỏi để lọc các bản ghi;
- Chọn các trường dùng để sắp xếp các bản ghi trong mẫu hỏi;
- Tạo các trường tính toán từ các trường đã có;
- Đặt điều kiện gộp nhóm.
Chú ý : Không nhất thiết phải thực hiện tất cả các bước này.
Có hai chế độ thường dùng để làm việc với mẫu hỏi: chế độ thiết kế và chế độ trang dữ liệu.
Trong chế độ thiết kế, ta có thể thiết kế mới hoặc xem hay sửa đổi thiết kế cũ của mẫu hỏi. Trên hình 51 là thanh công cụ thiết kế mẫu hỏi.
Hình 51. Thanh công cụ thiết kế mẫu hỏi
Để thiết kế mẫu hỏi mới, thực hiện một trong hai cách sau:
- Cách 1: Nháy đúp vào Create query in Design view.
- Cách 2: Nháy đúp vào Create query by using wizard.
Hình 52. Mẫu hỏi ở chế độ thiết kế
Để xem hay sửa đổi thiết kế mẫu hỏi, thực hiện:
1. Chọn mẫu hỏi cần xem hoặc sửa.
2. Nháy nút .
Trên hình 52 là cửa sổ mẫu hỏi ở chế độ thiết kế. Cửa sổ gồm hai phần, phần trên (nguồn dữ liệu) hiển thị cấu trúc các bảng (và các mẫu hỏi khác) có chứa các trường được chọn để dùng trong mẫu hỏi này. Phần dưới là lưới QBE (Query By Example - mẫu hỏi theo ví dụ), nơi mô tả điều kiện mẫu hỏi. Mỗi cột thể hiện một trường sẽ được sử dụng trong mẫu hỏi. Dưới đây ta xét nội dung của từng hàng.
- Field: Khai báo tên các trường được chọn. Đó là các trường sẽ có mặt trong mẫu hỏi hoặc các trường chỉ dùng để lọc, sắp xếp, kiểm tra giá trị,...
- Table: Tên bảng hoặc mẫu hỏi chứa trường tương ứng.
- Sort: Xác định (các) trường cần sắp xếp.
- Show: Xác định (các) trường xuất hiện trong mẫu hỏi.
- Criteria: Mô tả điều kiện để chọn các bản ghi đưa vào mẫu hỏi. Các điều kiện được viết dưới dạng biểu thức lôgic.
Khi đang ở chế độ thiết kế mẫu hỏi, ta có thể thực hiện mẫu hỏi để xem kết quả bằng cách nháy nút hoặc nút hoặc chọn lệnh View → Datasheet View.
3. Ví dụ áp dụng
Khai thác CSDL "Quản lí học sinh", cần tạo mẫu hỏi cho biết danh sách học sinh có các điểm trung bình ở tất cả các môn từ 6,5 trở lên:
1. Nháy đúp vào Create query in Design view.
2. Chọn bảng HOC_SINH làm dữ liệu nguồn.
3. Nháy đúp chuột vào các trường MaSo, HoDem, Ten, Toan, Li, Hoa, Van, Tin trong bảng HỌC_SINH để đưa vào mẫu hỏi.
4. Trong lưới QBE, trên dòng Criteria, tại các cột Toan, Li, Hoa, Van, Tin gõ: >=6.5.
5. Nháy nút để thực hiện mẫu hỏi và xem kết quả (h. 53).
Hình 53. Ví dụ về kết quả thực hiện mẫu hỏi trên hình 52