Tạo các truy vấn query trong MS Access

Khái niệm về query trong Access, tạo các loại query để truy vấn, update tài liệu như select query, crosstab, total và các Action query như Update, Delete, Append

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 thi đưa ra dòng số liệu thống kê cho những nhóm tài liệu giống nhau, giá trị cần thống kê cho nhóm tài 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 lập 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 lập nhóm, ở ví dụ trên thì :

  • Cột TenKhoa, TENLOP là nhóm - vậy thiết lập nó
    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 hiệu 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 tài 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 tài liệu truy vấn. Khi chuyển là loại Query Make-table có hộp thoại Open, 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Ý KÊNH, XEM CÁC VIDEO TRÊN XUANTHULAB

Đăng ký nhận bài viết mới