Làm việc với Vấn tin (Query)

pdf 45 trang ngocly 2210
Bạn đang xem 20 trang mẫu của tài liệu "Làm việc với Vấn tin (Query)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdflam_viec_voi_van_tin_query.pdf

Nội dung text: Làm việc với Vấn tin (Query)

  1. 1 Làm việc với Vấn tin (Query)
  2. 2 Khi đã có được những dữ liệu lưu trữ dưới dạng cơ sở dữ liệu là các bảng, thì vấn đề tiếp theo là làm sao khai thác, truy xuất những dữ liệu này : như tìm kiếm dữ liệu, thông kê, tổng hợp dữ liệu để làm các báo cáo. Để làm những việc trên bạn cần tìm hiểu query là một công cụ hỗ trợ khai thác dữ liệu. Với việc sử dụng Query, bạn có thể trả lời được rất nhiều câu hỏi cụ thể về dữ liệu mà bạn hiện có, trong khi việc đó sẽ rất khó khăn nếu bạn truy cập thẳng vào các bảng. Bạn có thể sử dụng các Query để lọc dữ liệu, thực hiện những phép tính với dữ liệu hoặc tóm tắt dữ liệu Bạn có thể vấn tin để xem dữ liệu theo nhiều cách khác nhau, hoặc để phân tích dữ liệu, hay thậm chí để sửa đổi dữ liệu. Bạn cũng có thể sử dụng các Query để tự động quản lý dữ liệu và xem xét các thay đổi trong dữ liệu trước khi cho phép thực hiện những thay đổi đó.Do vấn tin đặt nền tảng trên bảng nên bạn còn có thể dùng vấn tin như là một nguồn để để tạo ra biểu mẫu và báo biểu. Có một số loại vấn tin được mô tả như sau: Kiểu vấn tin Mô tả Vấn tin chọn số liệu Truy xuất dữ liệu cụ thể từ một hay nhiều bảng, sau đó hiển thị dữ (Select Query) liệu trong bảng vấn tin theo thứ tự do bạn chỉ định. Đây là loại vấn tin được dùng nhiều nhất. Vấn tin tạo ra bảng Dung vấn tin này có thể trích lọc dữ liệu từ các bảng sẳn có để tạo mới( Make Table ) ra một bảng dữ liệu khác Vấn tin cập nhật dữ liệu cho phép tự động điều chỉnh nội dung bảng. thong thường sẽ kết (Update) hợp với điều kiện Them mẫu tin Vấn tin thực hiện thêm mẫu tin mới vào bảng. có thể từ công
  3. 3 (Append query) thức tính toán. Hay từ những bảng khác Vấn tin xóa mẫu tin Vấn tin xóa mẫu tin của các bảng. thong thường được kết hợp với Delete các điều kiện để xóa dữ liệu Vấn tin tổng hợp (total Vấn tin là các tổng hợp, thông kê dữ liệu , trong một bảng hay query) nhiều bảng (đây là dạng đặc biệt của vấn tin chọn số liệu) Vấn tin tham chiếu chéo Gom lượng lớn dữ liệu lại theo chủng loại, hiển thị dữ liệu theo (Cross tab Query) dạng bảng tổng hợp có nhiều dòng, cột. Vấn tin theo thông số Bảng vấn tin khi khởi động xuất hiện hộp thoại yêu cầu bạn nhập (Parameter Query) thông tin vào, thường là điều kiện để đưa ra kết qủa tìm kiếm được. Ví dụ thông số nhập vào là ngày bắt đầu và ngày kết thúc một tác vụ nào đó. Vấn tin hành xử Vấn tin khi thực hiện sẽ tạo thay đổi cùng lúc cho nhiều records, (Action Query) vấn tin hành xử không hiển thị kết quả ra màn hình. Có bốn kiểu vấn tin hành xử: make-table: tạo ra bảng mới từ dữ liệu của một hay nhiều bảng được chọn, update query sửa đổi đồng loạt nhiều records, append query Thêm một hay nhiều records từ một hay nhiều bảng vào cuối một hay nhiều bảng khác. Vấn tin bằng lệnh SQL Được tạo ra từ một lệnh của SQL (Structured Query Language), SQL Query Đây là một loại ngôn ngữ lập trình cao cấp được dùng trong Access. Một Query là một yêu cầu đến cơ sở dữ liệu và kết quả trả về là dữ liệu hoặc hoạt động (Action) diễn ra trên cơ sở dữ liệu đó. Bạn có thể sử dụng một Query (truy vấn) để trả lời một câu hỏi đơn giản, thực hiện phép tính, kết hợp dữ liệu từ các bảng khác nhau, hoặc thậm chí có thể thêm, thay đổi, hoặc xoá các bảng dữ liệu. Các truy vấn mà bạn sử dụng để lấy dữ liệu từ một bảng hoặc để thực hiện các phép tính được gọi là truy vấn lựa chọn. Các truy vấn mà thêm, thay đổi, hoặc xóa dữ liệu được gọi là truy vấn hành động. Trong phân này chúng tôi sẽ cung cấp cho các bạn những thông tin cơ bản về các truy vấn cùng với nó là các ví dụ về các loại hình khác nhau của các truy vấn. Bạn cũng có thể sử dụng truy vấn để cung cấp dữ liệu cho một Form hoặc một Report. Một cơ sở dữ liệu được thiết kế tốt thì dữ liệu mà bạn muốn để hiển thị lên Form hoặc Report thường nằm ở một số bảng khác nhau. Bằng cách sử dụng truy vấn, bạn có thể liên kết các dữ liệu mà bạn muốn sử dụng lại với nhau trước khi đưa lên Form hoặc Report. Xuyên suôt trong chương này chúng tôi sử dựng CSDL quản lý nhân viên ABC2000 Có thể quan sát CSDL này
  4. 4 Và các query đã tạo sẳn 3.1. Tìm kiếm một nhóm dữ liệu trong bảng
  5. 5 Đôi khi bạn muốn xem xét tất cả dữ liệu từ một bảng, nhưng ở những lần khác, bạn lại chỉ muốn xem dữ liệu ở một số trường, hoặc bạn lại muốn xem một một số trường nhưng phải đáp ứng một vài tiêu chí nào đó, Với những yêu cầu như vậy bạn có thể sử dụng các truy vấn. Giả sử bạn muốn xem xét một danh sách nhân viên và các thong tin chi tiết lương của họ. Bạn có thể tạo một truy vấn mà trả về thong tin chi tiết lương của nhân viên như sau: Bước 1: Mở CSDL ABC2000. Bước 2: Trên Tab Create tìm tới nhóm Other nhấp chọn Query Design. Bước 3: Trên hộp thoại Show Table tìm tới Tab Tables chọn Nhanvien rồi nhấp Add. Bước 4: Nhấp Close để đóng hộp thoại Show Table. Bước 5: Trên màn hình thiết kế Query tìm tới bảng nhanvien, nhấp đúp chuột lên bốn trường là họ (ho), tênnhân viên (ten), hệ số lương( HSluong) và tiền lương (luong) để thêm trường đó vào lưới thiết kế Query. Sau khi nhấp chọn hai trường trong bảng Products kết quả sẽ được như hình dưới đây:
  6. 6 Bước 6: Trên Tab Design trong nhóm Results nhấp chọn Run để chạy thử Query. Kết quả sẽ được như hình dưới đây:
  7. 7 3.2. Xem dữ liệu đồng thời từ nhiều bảng Những bảng biểu được thiết kế tốt thường mang theo các mối quan hệ với các bảng khác. Những mối quan hệ này tồn tại trên cơ sở các bảng có chung trường quan hệ. Khi bạn muốn xem dữ liệu từ nhiều bảng liên quan bạn có thể sử dụng truy vấn lựa chọn. Giả mà bạn muốn kiểm tra thong tin của một nhân viên làm việc tại phòng ban nào trong công ty. Dữ liệu về nhân viên và phòng ban được lưu trữ trong hai bảng trên cùng một cơ sở dữ liệu. Bảng nhân viên có phòng (Phong) và bảng phongban có mã phòng (maphong) giống nhau, và hai bảng này quan hệ với nhau. Bạn có thể tạo một truy vấn mà kết quả trả về là những nhân viên làm ở phòng hành chánh cụ thể như các bước dưới đây: Bước 1: Mở ABC2000. Bước 2: Trên Tab Create, trên nhóm Other, nhấp chọn Query Design. Bước 3: Trong hộp thoại Show Table, trên Tab Tables nhấp đúp chuột vào bảng NHANVIEN và PHONGBAN.
  8. 8 Bước 4: Nhấp nút Close để đóng hộp thoại Show Table. Kết quả sẽ được như hình dưới đây: Chú ý: Giữa hai bảng có một đường Line kết nối giữa trường phong của bảng nhân viên NHANVIEN và MAPHONG của bảng phongban. Đây là đường Line hiển thị mối qua hệ giữa hai bảng.
  9. 9 Bước 5: Trong bảng NHANVIEN, nhấp đúp chuột vào trường ho và ten để thêm những trường đó vào phần lưới thiết kế Query. Bước 6: Trên lưới thiết kế Query, trên cột chứa trường phong, bỏ tích chọn trên hàng Show của cột này. Bước 7: Trên dòng Criteria của cột PHONG, bạn gõ vào giá trị là ‘PHC’ (mã của phòng hành chánh). Xóa tích chọn ở dòng Show để kết quả trả về của Query không hiển thị thông tin này, và gõ điều kiện ‘PHC’ trên dòng Criteria để kết quả trả về của Query chỉ lấy những nhân viên ở phòng hành chánh. Bước 8: Trên bảng Phongban nhấp đúp vào trường tên phòng để bổ sung thêm 2 trường này lên lưới thiết kế Query. Kết quả trên lưới sẽ được hiển thị như hình dưới đây: Bước 9: Trên Tab Design tìm tới nhóm Results nhấp Run để chạy báo cáo. Kết quả Query trả về như hình dưới đây:
  10. 10 Bước 10: Nhấp tổ hợp phím Ctrl + S để lưu lại Query, một hộp thoại thông báo xuất hiện bạn nhập vào tên cho Query là nhân viên theo phòng ban rồi nhấp Ok. 3.3. Sử dụng Parameters với Query Đôi khi bạn muốn chạy một truy vấn mà chỉ hơi khác với một yêu cầu tìm kiếm hiện tại. Bạn có thể thay đổi truy vấn nguyên thủy để sử dụng điều kiện mới của bạn, nhưng nếu bạn thường xuyên muốn chạy các biến thể của một truy vấn cụ thể, hãy cân nhắc việc sử dụng một tham số truy vấn. Khi bạn chạy một tham số truy vấn, truy vấn sẽ nhắc bạn điền giá trị vào cho trường, nó sẽ sử dụng giá trị mà bạn vừa cung cấp để tạo ra các điều kiện (Criteria) cho truy vấn của bạn. Trong ví dụ trước, bạn đã tạo ra một truy vấn mà kết quả trả về là nhân viên làm việc tại phòng hành chánh . Bạn có thể chỉnh sửa truy vấn để thông báo cho người dùng nhập vào phòng ban cần tìm, trong khi chạy truy vấn. Dưới đây là các bước tạo một truy vấn như vậy. Bước 1: Mở Database ABC2000 Bước 2: Nhấp chọn Shutter Bar để hiển thị Pane Navigation Bước 3: Trong Pane Navigation, nhấp phải chuột vào Query có tên nhanvientheophongban mà bạn đã tạo ở phần trước, menu xuất hiện chọn Design View. Bước 4: Trong lưới thiết kế Query, ở dòng Criteria của cột maphong xóa bỏ giá trị ‘PHC’ nhập vào nội dung [phong nao?], chuỗi [phòng nào] là nội thông báo cho Parameters của bạn. Dấu ngoặc vuông cho thấy rằng bạn muốn truy vấn hiển thị thông báo về Parameter cần nhập vào, và nội dung văn bản (trong trường hợp này: phong nào?) Là một câu hỏi hiển thị trên thông báo.
  11. 11 Bước 5: Trên Tab Design tìm tới nhóm Results, nhấp Run để chạy thử Query. Access sẽ hiển thị hộp thoại yêu cầu nhập vào thành phố mà bạn muốn xem. Bước 6: Giả sử ở đây bạn nhập ‘PKT’ rồi nhấp Enter chúng ta sẽ được kết quả như hình dưới đây.
  12. 12 Bước 7: Nếu như bạn không muốn nhập vào đó giá trị chính xác, để tham số có thể mềm dẻo hơn, bạn có thể sử dụng ký tự đại diện trong chuỗi điều kiện (Criteria). Để làm được điều này bạn thực hiện tiếp các bước dưới đây. Bước 8: Từ Tab Home tìm tới nhóm Views chọn nút View trên nút lệnh đổ xuống bạn chọn Design. Bước 9: Trên lưới thiết kế Query tại dòng Criteria của cột City bạn nhập vào nội dung dưới đây: Like [phong nào?]&"*"
  13. 13 Trong nội dung thông báo này, từ khóa Like, toán tử & và dấu (*) cho phép cho phép người sử dụng gõ vào một giá trị mà có sự kết hợp giữa các ký tự với nhau để trả về nhiều hơn các kết quả. Ví dụ, nếu người dùng gõ vào ký tự (*), truy vấn sẽ trả về tất cả các phòng ban, nếu người sử dụng các loại “PH”, truy vấn sẽ tìm kiếm và trả lại tất cả các phòng mà có mã bắt đầu bằng chữ "PL" và nếu người dùng gõ * H *, truy vấn trả về tất cả các phòng mà tên chứa chữ "H". Bước 11: Trên Tab Design tìm tới nhóm Result nhấp chọn Run. Dưới đây là kết quả khi bạn gõ vào ô Parameter là *.
  14. 14 3.4. Thực hiện tính toán trên cơ sở dữ liệu Thông thường bạn không sử dụng bảng để lưu trữ các trường tính toán bởi vì những giá trị đó có thể được dựa trên rất nhiều thông tin ở các bảng khác nhau trong cùng một cơ sở dữ liệu. Ví dụ, bảng nhân viên không lưu giữ giá trị tổng lương mà nhân viên nhận được, bởi nó được tính toán từ các trường Lương,phụ cấp cũng trong bảng này. Trong một số trường hợp, các trị tính toán sẽ trở nên không phù hợp, lỗi thời (out-of-date), bởi vì các giá trị tạo nên nó đã thay đổi. Ví dụ, bạn không muốn để lưu lại độ tuổi của ai đó trong một bảng, bởi vì mỗi năm bạn sẽ cần phải cập nhật lại những giá trị đó, thay vào đó, bạn có thể lưu trữ ngày tháng năm sinh của người này, sau đó khi cần sử dụng bạn chỉ cần viết một truy vấn tính ra tuổi của người đó dựa trên dữ liệu ngày tháng năm sinh và ngày hiện tại. Bạn sử dụng thủ tục sau đây để tính tổng con sản phầm dựa trên dữ liệu từ bảng NHANVIEN. Bước 1: Mở cơ sở dữ liệu ABC2000 Bước 2: Trên Tab Create, tìm tới nhóm Other chọn Query Design. Bước 3: Trong hộp thoại Show Table, trong tab Tables, nhấp đúp chuột chọn Order Details.
  15. 15 Bước 4: Nhấp Close để đóng của sổ này Bước 5: Trên bảng Nhân viên, nhấp đúp chuột vào trường MANV để thêm trường vào cột đầu tiên trên lưới thiết kế Query. Bước 6: Ở cột thứ 2 trên lưới thiết kế Query, nhấp phải chuột vào hàng Field rồi chọn Zoom.
  16. 16 Hộp thoại Zoom xuất hiện. Bước 7: Trong hộp thoại Zoom, gõ vào đó nội dung dưới đây. Tong Luong: ([LUONG]+[PHUCAP] Nhấp Ok để chấp nhận giá trị. Bước 8: Trên Tab Design chọn tới nhóm Results, rồi nhấp Run.
  17. 17 Kết quả sẽ được như hình dưới đây Bước 9: Cuối cùng nhấp Ctrl + S để lưu lại Query, trong hộp thoại nhắc nhập tên bạn nhập vào tên cho Query là: Bangluong. 3.5. Tổng hợp hoặc tính tổng dữ liệu Khi bạn sử dụng bảng để ghi lại các giao dịch hoặc lưu trữ dữ liệu phát sinh, tại một thời điểm nào đó bạn hoàn toàn có thể tổng hợp, thống kê chúng ví như tính tổng hay trung bình,
  18. 18 Microsoft Office Access 2007 cung cấp một tính năng mới, một dòng tổng cộng, cho phép bạn tổng hợp dữ liệu một cách đơn giản trong bất kỳ Datasheet nào như Form, Query, Report, Hãy thử chức năng này bằng cách thêm một dòng tổng cộng vào Query Bangluong mà bạn vừa tạo ở phần trước. Bước 1: Chạy Query Bangluong ở chế độ hiển thị Datasheet View. Bước 2: Trên Tab Home, trong nhóm Records nhấp chọn Totals. Một dòng mới xuất hiện phía dưới đáy của Datasheet với dòng chữ Total ở cột đầu tiên.
  19. 19 Bước 3: Nhấp chọn vào Cell đầu tiên ở dòng cuối cùng của Datasheet (dòng Total). Vì đây là dữ liệu kiểu Text vì vậy chỉ có hai lựa chọn cho bạn tổng hợp dữ liệu là None và Count, ở đây bạn chọn Count. Bước 4: Tiếp tục nhấp chọn ô ở cột thứ 2.
  20. 20 Vì đây là trường số nên bạn có rất nhiều lựa chọn để tổng hợp dữ liệu, trong trường hợp này bạn chọn Sum để tính tổng cột Subtotal. Bước 5: Kết quả cuối cùng Query sẽ hiển thị như hình dưới đây. Tạo ra một Query tính tổng phức tạp hơn Dòng tổng cộng mà các bạn vừa thực hiện trên Datasheet có thế mạnh riêng của nó truy nhiên đối với những câu hỏi phức tạp hơn bạn nên sử dụng Query tổng cộng. Query tổng cộng bản chất là một Query lựa chọn mà cho phép bạn có thể nhóm hoặc tổng hợp dữ liệu. Ví dụ, giả sử bạn muốn xem tổng số lương trên mỗi phòng ban. Trong Query tổng cộng bạn có thể sử dụng hàm Sum là một trong những hàm thống kê ( SUM, COUNT, AVG, ) để xem tổng lương theo từng phòng ban. Sử dụng các thủ tục sau đây để sửa query Bảng lưong để nó có tổng hợp tiền lương theo từng Phòng ban. Bước 1: Chọn tới Query BANGLUONG và mở nó ở chế độ Design View.
  21. 21 Bước 2: Từ Tab Design chọn tới nhóm Show/Hide nhấp chọn Totals. Một dòng Totals sẽ xuấy hiện trên lưới thiết kế Query.
  22. 22 Chú ý: Mặc dầu cùng tên nhưng dòng Totals trên lưới thiết kế và dòng Total trên Datasheet không giống nhau. xóa cột MANV và them cột PHONG và trong query để thực hiện thong kê theo từng phòng ban
  23. 23 Bước 3: Ở cột thứ 2 trên lưới thiết kế Query, trên dòng Total bạn chọn giá trị Sum trong hộp Combo đổ xuống. Bước 4: Trên Tab Design tìm tới nhóm Result chọn Run để chạy thử Query, kết quả sẽ được như hình dưới đây:
  24. 24 Bước 5: Cuối cùng nhấp Ctrl + S để lưu lại Query 3.6. Tạo một bảng từ nhiều bảng khác. Bạn có thể sử dụng make-table query để tạo một bảng mới từ dữ liệu được lưu trữ ở nhiều bảng khác. Ví dụ, giả sử bạn muốn một bảng nhân viên bao gồm cả trình độ và tình trang sức khỏe của từng nhân viên trong phòng Kỹ thuật và bạn sử dụng Access để lập báo cáo. Thay vì gửi cho họ tất cả các dữ liệu, bạn muốn giới hạn những dữ liệu được gửi đi chỉ là những nhân viên của phòng kỹ thuật mà thôi. Bạn có thể xây dựng một Query lựa chọn chỉ chứa những nhân viên thuộc phòng kỹ thuật , và sau đó sử dụng Query này để tạo một bảng dữ liệu mới. Dưới đây là các bước thực hiện những công việc đó. Bước 1: Mở cơ sở dữ liệu ABC2000 Bước 2: Để chạy một make-table query, bạn cần phải kích hoạt tính năng enable the database content nếu trước đó bạn mở nó ở chế độ Untrusted. Bạn nhấp chọn Options trên thanh Message Bar, xuất hiện phía dưới Ribbon.
  25. 25 Bước 2: Trên Tab Create tìm tới nhóm Other nhấp chọn Query Design. Bước 3: Trong hộp thoại Show Table nhấp đúp vào mục nhanvien,ttyt và trinhdo. Bước 5: nhấp Close để đóng hộp thoại Show Table. Bước 6: Trên bảng Orders bạn nhấp đúp vào lần lượt các trường họ, ten, tenTD, bệnh, phong để bổ sung những trường này lên lưới thiết kế Query.
  26. 26 Bước 7: Ở cột phong trên lưới thiết kế Query, xóa bỏ nút Check ở dòng Show. Trên dòng Criteria bạn gõ vào giá trị ‘PKT’. Chạy thử Query để biết kết quả truy vấn trước khi chúng ta tạo bảng Bước 8: Trên Tab Design tìm tới nhóm Results nhấp chọn Run, kết quả Query trả về như hình dưới đây:
  27. 27 Bước 9: Bây giờ hãy lưu Query lại với tên nhanvienchitiet. Bước 10: Trên Tab Home tìm tới nhóm Views nhấp chọn View trong hộp Combo đổ xuống bạn chọn Design View. Bước 11: Trên Tab Design tìm tới nhóm Query Type bạn chọn Make Table.
  28. 28 Hộp thoại Make Table xuất hiện như hình dưới đây: Bước 12: Trong hộp thoại này bạn tìm tới ô Table Name gõ vào đó để đặt tên cho bảng mới là Thông tin chi tiết nhân viên (TTCTNV) và nhấp Ok.
  29. 29 Bước 13: Trên Tab Design tìm tới nhóm Results chọn Run. Bước 14: Một hộp thoại xác nhận xuất hiện bạn chọn Yes. Một bảng mới sẽ được tạo trong Pane Navigation. 3.7. Thêm dữ liệu vào bảng từ nhiều bảng khác. Bạn có thể sử dụng một Append Query để lấy dữ liệu từ một hoặc nhiều bảng vào một bảng khác. Giả sử công ty của bạn được sát nhập với 1 công ty ABC. Vì thế danh sách nhân viên ở CSDL mới sẽ gồm những nhân viên ở công ty ABC và danh sách các nhân viên của công ty bạn. làm thế nào sát nhập danh sách cho 2 công ty ?. Để làm việc này ta cần có 2 bảng dữ liệu có dữ liệu nhưng trường giống nhau về cấu trúc. Rồi dung Append query để thực hiện việc sát nhập này. Có một số dạng như sau „ Lấy mẫu tin của một bảng để đưa vào một bảng khác
  30. 30 Hạn chế ở một số cột Lấy theo điều kiện Để minh họa ở đây có 1 bảng danh sách nhân viên (NVmoi) của công ty mới muốn sát nhập vào bảng nhânviên (NHANVIEN) nhưng chỉ nhận những người nào là nam thôi Chú ý: trong bảng này nếu có khóa chính thì có thể bị trùng thì query sẽ không thực hiện chính xác Bước 1: Mở Query mới có tên nhapmoibang ở chế độ Design. Chọn bảng NVmoi trong lưới QBE. Bước 2: Trên Tab Design tìm tới nhóm Query Type nhấp chọn Append, hộp thoại Append xuất hiện.
  31. 31 Trong Combo Table Name bạn chọn NHANVIEN (bảng sẽ chứa dữ liệu toàn bộ)sau đó nhấp Ok. Khi hộp thoại Append đóng lại trên lưới Design xuất hiện thêm dòng Append và dòng Show biến mất. Bước 3: Trên lưới thiết kế ở dòng Criteria của cột phai, chon giá trị 1 (nam) .
  32. 32 Bước 4: Trên dòng Append To chọn trường thích hợp cho từng cột. Trong ví dụ này các trường đều có tên giống như các cột. Bước 5: Trên Tab Design tìm tới nhóm Result chọn Run để chạy thử Query. 3.8. Chỉnh sửa dữ liệu tự động Bạn có thể sử dụng một Query Update để thay đổi dữ liệu trong các bảng của mình, và bạn có thể sử dụng các yêu cầu tìm kiếm với Query này để chọn ra những dòng đặc biệt cần được thay đổi. Query Update cung cấp cho bạn một cơ hội để xem xét các dữ liệu cần thiết trước khi thực hiện việc cập nhật. Chú ý: Một hành động của Query khi thực hiện sẽ không thể hoàn tác vì vậy bạn cần phải xem xét để Back up dữ liệu của bất cứ bảng nào mà bạn sẽ cập nhật lại bằng cách sử dụng Query Update. Giả sử nhân ngày 8/3, để mừng ngày quốc tế phụ nữ công ty muốn thưởng cho những nhân viên nữ them 1triệu đồng mỗi người. để thực hiện điều này phải cộng thêm cho phần phụ cấp (PHUCAP) của những nhân viên có phái bằng 0 (nữ) 1 triệu. Chúng ta sẽ sử dụng update query. Dưới đây là các bước thực hiện: Bước 1: Mở cơ sở dữ liệu ABC2000 Bước 2: Trên Tab Create, tìm tới nhóm Other chọn Query Design. Bước 3: Trong hộp thoại Show Table, trong tab Tables, nhấp đúp chuột chọn Order Details.
  33. 33 Bước 4: Nhấp Close để đóng của sổ này Bước 5: chọn trong phần query type là update Lưới QBE sẽ có
  34. 34 Bước 6: vì quân tâm đến 2 trường là phái và phụ cấp, tuy nhiên chỉ thay đổi ở trường phụ cấp nên chọn vào lưới QBE trường phụ cấp
  35. 35 Bước 7: vì mỗi người sẽ nhận được 1 triệu nên phần update to viết công thức [Nhanvien]![phucap]+1000000 Bước 8 : điều kiện cập nhật chi cho những người nào là nữ có nghĩa phải bằng 0 hay false Vì thế điều kiện sẽ là [nhanvien]!phai=false
  36. 36 Bước 10: thực thi query để cập nhật dùng run trên thanh công cụ Bước 11: access sẽ thong báo số lượng record sẽ được update Bấm yes để xác nhận. Bước 12; save query này lại để sử dụng lại lần sau
  37. 37 Bước 13: mở bảng nhân viên kiểm tra kết quả 3.9. Xóa dữ liệu tự dộng Bạn có thể sử dụng một Query Delete để xóa dữ liệu trong các bảng, và bạn cũng có thể sử dụng một Query Delete với các điều kiện tìm kiếm để có thể xóa những bản ghi đặc biệt. Một Query Delete cung cấp cho bạn cơ hội để xem xét các bản ghi sẽ được xoá bỏ trước khi bạn thực hiện việc xóa dữ liệu. Giả sử công ty muốn sa thải những người nào có tuổi lớn hơn 55. Như thế trong CSDL sẽ không còn lưu những người có tuổi 55. Khi đó bạn sẽ thấy được tác dụng của Query Delete. Để xóa dung delete Query tuy nhiên như thế nào là người 55 tuổi? vấn đề là sẽ lấy năm hiện tay bằng hàm year (date()) còn năm sinh của một nhân viên thì lấy trường ngày sinh và lấy năm sinh ra bằng : year(ngaysinh). Nhu vậy tuổi sẽ được tính bằng công thức year (date())-year(ngaysinh) các bứơc thực hiên như sau : Bước 1: Mở cơ sở dữ liệu ABC2000 Bước 2: Trên Tab Create, tìm tới nhóm Other chọn Query Design. Bước 3: Trong hộp thoại Show Table, trong tab Tables, nhấp đúp chuột chọn Order Details. Bước 4: Nhấp Close để đóng của sổ này Bước 5: trong tab query type chon Delete query để thực hiện xóa dữ liệu
  38. 38 Bước 6: tại cột field se gõ công thức tính tuổi vào Tuoi:year (date())-year(ngaysinh) bước 7: vì điều kiện là những người nào trên 55 tuổi nên trong phần criteria (điều kiện) gõ điều kiện vào là >55
  39. 39 Bước 8: Trên Tab Design tìm tới nhóm Result nhấp chọn Run để chạy thử Query. Sẽ có thong báo số record sẽ bị xóa Bước 9 kiểm tra dữ liệu và lưu query lại để dùng cho lần sau 3.10 thông kê chéo
  40. 40 Trong thc t thì nhng báo cáo thng s dng nhng thng kê s liu. có 1 dng thng kê  nhiu trng theo 1 s liu tng kt thì thng s s dng thng kê xhéo (cross tab query) Gi s giám đc mun thng kê s nhân viên theo phòng ban tuy nhiên phân loi ra theo s ngi nam, hay n. kt qu nh sau : Phòng ban Nam N BGĐ 2 1 CH1 20 25 CH2 30 12 PHC 3 6 PKD 7 4  đây thy yêu cu thng kê theo s lng nhân viên theo phòng ban và phân loi theo nam và n riêng bit. thy rng phòng ban là mt trng và nam nh theo trng phái vì vy phi s dng thng kê chéo. Trong cross tab query có 2 thông tin cn quan tâm là row heading và column heading đây là 2 trng mình s là thong tin thong kê và mt trng s tính s liu  đây s chn row heading : phòng ban column heading theo phái thong kê s liu dung chính ct mã s ca nhân viên và đm (count) s lng cho thng kê Sau đây là các bc thc hin Bước 1: Mở cơ sở dữ liệu ABC2000 Bước 2: Trên Tab Create, tìm tới nhóm Other chọn Query Design. Bước 3: Trong hộp thoại Show Table, trong tab Tables, nhấp đúp chuột chọn Order Details.
  41. 41 Bước 4: Nhấp Close để đóng của sổ này Bước 5: chọn trong phần query type là crossrab query
  42. 42 Bước 6: chọn 3 field maNV, phai,phong cho thống kê này.
  43. 43 Bước 8: tại đây sẽ chọn Nhan vien: để đếm nhân viên cho thống kê Total: count Cross tab là value phái:làm tiêu đề cột Total: group by Cross tab :column heading Tuy nhiên do nếu chỉ có vậy thì cột sẽ có giá trị 0, 1 (hay true/fasle) vì thế thây đổi thành Expr1: IIf([phai]=True,"nam","nữ") phong:làm tiêu đề dòng Total: group by Cross tab :row heading
  44. 44 Bước 9: Trên Tab Design tìm tới nhóm Result nhấp chọn Run để chạy thử Query.
  45. 45 Bước 10 :lưu query lại để dùng cho lần sau Nh vy chúng ta đã tìm hiu qua các loi query và cách s dng. đây là cách th hin mà access xây dng sn cho ngi s dng tip cn các truy vn 1 cách t nhiên hn. Tht ra tt c các query có th đoc vit bng các loi câu lnh query bng ngôn ng sql nh: Select, insert, update,append,delete chúng ta s tìm hiu  các chng sau