Thứ Bảy, 28 tháng 5, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 4 - Tạo một truy vấn chọn cơ bản

James Perry, Richard Newmark


Chương 4
Tạo và dùng câu truy vấn


Tạo một truy vấn chọn cơ bản


Câu truy vấn cung cấp các đặc trưng sắp xếp, lọc, và nối bảng hiệu quả, cho phép bạn hiển thị các dòng, cột, và giá trị đã chọn từ một hay nhiều bảng liên quan và hiển thị kết quả theo thứ tự một hay nhiều cột. Có lẽ đặc trưng quan trọng nhất của truy vấn là khả năng nối các bảng với nhau. Bằng việc dùng công cụ truy vấn, bạn có thể liên kết các bảng với nhau bằng cách qui định cột liên quan trong cặp bảng. Bằng cách dùng giao diện QBE (Query By Example, truy vấn qua ví dụ) dễ sử dụng, bạn tùy ý đặt tiêu chí chọn, biểu thức nhóm, và cột sắp xếp. Qui định bất kỳ về sắp xếp, lọc, hay nhóm có thể độc lập hoặc phối hợp với nhau. Chẳng hạn, bạn có thể qui định tiêu chí cho một cột truy vấn cụ thể để loại dữ liệu không cần; chọn tăng dần “Ascending” hay giảm dần “Descending” cho một hay nhiều cột trong câu truy vấn để kết quả được sắp theo thứ tự cột đã chọn. Bạn có thể qui định một bảng trong câu truy vấn, hay tạo truy vấn có độ phức tạp tùy ý nối hàng chục bảng. Các bảng nối phải được liên kết trên các trường liên quan. Điều này thường nghĩa là chọn khóa chính thuộc một bảng và khớp nó với khóa ngoại của bảng liên quan.

Một ví dụ truy vấn hai bảng đơn giản là câu truy vấn liệt kê tên và địa chỉ của tất cả các khách hàng có hóa đơn trễ hạn hơn 30 ngày. Tiêu chí chọn của câu truy vấn sẽ giới hạn việc tra cứu các dòng có giá trị InvoiceDate cách đây hơn 30 ngày. Chỉ cần hai bảng để tạo truy vấn có khả năng trả lời câu hỏi đó: tblCustomertblInvoice. Bảng đầu, tblCustomer, chứa các trường tên và địa chỉ, còn bảng liên quan tblInvoice chứa cột InvoiceDate là thời điểm xuất hóa đơn cho khách hàng. Hai bảng quan hệ theo khóa chính khóa ngoại. Khóa chính trong tblCustomer là CustID, còn khóa ngoại liên quan trong tblInvoice là CustomerID. Hãy để ý chi tiết sau: khóa chính và khóa ngoại phải khớp để kết hợp các dòng từ hai bảng liên quan, nhưng tên các trường khóa không nhất thiết phải trùng!

Việc tạo truy vấn không khó. Chương này cung cấp nhiều thực hành theo các bước sau đây để tra cứu thông tin từ dữ liệu bảng. Có một số cách tạo truy vấn, và đây là là danh sách các bước điển hình:

Kích CREATE tab rồi kích Query Design trong nhóm Queries.
Thêm bảng vào câu truy vấn từ hộp thoại Show Table.
Đặt trường bạn muốn trả về trong tập động dynaset vào dòng Field thuộc lưới QBE.
Nhập tiêu chí chọn nếu muốn để Access chỉ trả về những dòng khớp tiêu chí.
Nhập yêu cầu sắp xếp nếu muốn dưới cột bất kỳ xuất hiện trong dòng Field.
Kích nút Database View để kiểm tra sự tiến triển và duyệt lại kết quả.
Kích nút Design View, nếu cần, để chỉnh sửa câu truy vấn nhằm đạt kết quả mong muốn.
Thi hành câu truy vấn, in kết quả, và lưu câu truy vấn nếu bạn muốn sau này chạy lại.

Khi tạo truy vấn trên nhiều bảng, bạn theo các bước cơ bản được phác họa ở trên ngoại trừ bạn thêm nhiều bảng vào phần thiết kế truy vấn. Bạn không thể chọn bảng bất kỳ để tạo truy vấn. Các bảng được chọn phải có quan hệ với nhau. Bạn có thể chỉ định quan hệ giữa bảng này với bảng khác khi thiết kế câu truy vấn, hay bạn có thể thiết lập quan hệ thường trực hơn giữa các bảng trong cửa sổ Relationships.

Trước khi tiếp tục, hãy khảo sát tất cả các quan hệ bảng đã được thiết lập cho cơ sở dữ liệu Chương 4. Hình 4.2 hiển thị các bảng trong cơ sở dữ liệu Chương 4 và quan hệ giữa từng cặp bảng. Hãy dành thời gian khảo sát hình này.

Hình 4.2 Quan hệ giữa các bảng.


Quan sát rằng các bảng nào xuất hiện trong cửa sổ Relationships mà có quan hệ với nhau thì có đường nối khóa chính từ một bảng đến khóa ngoại của bảng mà nó quan hệ. Với mọi bảng trong Ch04.accdb, các quan hệ là một-nhiều (1-M). Chẳng hạn, tblCustomer (góc trái trên của Hình 4.2) ở “phía một” của quan hệ một-nhiều với tblInvoice. Điều đó nghĩa là mỗi bản ghi khách hàng trong bảng khách hàng có thể liên hệ với 0, 1, hay nhiều bản ghi hóa đơn khách hàng. Đường nối bảng thể hiện phía “một” của quan hệ bằng số 1 và kế khóa chính. Tương tự, Access hiển thị ký hiệu vô cực (∞) kế khóa ngoại của bảng để thể hiện phía “nhiều” của quan hệ. Dĩ nhiên, bất kỳ bảng đã cho có thể quan hệ với nhiều bảng khác trong cơ sở dữ liệu. Chẳng hạn, tblEmployee đã thiết lập mối quan hệ với ba bảng khác, gồm tblEmployeeDivision, tblEmployeeTitle, tblInvoice.

Bạn phải tự thiết lập quan hệ giữa các bảng. Có hai cách: Bạn có thể tạo quan hệ trong cửa sổ Relationships ở đó các quan hệ trở nên thường trực khi tạo truy vấn mới, hay có thể tạo quan hệ mỗi khi bạn tạo truy vấn. Trừ phi khóa chính trong một bảng trùng với khóa ngoại trong bảng khác, Access sẽ không tự động thiết lập quan hệ giữa các cặp bảng.

Ta sẽ bắt đầu bằng một truy vấn đơn bảng – truy vấn mà dữ liệu được tra cứu từ một bảng. Sau đó, bạn sẽ tạo những truy vấn phức tạp hơn gồm một số dòng và một số cột từ một bảng. Cuối cùng, bạn sẽ tạo truy vấn trích dữ liệu từ nhiều bảng liên quan.

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

Đăng nhận xét