Các thành phần cơ bản trong QBEField Thể hiện các cột, biểu thức trong truy vấn Table Tên bảng tương ứng của cột Sort Cho phép sắp xếp thứ tự cột tăng/ giảm Show Hiện hoặc ẩn cột Criteri
Trang 1Microsoft Access
Chương 4 Query
Trang 2Giới thiệu
Query là công cụ cho phép truy vấn và xử
lý dữ liệu, rút trích để hiển thị những thông tin cụ thể từ các Table và thay đổi dữ liệubằng nhiều cách khác nhau
Query còn được dùng để tạo nguồn số
liệu cơ sở cho các công cụ khác Form,
Report, kể cả Query khác
Trang 3Query Query
Nguồn dữ liệu
Để thực hiện Query, bắt buộc phải có
database , trong database phải có
table , và trong table phải có dữ liệu , và trong table phải có dữ liệu
Trang 4Một số thuật ngữ
sự hỗ trợ của Microsoft Access.
của Microsoft Access Chúng ta sẽ sử dụng cách này!
• Action Query: Là loại query có chức năng thay
đổi dữ liệu trong cơ sở dữ liệu
Trang 5Các loại Query thường dùng
1. Select query (query chọn số liệu)
2. Delete query (query xóa số liệu)
3. Update query (query cập nhật số liệu)
4. Append query (query nối số liệu)
5. Make-table query (query tạo ra table)
6. CrosTab query (querry tham chiếu chéo)
Trang 67. Find Duplicate query (query tìm các
record trùng lặp)
8. Find Unmatched query (query tìm các
record không khớp nhau)
9. Union query (query hợp số liệu)
10. Pass-through query (query chuyển giao)
11. Data-definition query (query định nghĩa
dữ liệu)
Các loại Query khác
Trang 7 B1: Chọn ngăn Query , click
Chọn Design View
Tạo Query bằng Design view
Click OK
Cách khác: click đúp vào Create query in Design
view trong ngăn Query.
Trang 8Các thành phần cơ bản trong QBE
Field Thể hiện các cột, biểu thức trong truy vấn
Table Tên bảng tương ứng của cột
Sort Cho phép sắp xếp thứ tự cột tăng/ giảm
Show Hiện hoặc ẩn cột
Criteria Biểu thức chứa điều kiện lọc
Or Hàm OR: kết hợp điều kiện hoặc để lọc
Trang 9 B2: Đưa các table/query nguồn vào (dùng hộp thoại Show table) Có thể mở hộp thoại này bằng cách click chuột phải vào khu vực chứa table/query rồi chọn Show Table.
B3: Lần lượt kéo thả các trường vào trong lưới QBE hoặc tự tạo thêm các trường tính toán mới.
B4: Thiết lập các điều kiện chọn dữ liệu.
B5: Click nút Datasheet View hoặc vào View\Datasheet view để xem kết quả.
Click nút Design View hoặc vào View\Design view để trở lại chế độ thiết kế.
Tạo Query bằng Design view
Trang 10Một số thao tác trên Query
1 Thêm hoặc xóa các bảng trong khi tạo Query
2 Chèn thêm dòng tên bảng vào QBE
3 Chèn thêm cột vào QBE
4 Xóa cột trong QBE
5 Tạo các cột tính toán (Calculated Field) hoặc một
biểu thức trong truy vấn
6 Xem trước kết quả (thực hiện Query)
7 Lưu Query
8 Sử dụng các tham số trong vùng QBE để lọc dữ
liệu
Trang 11Lưu ý
Tất cả các Table/Query tham gia trong Query phải được liên kết với nhau (có thể tạo kết
nối giữa các table trong Query)
Bảng dữ liệu nguồn phải có mặt trong danh sách các bảng tham gia truy vấn
Giá trị của khóa chính không hiển thị trùng
lắp
Trang 12Xây dựng Calculated Field
Đặt con trỏ tại cột muốn sử dụng Calculated Field
R-click chọn Build , hoặc click trên thanh công cụ
Chèn Field, Control (điều khiển ), Functions
(Hàm), Constants (Hằng)… và các toán tử từ các thành phần trong hộp thoại để xây dựng biểu thức
Trang 13 Tất cả những thành phần trong công thức phải có mặt trong các Table/Query nguồn của Query hiện tại
Nếu sử dụng một Field hoặc Control từ
Form hoặc Report thì phải mở Form hay Report đó trước
Lưu ý khi xây dựng Calculated Field
Trang 15Thực hiện
Thiết kế trước 1 select Query
View\Totals
hoặc R-Click vào vùng lưới QBE chọn Totals
hoặc biểu tượng Σ trên thanh công cụ Design
Sử dụng hàm tính toán tại dòng Totals để thực hiện các phép toán cho các cột trong truy vấn
Truy vấn nhóm dữ liệu
Trang 16Các hàm tính toán trong Totals
Group by: Trường dùng để nhóm dữ liệu
Sum: Tính tổng
Max/min: hàm lấy giá trị lớn nhất/nhỏ nhất
Avg: hàm lấy giá trị trung bình
Count: hàm đếm giá trị
First: lấy mẫu tin đầu tiên
Last: lấy mẫu tin cuối cùng
Where: Trường điều kiện
Expression: Cột tính toán ra một field mới
Trang 17Lưu ý:
Count, First… được tạo ra với tên là Sumof,
Countof, …đổi tên:
Ghi tiêu đề mới ngay trên cột
Ghi vào thuộc tính tiêu đề (Caption)
Totals tương ứng phải là Expression
dòng Totals tương ứng là Where và không cho hiển thị kết quả (tắt dấu ở dòng Show)
Trang 18Thuộc tính của cột trong Query
• View\Properties
• R-Click\Properties
• Click biểu tượng trên công cụ Query Design
Chuỗi mô tả cột Định dạng dữ liệu
Mặt nạ nhập liệu Tiêu đề
Trang 19R_Click vào vùng trống của Query, chọn Properties
Thuộc tính của Query
Tổng số record sẽ được hiển thị khi thi hành Query Yes: không hiển thị record trùng; No: ngược lại Yes: không hiển thị giá trị trùng; No: ngược lại
Không
đồng
thời là
Yes/No
Trang 20Query nhóm dữ liệu (Group by query)
Trang 21Truy vấn con
Là một truy vấn chọn lựa (select query) được sử dụng như một điều kiện bên trong một truy vấn khác
Trang 22Thực hiện truy vấn lồng nhau
Tạo truy vấn con trong cùng nhất, chép nội dung câu lệnh SQL
Tạo truy vấn cha, dán nội dung câu lệnh SQL của truy vấn con vào dòng điều kiện của cột cần so sánh điều kiện
Lưu ý:
Số cột trả về của truy vấn con phải là một
Trang 23 Khái niệm: là truy vấn mà việc tính tóan tương đối phức tạp đòi hỏi phải có nhiều truy vấn lồng vào nhau
Thí dụ: cho biết danh sách các sinh viên
có học bổng cao nhất trong khoa tin học
Truy vấn con
Trang 24 Bước 1: Tạo truy vấn 1 để tìm ra số tiền
học bổng cao nhất trong khoa tin học
Bước 2: Tạo truy vấn 2 sẽ chọn các sinh viên có học bổng cao nhất mà chúng ta đã tìm ở truy vấn 1 và sinh viên đó phải đồng thời học ở khoa tin học
Cách 1: (không dùng truy vấn con)
Trang 25 Bước 1: Tạo truy vấn 1 để tìm ra số tiền học
bổng cao nhất trong khoa tin học, chạy xem kết quả.
Bước 2: Tạo truy vấn cha tạo ra các sinh viên học ở khoa tin học và có học bổng bằng với giá trị trả về của truy vấn 1 (Chép nội dung câu lệnh SQL của truy vấn con (truy vấn 1) và lồng vào 1 cột tương ứng tại vùng criteria của truy vấn cha,
có thể dùng cac toán tử so sánh như: Not, in, >,
<…)
Cách 2: (Dùng truy vấn con)
Trang 26Crosstab Query
Thiết kế 1 Select Query
Chuyển Select Query sang Crosstab Query (R-Click vào vùng lưới QBE/ Chọn Query Type/Crosstab Query
Crosstab:
Tổng hợp theo hàng (Row heading)
Tổng hợp theo cột (Column heading)
Lấy giá trị trả về (Value)
Total: nhóm tổng hợp số liệu theo một field
Trang 27Crosstab query
Thống kê số lượng mỗi loại hoá đơn theo từng kho?
Trang 29Query có tham số (Parameter query)
Tham số trong truy vấn dùng để thực hiện các truy vấn theo một điều kiện "động" nào đó
Điều kiện động có thể ở một trong 2 dạng:
Là một giá trị được người sử dụng nhập vào khi thực hiện một truy vấn
Hoặc là một giá trị của một điều khiển (control) nằm trên một biểu mẫu đang mở ở chế độ cập nhật
dữ liệu.
Trang 30Query có tham số (Parameter query)
Đặt tên tham số giữa 2 dấu ngoặc vuông [] ở dòng Criteria
Ví dụ:
[Ngay hoa don]
[Loại hóa đơn]
Ví dụ: Thể hiện tất cả các hóa đơn nhập và xuất hàng của một kho bất kỳ nào đó mà khi chạy truy vấn người sử dụng sẽ nhập vào một
mã kho tương ứng muốn xem
Trang 31 Thay đổi thuộc tính Top value của query
để có được giá trị min/max cần tìm
Trang 32Các thành phần cơ bản trong Query
Biến • Biến trường: [ SINHVIEN ] ! [ HOTEN ]
• Biến tham số: [ Nhap ma sinh vien ]
Tên Table Tên biến trường
Biểu thức • BT logic (Dùng trong Criteria)
• BT tính toán được (Dùng trong Field)
Trang 33 Đại diện cho nhiều kí tự ngay vị trí nó xuất hiện
Được sử dụng khi:
Bạn chỉ biết 1 phần giá trị muốn tìm
Bạn muốn tìm những giá trị bắt đầu với 1 ký tự xác định
Trang 35Lưu ý:
Ký tự đại diện chỉ sử dụng trong kiểu dữ liệu:
Text
Date (qui định lại môi trường Regional Setting)
Khi dùng ký tự đại diện để tìm các dấu * ? ! # , - [ phải đặt các thành phần này trong dấu [ ]
Ví dụ [*], [?], [#]…
Không thể tìm [ ] cùng 1 lúc vì nó ~ chuỗi rỗng
Các ký tự đại diện (tt)
Trang 36Toán tử
Toán tử số học (+ , - , * , / , ^ , \ , Mod)
Toán tử logic (= , <> , > , >= , < , <= , And , or , Not )
Toán tử khác: & , Like , Between , In , Format , Is Null, Is Not Null)
Trang 37Toán tử số học
+ , - , * , / : cộng, trừ, nhân, chia
^: lũy thừa Ví dụ: 2^3 = 8
\: chia lấy phần nguyên Ví dụ: 7\2 = 3
Mod: chia lấy phần dư Ví dụ: 7 Mod 2 = 1
Trang 38>, >= : Lớn hơn, lớn hơn hoặc bằng
<, <= : Bé hơn, bé hơn hoặc bằng
Trang 42&
Trang 43Toán tử &
Ghép chuỗi
“Cơ sở Tin học đường 3/2”
“Cơ sở” & “Tin học” & “đường 3/2”
VD 1:
“Họ và tên nhân viên”
[HONV] & [TENNV]
VD 2: C2,3,4)
Trang 44Toán tử Like
Cú pháp: <BT> Like <Mẫu>
Biểu thức chuỗi Chuỗi ký tự (có thể dùng ký tự đại diện)
Cho kết quả là True nếu biểu thức thỏa mẫu
Ngược lại cho kết quả là False
True
Ví dụ: “aBBBa” Like “a*a”
Ví dụ: “F” Like “[A-E]” False
Trang 47Toán tử Format
Cú pháp: Format(x,n)
Số Kiểu định dạng hiển thị số
Cho kết quả là số hiển thị theo kiểu định dạng
(tương tự như hàm làm tròn trong Excel)
Ví dụ: Format (1234,64558, “#,###.###”) = 1,234.646
Ví dụ: Format (1234,64558, “#,###.##”) = 1,234.65
Ví dụ: Format (1234,64558, “#,###.#”) = 1,234.6
Ví dụ: Format (1234,64558, “#,###.#”) = 1,235
Trang 48Toán tử Is Null
Cú pháp: Is Null(GTMT)
Mẫu tin tại trường cần kiểm tra
Cho kết quả True nếu giá trị của mẫu tin tại một trường là rỗng
Cho kết quả False nếu giá trị của mẫu tin tại một trường là không rỗng
Trang 49Toán tử Is Not Null (ngược lại hàm Is Null)
Cú pháp: Is Not Null(GTMT)
Mẫu tin tại trường cần kiểm tra
Cho kết quả True nếu giá trị của mẫu tin tại một trường là không rỗng
Cho kết quả False nếu giá trị của mẫu tin tại một trường là rỗng
Trang 50Các hàm cơ sở dữ liệu
Cú pháp chung:
<Tên hàm> (<Biểu thức>, <Phạm vi>,[Điều kiện])
Biểu thức: chuỗi dùng để xác định tên trường dùng tìm giá trị cần trả về
- Field của 1 Table
- Control của 1 Form
- Hằng, hàm của Access basic
Phạm vi: chuỗi dùng để xác định miền làm việc
- Tên Table hay Query
- Câu lệnh SQL
Điều kiện: biểu thức chuỗi dùng để hạn chế phạm vi
dữ liệu mà hàm thực hiện (có thể có hoặc không)
Trang 52Hàm DCOUNT
Đếm số Record trong phạm vi xác định theo điều kiện Không đếm các record có giá trị Null Nếu dùng ký tự đại diện “*” hàm sẽ đếm các
record có giá trị Null
Trang 54Hàm DMIN
Trả về giá trị nhỏ nhất trong phạm vi xác định theo điều kiện
Hàm này chỉ làm việc với Field kiểu số
Trang 55Hàm DMAX
Trả về giá trị lớn nhất trong phạm vi xác định theo điều kiện
Hàm này chỉ làm việc với Field kiểu số
Trang 60Điều kiện giá trị 1 giá trị 2
Cú pháp: IIF(“Điều kiện”,”Giá trị 1”,”Giá trị
2”)
Trang 61Make-table Query
Thiết kế 1 Select Query hoàn chỉnh
Chuyển Select Query sang Make-table
Query (R-Click vào vùng lưới QBE/ Chọn Query Type/Make-table Query
Nhập tên bảng mới vào ô Table name
Lưu ý: Có thể chọn Current Database
hoặc Another Database
Trang 62 Thiết kế 1 Select Query
Chọn các field điều kiện và đặt điều kiện Update
Nhập thông tin cần Update vào dòng Update to
Update Query
Trang 63 Thiết kế 1 Select Query
Chọn bảng có dữ liệu cần xóa
Chuyển Select Query sang Delete Query (R-Click vào vùng lưới QBE/ Chọn Query Type/Delete
Query
Chọn field đặt điều kiện xóa
Lưu ý:Nếu những table liên kết với nhau theo quan
hệ 1-nhiều và qui định thuộc tính Cascade Delete Relate Record thì các Record bên bảng nhiều cũng
sẽ bị xóa
Delete Query
Trang 64Append Query
Thiết kế 1 Select Query
Chọn bảng chứa dữ liệu nguồn (có thể không có)
Chuyển Select Query sang Append Query (R-Click vào vùng lưới QBE/ Chọn Query Type/Append
Query
Chọn bảng cần nối thêm dữ liệu
Nhập giá trị hoặc field cần thêm vào tại dòng Field (Hằng số, Tham số, Field của 1 Table)
Chọn dòng cần nối thêm tương ứng tại dòng
Append to
Lưu ý: Khóa chính không nhập trùng
Trang 65 Chọn Query\New\Find Duplicate Query
Chọn Table hoặc Query làm dữ liệu nguồn
Chọn trường cần đưa vào khóa xác định giá trị giống nhau trên các mẫu tin
Chọn các trường kế tiếp
Đặt tên cho Query, chọn Finish
Find Duplicate Query