Khái niệm và phần loại các Query trong Access

Query là các câu lệnh để tương tác với CSDL, nó là ngôn ngữ truy vấn có cấu trúc SQL. Để học riêng về SQL có thể xem: CÁC BÀI HỌC VỀ SQL . Trong Access nó có các công cụ nhằm nhanh chóng tạo ra các câu truy vấn SQL, sinh câu truy vấn SQL một cách trực quan và nhanh chóng. Với Access câu truy vấn SQL có thể phân thành các loại: Select query, Total Query, Crosstab query, Action query

  • Select query: truy vấn thông tin từ các bảng, tạo ra một tập các dòng kết quả (record) gọi là recordset, thường tập kết quả này dùng cho các Form, các báo cáo Report
  • Total query: loại truy vấn có chức năng tổng hợp dữ liệu dựa vào một số hàm thống kê cho một nhóm dữ liệu như đếm tổng record, tính giá trị trung bình, tính tổng ... Ví dụ, liệt kê các lớp học, mỗi lớp học tính tổng số học sinh.
  • Crosstab query: là loại truy vấn để thống kê, kết quả là bảng hai chiều có các cột theo giá trị truy vấn
  • Action query: là nhưng câu truy vấn có chức năng thay đổi các bảng dữ liệu như Make-Table (tạo bảng dữ liệu), Update (cập nhật bản ghi), Delete (xóa bản ghi), Append (thêm bản ghi)

Tạo Select Query trong Access

Bấm vào menu Create, chọn mục Design Query

Một hộp thoại Show Table xuất hiện, tại đây chọn những bảng có dữ liệu cần truy vấn rồi bấm vào Add

Màn hình để xây dựng Query chia làm hai phần, phần Khu vực các bảng truy vấn chứa các bảng, khu vực Lưới QBA (Query by example) chứa các trường tham gia vào truy vấn.

  • Mặc định sẽ xây dựng loại Select Query, nếu muốn thay đổi kiểu nhấn phải chuột, chọn Query type 1 tại đây có thể chọn các loại như Select Query, Update Query ...
  • Để thêm bảng vào truy vấn nhấn phải chuột chọn Show Table ... 2
  • Để thêm các trường (field) của bảng nào đó vào kết quả truy vấn, kích đúp vào tên trường, nó sẽ được đưa vào QBA. Ví dụ kích đúp vào trường Noisinh 3 thì tại QBE nó đã thêm vào: tại dòng Field là Noisinh, tại dòng Table là tên bảng HOCSINH
  • Khi muốn chạy kiểm tra kết quả truy vấn bấm vào View hoặc Run trên menu 4. Nếu Query hoàn thành có thể nhấn CTRL + S để lưu lại Query
  • Có thể đặt lại tên cột kết quả truy vấn, tại dòng Field có thể thay đổi với cấu trúc Tên cột:[Field] ví dụ: Họ:[Ho] 5, Tên:[Ten], Giới tính:GT
  • Các trường truy vấn cũng có thể thiết lập là một biểu thức, với cấu trúc Tên:nội dung biểu thức 6. Ví dụ tạo cột là Lớp nó là kết quả của việc nối chuỗi [NIENKHOA]![Tenkhoa] (Đây là cấu trúc trỏ đến một trường nào đó của bảng [tên bảng]![tên cột]) với chuỗi "-" (một chuỗi cụ thể viết trong dấu "") và chuỗi [LOP]![TENLOP] thì viết:
    Lớp:[NIENKHOA]![Tenkhoa] & "-" & [LOP]![TENLOP]
    Trong đó ký hiệu & là toán tử nối chuỗi. Còn nhiều toán tử khác để viết biểu thức.

    Để trợ giúp xây dựng biểu thức, tại cột cần xây dựng biểu thức bấm vào Builder, có một số toán tử xây dựng biểu thức như

    • Toán tử số học +-*/, ví dụ [Soluong] * [Dongia]
    • Toán tử so sánh như < <= > >= = Between In Like
    • Toán tử Logic như And Not Or
  • Dòng Sort của QBE để thiết lập sắp xếp, nếu chọn là Ascending 7 thì cột đó sắp sắp tăng dần, còn nếu chọn Descending thì sắp xếp giảm dần hoặc chọn (not sorted) là không sắp xếp.
  • Để lọc kết quả thì viết biểu thức lọc tại dòng Criteria, ví dụ tại 8 điền chuỗi "36-K1" thì cột Lớp sẽ lọc ra các giá trị bằng chuỗi đó. Nhập dữ liệu lọc tùy thuộc vào kiểu dữ liệu:
    • Text : nhập chuỗi trong "", ví dụ "Abc"
    • Date : #18-12-2000#
    • Number : 123
    Có nhiều toán tử như LIKE, so sánh ...
    • = toán tử só sánh bằng
    • < toán tử nhỏ hơn
    • <= toán tử nhỏ hơn hoặc bằng
    • > toán tử lớn hơn
    • >= toán tử lớn hơn hoặc bằng
    • <> toán tử so sánh khác
    • Between ... and ..., ví dụ Between #1-1-1983# And #31-1-1983#
    • Like ví dụ Like "*Vinh*"
    • Is Null là rỗng
    • Is Not Null khác rỗng
    • In(value1, value2 ...) ví dụ In("35-B1", "36-B1")

    Truy vấn có tham số (Parameter Query)

    Các giá trị đưa vào lọc Criteria có thể ấn định là tham số, giá trị sẽ nhập vào khi chạy. Nếu là tham số chỉ việc đưa nó vào dấu ngoặc vuông [tên tham số]

  • Dòng Show chọn cột dữ liệu đó có hiện thị ở kết quả bảng truy vấn hay không. Nhiều cột không cần chọn hiện thị, khi chỉ cần dùng nó như để lọc dữ liệu 9

Tạo Total Query - thống kê dữ liệu theo nhóm

Truy vấn này thực hiện đưa ra dòng số liệu thống kê cho những nhóm dữ liệu giống nhau, giá trị cần thống kê cho nhóm dữ liệu đó có các hàm như:

  • count - đếm tổng các record trong nhóm
  • sum - tổng giá trị trường cần thống kê
  • min/max - lấy giá trị nhỏ nhất, lớn nhất trong nhóm
  • avg - lấy giá trị trung bình

Ví dụ có truy vấn sau:

Truy vấn này liệt kê các học sinh (HOCSINHID) trong các lớp. Giờ nếu muốn thông kê, có bao nhiêu học sinh mỗi lớp thì bấm vào biểu tượng Total, thì trong QBE xuất hiện dòng total - tại đây thiết lập cá thông kê

Cần xác định trong các cột phải chỉ ra cột nào là cột cần thống kê, các cột còn lại dùng để xác định nhóm, ở ví dụ trên thì:

  • Cột TenKhoa, TENLOP là nhóm - vậy thiết lập nó là Group By
  • Cột HOCSINHID sẽ dùng thống kế, ở đây thống kê là đếm số lượng nên dùng hàm count

Như vậy kết quả thống kê như trên.

Tạo Crosstab Query

Để thiết lập là Crosstab, nhấn phải chuột và chọn Crosstab Query 1, lúc này xuất hiện dòng crosstabtotal 2

Crosstab bạn cần thiết lập các cột để phân nhóm (group by), trong những cột này thiết lập một cột để thống kê - các giá trị của nó sẽ chuyển thành tên cột thống kê Column Heading còn lại là Row Heading. Tiếp theo là một cột để thống kê với thiết lập crosstab là Value

  • Thiết lập Tenkhoa, TENLOP, Dantoc là các cột để phân nhóm với giá trị Total là Group by. Trong đó TenKhoa, TENLOP là Row Heading làm tiêu đề cột. Còn DanToc chuyển thành tiêu đề cột.
  • Thiết lập cột HOCSINHID với Crosstab là Value, với hàm thống kế là count.

Các Action Query

Các Action Query thực hiện việc cập nhật, sửa đổi dữ liệu. Sau khi viết các Query này để thi hành bấm vào Run để thi hành

Update Query

Loại Query này để cập nhật cho các Record. Ví dụ cập nhật trường Ten với giá trị là Hương, cho Record có HOCSINHID là 100

Giá trị cập nhật nhập tại dòng Update to, lục các Record cần cập nhật tại Criteria

Delete Query

Query này xóa các record. Ví dụ xóa Record có trường tên là "Abc"

Append Query

Query này nối dữ liệu vào bảng có sẵn

Make-Table Query

Query này để tạo ra bảng mới từ các dữ liệu truy vấn. Khi chuyển là loại Query Make-table có hộp thoại xuất hiện, hãy nhập tên bảng muốn tạo.

Tạo bảng gồm các cột TenKhoa, TenLop, Ho, Ten

Đăng ký theo dõi ủng hộ kênh