Giới thiệu Microsoft Access MS Access là một Hệ quản trị cơ sở dữ liệu quan hệ RDBMS - Relational Database Management System, là một phần mềm trong bộ ứng dụng Microsoft Office chạy trê
Trang 1
Phần II
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
MICROSOFT ACCESS
Trang 3CHƯƠNG 4 GIỚI THIỆU HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
MICROSOFT ACCESS 4.1 Giới thiệu Microsoft Access
MS Access là một Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS - Relational Database Management System), là một phần mềm trong bộ ứng dụng Microsoft Office chạy trên môi trường Windows của hãng phần mềm Microsoft
MS Access có giao diện thân thiện, dễ sử dụng, hiệu năng cao, cho phép xử lý dữ liệu và kết xuất vào các biểu mẫu, báo cáo theo dạng thức chuyên nghiệp rất phù hợp cho các bài toán quản lý vừa và nhỏ
Microsoft Access còn cung cấp nhiều công cụ phát triển đầy năng lực để nâng cao hiệu suất công việc Bằng cách dùng các Wizard của MS Access và các lệnh có sẵn (macro) người sử dụng có thể dễ dàng tự động hóa công việc mà không cần lập trình
4.2 Khởi động MS Access
Start All Programs Microsoft Office Microsoft Office Access
4.3 Tạo cơ sở dữ liệu mới
Một cơ sở dữ liệu Access được lưu trên đĩa dưới dạng một tập tin Để tạo một CSDL
mới thì chọn menu File New Blank Database
Trang 4Ở hộp thoại tiếp theo, chọn nơi lưu trữ và tên tập tin cơ sở dữ liệu
Sau khi chọn nơi lưu trữ và tên tập tin thì nhấn vào nút để tạo cơ
sở dữ liệu mới
4.4 Mở một CSDL đã có trong máy tính
Sử dụng một trong các cách sau
Vào menu File Open
Chọn thư mục và double-click vào tập tin CSDL
4.5 Các đối tượng chính của một CSDL Access
Access là một hệ quản trị theo mô hình cơ sở dữ liệu quan hệ, vì vậy vì vậy Access
có các đối tượng để thể hiện các khái niệm quan hệ, lược đồ quan hệ và truy vấn:
Bảng (Table) : thể hiện khái niệm quan hệ trong cơ sở dữ liệu Bảng có hai chế độ: design view - lược đồ quan hệ và data view - quan hệ Trong bảng gồm nhiều dòng - bộ và cột – thuộc tính
Truy vấn (Query): Để thực hiện các truy vấn và một số thao tác thêm, xóa, sửa
trên các bảng
Các thành phần tiện ích khác:
Biểu mẫu (Form): Giao diện do người dùng tự tạo cho phép làm việc với dữ
liệu, chủ yếu được sử dụng trong việc nhập và hiển thị dữ liệu
Báo cáo (Report) : Kết quả của quá trình khai thác dữ liệu được tổ chức và
định dạng để tạo thành bản in
Pages: Tương tự như Form nhưng hoạt động trên nền Web
Macro : Tập hợp các lệnh nhằm tự động hóa các thao tác
Module: Cho phép lập trình thao tác trên các bảng và truy vấn
Nơi lưu tập tin cơ sở dữ liệu
Tên tập tin cơ sở dữ liệu
Trang 54.6 Các toán tử sử dụng trong MS Access
( ) Kết nhóm biểu thức
Not Phủ định mệnh đề
And Kết hợp mệnh đề: tất cả mệnh đề thành phần đúng thì cho kết quả
đúng, nếu có ít nhất 1 mệnh đề thành phần sai thì cho kết quả sai
Or Kết hợp mệnh đề: tất cả mệnh đề thành phần sai thì cho kết quả sai,
nếu có ít nhất 1 mệnh đề thành phần đúng thì cho kết quả đúng
Xor 2 mệnh đề có giá trị trái ngược nhau thì cho kết quả đúng
Epv 2 mệnh đề có giá trị trái ngược nhau thì cho kết quả sai
^ Luỹ thừa (5^3=75)
+ - * / Cộng, Trừ, Nhân, Chia
\ Phép chia lấy phần nguyên
Mod Phép chia lấy phần dư
True Giá trị đúng "…" hoặc '…' Giá trị chuỗi, ví dụ "ACCESS"
False Giá trị sai […] Giá trị tham số, ví dụ [tham so]
Null Giá trị rỗng # # Giá trị thời gian, ví dụ
Trang 64.7 Một số hàm sử dụng trong MS Access
1) Các hàm về chuỗi
Ten LIKE 'N*' Tên bắt đầu bằng chữ N
Ten LIKE '*a*' Tên có chứa chữ a
Len(Ten) 3 (nếu Ten = 'Mai')
5 (nếu Ten = 'Nguyen')
Left(Ten, 2) 'Ma'
Right(TenSV,2) 'ai' (nếu TenSV = 'Mai')
Mid(TenSV,2,3) 'guy' (nếu TenSV = 'Nguyen')
(với điều-kiện là biểu thức logic A, B là các biểu thức bất kỳ)
Ý nghĩa: nếu điều-kiện đúng thì kết quả của biểu thức IIF là biểu thức A, nếu điều-kiện sai thì kết quả của biểu thức IIF là biểu thức B
2) Tạo một cơ sở dữ liệu mang tên bạn và lưu vào ổ đĩa C hoặc D
3) Trong cơ sở dữ liệu vừa tạo, quan sát các mục Table, Query, Form, Report, Macro và Module
4) Đóng cơ sở dữ liệu và đóng Access
5) Khởi động lại Access, mở lại cơ sở dữ liệu vừa tạo (lưu ý: dùng menu File -> Open, không được dùng menu File -> New)
Trang 7CHƯƠNG 5 BẢNG (TABLE) 5.1 Các khái niệm
Ví dụ:
Bảng dữ liệu trong trạng thái Datasheet (dùng để cập nhập, xem, sửa dữ liệu)
Bảng dữ liệu trong trạng thái Design view (dùng để thiết kế cấu trúc – lược đồ quan hệ)
(primary key)
Trang 85.1.2 Trường dữ liệu (field)
Trường dữ liệu, tương ứng với cột của bảng, mô tả từng đặc điểm riêng của đối tượng Mỗi trường dữ liệu sẽ có một tên gọi, kiểu dữ liệu và tập hợp các tính chất mô tả trường dữ liệu đó
Ví dụ: Trường MaKhoa có kiểu dữ liệu là Text, kích thước 2 ký tự, được hiển thị là
chữ in hoa,…
5.1.3 Bản ghi (record)
Mỗi dòng dữ liệu của bảng được gọi một bản ghi
Ví dụ: Bảng Khoa có 3 bản ghi là (“CN”, “Khoa Công nghệ thông tin”), (“KT”, “Khoa
Kinh tế”), (“NN”, “Khoa Ngoại ngữ”)
5.1.4 Khóa chính (primary key)
Khóa chính của bảng là trường hoặc tập trường dùng để phân biệt các bản ghi trong cùng một bảng
Ví dụ: Ở một trường đại học, mỗi sinh viên khi nhập học đều được cấp 1 mã sinh
viên không giống nhau, do đó có bảng SinhVien được thiết kế như sau:
Như vậy trường MaSV chứa dữ liệu mã sinh viên sẽ là khóa chính của bảng
SINHVIEN vì mã sinh viên là duy nhất, các sinh viên có thể trùng họ tên, ngày
sinh,…nhưng không thể có mã sinh viên giống nhau
Ví dụ: Kết quả học tập của sinh viên bao gồm các dữ liệu sau: mã sinh viên, mã các
lớp học sinh viên đó đã đăng ký và điểm kết quả của các lớp học đó Trong CSDL của trường đó có bảng KetQua được thiết kế như sau
Như vậy 2 trường MaSV (chứa dữ liệu mã sinh viên) và MaLop (chứa mã lớp học mà
sinh viên đó đăng ký) sẽ tạo thành khóa chính của bảng KetQua, không thể có 1 sinh viên
đăng ký lớp học mà có 2 điểm kết quả khác nhau
Trang 9 Chú ý: MS Access không chấp nhận các giá trị trùng nhau hay trống (null)
trong trường khóa chính
5.1.5 Mối liên hệ giữa các bảng (relationship)
Thể hiện khái niệm mối liên hệ giữa các quan hệ trong mô hình lý thuyết (xem phần Phần I2.3.2) Đi kèm với mối liên hệ là ràng buộc toàn vẹn về khóa ngoại
Trong Access tồn tại 2 kiểu quan hệ: quan hệ - và quan hệ -∞ (một-nhiều)
a) Quan hệ 1-1
Mỗi bản ghi của bảng này sẽ không liên kết hoặc liên kết với duy nhất tới một bản
ghi của bảng kia và ngược lại
Ví dụ: Mỗi số báo danh của thí sinh
thi đại học chỉ có 1 số phách bài thi và số
phách của mỗi bài thi chỉ thuộc về 1 số
báo danh
Mô tả dữ liệu 2 bảng như sau:
b) Quan hệ 1- ∞
Một bản ghi trong bảng A không kết hợp hoặc kết hợp với một hay nhiều bản ghi
trong bảng B, nhưng ngược lại một bản ghi trong bảng B chỉ có thể kết hợp duy nhất với một bản ghi trong bảng A
Ví dụ: một khoa của trường Đại học Nha Trang
có nhiều sinh viên nhưng một sinh viên chỉ thuộc về
duy nhất một khoa
Trang 10Mô tả dữ liệu 2 bảng như sau:
5.2 Xây dựng cấu trúc bảng
5.2.1 Sử dụng chế độ Design View để tạo bảng
Tab Tables Create Table in Design View hoặc Tab Tables
Sau đó ta được bảng thiết kế như sau:
Tên trường
Lựa chọn kiểu dữ liệu
Mô tả ngắn gọn của trường
Trang 11Bảng thiết kế sau khi đã được nhập giá trị:
a) Tên trường
Tên trường có thể đặt tùy ý, tuy nhiên để dễ quản lý nên đặt ngắn gọn, dễ gợi nhớ,
không chứa ký tự trắng và không dùng chữ tiếng Việt có dấu
b) Kiểu dữ liệu (Data Type)
MS Access cung cấp một số kiểu dữ liệu cơ bản sau:
Text: kiểu chuỗi có độ dài tối đa 2 ký tự
Memo: kiểu chuỗi có độ dài tối đa ký tự
Number: kiểu số
Date/Time: kiểu ngày (nếu cần có thể lưu thêm thông tin về giờ)
Currency: kiểu số có định dạng theo loại tiền tệ
AutoNumber: kiểu số nhưng tự động tăng do Microsoft Access cung cấp và
quản lý, người dùng không thể cập nhật
Yes/No: kiểu Logic
OLE Object: kiểu đối tượng kết nhúng: Word, Excel,
Hyperlink: kiểu chuỗi chỉ đường dẫn của một tập tin trên ổ cứng hay trên máy
chủ của mạng hay một địa chỉ URL trên mạng
Lookup Wizard: tạo một cột để chọn giá trị và tìm kiếm từ một bảng khác
Khóa chính Kích thước của trường
Quy định dạng hiển thị dữ liệu
Trang 12Khai báo thuộc tính cho trường ở thẻ General:
c) Field Size
Xác định kích thước tối đa cho dữ liệu kiểu Number hay Text của trường
Đối với kiểu số (number) thì Access cung cấp các kiểu sau
Byte số nguyên byte
Integer số nguyên 2 byte
Long Integer số nguyên byte
- Phần 1: Chuỗi định dạng tương ứng trong trường hợp có chứa văn bản
- Phần 2: Chuỗi định dạng tương ứng trong trường hợp không chứa văn bản
- Phần 3: Chuỗi định dạng tương ứng trong trường hợp null
Các ký tự dùng để định dạng chuỗi
"123ABC" Hiển thị những gì trong ngoặc kép như ký tự
> Đổi tất cả ký tự nhập vào thành in hoa
< Đổi tất cả ký tự nhập vào thành in thường
\ Hiển thị ký tự kế tiếp như ký tự bình thường
(dùng để hiển thị các ký tự đặc biệt)
Trang 13@; "Không có"; "Chưa nhập"
ABC Null
ABC Không có Chưa nhập
Kiểu số (Number) và kiểu số tiền tệ (Currency)
- Phần 1: Chuỗi định dạng tương ứng trong trường hợp số dương
- Phần 2: Chuỗi định dạng tương ứng trong trường hợp số âm
- Phần 3: Chuỗi định dạng tương ứng trong trường hợp số bằng zero
- Phần 4: Chuỗi định dạng tương ứng trong trường hợp null
Ví dụ
0;(0);;"Null"
Số dương hiển thị bình thường
Số âm được bao giữa 2 dấu ngoặc ( )
Số bị bỏ trống Null hiện chữ Null
-
Hiển thị dấu + phía trước nếu số dương Hiển thị dấu - phía trước nếu số âm Hiển thị nếu âm hoặc Null
Kiểu Date/Time
Định dạng do ACCESS cung cấp
General date 10/30/99 5:10:30PM
Trang 14Long date Friday, may 30 , 1999
Medium date 30-jul-
- Phần : Trường hợp giá trị trường đúng
- Phần 2: Trường hợp giá trị trường sai
Chú ý: Để xem được hiển thị của kiểu Yes/No ta phải thay đổi thuộc tính
Display Control ở thẻ Lookup thành Text Box
Trang 15< Các ký tự bên phải được đổi thành chữ thường
> Các ký tự bên phải được đổi thành chữ hoa
! Dữ liệu được ghi từ phải sang trái
Ví dụ:
( ) - ( ) 2 - 2 2 (000)AAA-A ( 23)124-E Ngoài ra ta có thể sử dụng những Input Mask có sẵn do Access cung cấp
f) Caption
Dùng làm tiêu đề cho các trường trong chế độ Datasheet của bảng, có thể dùng tiếng Việt Chuỗi ký tự này cũng xuất hiện tại nhãn các của các điều khiển trong các biểu mẫu hoặc báo cáo
Nếu không xác định Caption thì Access sẽ lấy tên trường để làm tiêu đề
g) Default Value
Quy định giá trị mặc định cho trường trừ Auto number và OEL Object Có thể là một
biểu thức, hằng, các hàm mẫu và các phép toán
Trang 16h) Validation rule và Validation Text
Quy định quy tắc hợp lệ dữ liệu (Validation rule) để giới hạn giá trị nhập vào cho
một trường Khi giới hạn này bị vi phạm sẽ có câu thông báo ở Validation text
Ví dụ:
0 Khác số không
Like "*HUE*" Trong chuỗi phải chứa HUE
>= #10/10/99# and <= #12/11/99# Trong khoảng từ đến 12/12/99
i) Required (tương tự ràng buộc toàn vẹn NOT NULL)
Dùng để quy định dữ liệu cần phải nhập hay không Nếu chọn Yes thì phải nhập giá trị cho cột đó mỗi khi thêm dòng mới, ngược lại nếu cho đưa giá trị Null vào thì chọn No Thuộc tính này có giá trị mặc định là No
j) AllowZeroLength
Cho phép quy định một trường có kiểu Text hay memo có thể hoặc không có thể có chuỗi có độ dài bằng 0
Thuộc tính này có giá trị mặc định là No
Chú ý: Cần phân biệt một trường chứa giá trị null (chưa có dữ liệu) và một
trường chứa chuỗi có độ dài bằng 0 (có dữ liệu nhưng chuỗi rỗng "")
k) Index
Tạo chỉ mục trên một trường, giúp việc tìm kiếm dữ liệu nhanh hơn
Yes(Dupplicate OK) : Tạo chỉ mục có trùng lặp
Yes(No Dupplicate) : Tạo chỉ mục không trùng lặp
5.2.2 Tạo khóa chính
Thực hiện lần lượt các bước sau
1 Mở bảng ở chế độ Design View
2 Chọn trường (các trường) cần làm khóa
3 Click vào biểu tượng khóa
trên thanh công cụ để tạo khóa hoặc
Right-Click tên trường cần làm khóa
Primary Key
Chú ý: Các trường có kiểu dữ liệu là Memo,
OLE Object, Hyper Link không thể làm khóa chính
Trang 175.2.3 Lưu bảng
Thực hiện bởi 1 trong nhiều cách sau
Ctrl+S
Click biểu tượng trên thanh công cụ
Menu File Save
5.2.4 Hiệu chỉnh bảng
Di chuyển trường: Đưa con trỏ ra đầu trường
cần di chuyển, giữ và kéo đến vị trí mới
Chèn thêm trường mới: Chọn trường hiện thời
là trường sẽ nằm sau trường được chèn vào
Right Click Insert Row
Xóa trường: Chọn trường cần xóa
Right Click Delete Row
5.3 Thiết lập mối quan hệ giữa các bảng
Bước 1: Chọn biểu tượng Relationship hoặc vào menu Tool Relationships
Bước 2: Đưa các bảng muốn tạo mối quan hệ vào cửa sổ Relationships bằng cách lần
lượt chọn bảng Add
Sau khi chọn xong thì click Close
Nếu cần chọn thêm bảng thì Right Click (tại vùng cửa
sổ Relationships) Show Table
Bước 3: Trong cửa sổ Relationships dùng
chuột kéo và thả trường liên hệ từ bảng này
sang bảng kia
Trang 18 Bước 4: Xác định các qui tắc ràng buộc
của mối quan hệ này bằng cách chọn vào ô
kiểm tra hiệu lực của ràng buộc toàn vẹn
(Enforce Referential Integrity)
Đồng ý thiết lập toàn vẹn tham chiếu, nghĩa là dữ liệu trên trường tham chiếu của bảng con phải tương ứng với dữ liệu đã tồn tại trên trường của bảng cha Ngoài ra thiết lập này còn cho biết kiểu quan hệ giữa 2 bảng
Đảm bảo toàn vẹn dữ liệu khi cập nhật dữ liệu giữa 2bảng liên quan Khi đó, nếu giá trị trường khoá liên kết ở bảng 1 bị thay đổi, toàn bộ giá trị trường khoá liên kết ở bảng nhiều cũng bị thay đổi theo
Đảm bảo toàn vẹn dữ liệu khi xoá dữ liệu giữa 2 bảng liên quan Khi đó, nếu một bản ghi ở bảng có quan hệ 1 bị xoá, toàn bộ các bản ghi có quan
hệ với bản ghi hiện tại sẽ được tự động xoá ở bảng có quan hệ nhiều (nếu xoá 1 CHA, toàn
bộ các con của cha đó sẽ tự động bị xoá khỏi bảng CON)
Hộp Relationship Type: cho biết kiểu quan hệ giữa 2 bảng đang thiết lập:
One – To – One Kiểu -
One – To – Many Kiểu -∞
Indeterminate Không xác định được kiểu liên kết
Bước 5: Chọn Create
Bước 6: Lưu lại các mối quan hệ vào cửa sổ quan hệ: chọn menu File Save
hoặc click vào biểu tượng trên thanh công cụ
Chú ý: Khi thiết lập mối quan hệ phải đóng tất cả các bảng tham gia
Trang 195.4 Cập nhật bảng
5.4.1 Xem và nhập dữ liệu
Có thể xem và nhập dữ liệu trong bảng bằng các cách sau
Double click vào bảng cần xem (hoặc nhập dữ liệu)
Click chọn bảng, sau đó click vào biểu tượng
5.4.2 Nhập dữ liệu sử dụng Lookup
Để việc nhập các giá trị cho các thuộc tính khóa ngoại được dễ dàng, nhanh chóng và tránh sai sót, có thể nhập dữ liệu cho các thuộc tính này dùng lookup Ví dụ bên dưới là thiết lập lookup cho khóa ngoại MaKH của bảng SinhVien
Trang 205.4.3 Một số lỗi có thể xảy ra khi nhập dữ liệu
Lỗi do: Nhập vào giá trị không tương thích với kiểu dữ liệu của trường đã chỉ định
Ví dụ: trường kiểu Numeric mà gõ vào chữ cái; hoặc không gõ đầy đủ các giá trị
ngày, tháng, năm cho trường kiểu Date/Time,
Khắc phục: Nhập lại cho đúng, đủ giá trị các trường đã yêu cầu đến khi không xuất
hiện thông báo lỗi
Lỗi do: Không nhập giá trị hoặc để trống giá trị trường khoá
Khắc phục: phải nhập đầy đủ giá trị cho trường khoá
Lỗi do: Giá trị trường khoá trùng nhau Giá trị trường khoá vừa nhập vào đã trùng
với giá trị của một khóa của bản ghi khác trên bảng dữ liệu
Khắc phục: nhập lại giá trị trường khoá khác sao cho vừa đúng, đủ và không bị
Trang 21Lý do: Lỗi do thực hiện một thao tác vi phạm các nguyên tắc đảm bảo toàn vẹn dữ liệu
Ví dụ: Nhập dữ liệu trên một bảng có quan hệ mà bản ghi đang nhập không thể liên kết
được tới được một bản ghi nào của bảng có quan hệ 1 với nó (nhập một hàng bán mà mã hàng đó chưa có trong bảng danh mục hàng hoá)
5.4.4 Xóa bản ghi
Với bảng dữ liệu đang mở có thể thực hiện 2 bước sau để xoá các bản ghi:
Bước 1: Chọn những bản ghi cần xoá Có thể chọn một hoặc nhiều bản ghi bằng
cách dùng chuột đánh dấu đầu dòng những bản ghi cần chọn;
Bước 2: Ra lệnh xoá bằng một trong các cách sau
Nhấn phím Delete
Right Click trên vùng đã chọn Delete Record
Click vào biểu tượng trên thanh công cụ
Một hộp thoại xuất hiện để bạn khẳng định một lần nữa việc xoá dữ liệu:
Chọn Yes để đồng ý xoá, No để huỷ lệnh xoá
5.4.5 Sắp xếp dữ liệu
Sắp xếp là việc thay đổi thứ tự hiển thị một bảng dữ liệu theo một trật tự nào đó Kết quả của việc sắp xếp giúp người dùng có thể quan sát được tốt hơn dữ liệu trên bảng, tất nhiên muốn quan sát bảng dữ liệu theo trường nào phải thực hiện sắp xếp bảng theo dữ liệu trường ấy
Cách sắp xếp dữ liệu trên bảng đang mở như sau:
Bước 1: Đặt con trỏ lên trường (cột) muốn sắp xếp;
Bước 2: Nhấn nút lệnh sắp xếp trên thanh công cụ:
- Sắp xếp tăng dần
- Sắp xếp giảm dần
Trang 225.4.6 Lọc dữ liệu
Lọc dữ liệu là việc chọn ra những bản ghi trên bảng có cùng một số giá trị Kết quả việc lọc dữ liệu sẽ giúp người dùng làm việc một cách hiệu quả trên tập hợp các bản ghi họ mong muốn
Các bước để lọc dữ liệu trên một bảng đang mở như sau:
Bước 1: Click chọn trường cần lọc dữ liệu
Bước : Click chọn biểu tượng Filter by Form
Bước 3: Thiết lập điều kiện lọc trên trường đang chọn
Trang 23CHƯƠNG 6 TRUY VẤN (QUERY) 6.1 Các khái niệm
Sau khi xây dựng được CSDL, người dùng sẽ cần kết xuất dữ liệu trên CSDL nhằm phục vụ cho những yêu cầu khác nhau Một trong những công cụ xử lý dữ liệu mà MS
Access cung cấp là Query Query cho phép thực hiện các phép toán đại số quan hệ như
6.2.1 Select Query (truy vấn với phép chọn, chiếu, kết nối)
Phần này minh họa lại cách thực hiện Query cho các ví dụ về các phép chọn, chiếu, kết nối trong chương về đại số quan hệ
Ví dụ 01: Cho biết tên khoa của sinh viên có mã số ‘ 2 2’ Liệt kê các thông tin
MaSV, HoSV, TenSV, TenKhoa
Biểu thức đại số quan hệ cho truy vấn trên:
MaSV, HoSV, TenSV, TenKhoa [MaSV=’5202’(SinhVien ⋈MaKH = MaKhoa Khoa)] Tạo truy vấn trong Access:
Trang 24Trong màn hình cơ sở dữ liệu, chọn mục Queries, sau đó chọn Create query in
Design view để mở màn hình Show Table
Trong màn hình Show Table, chọn và nhấn nút Add các table tham gia truy vấn
(Khoa và SinhVien) Sau khi chọn xong, nhấn nút Close để trở về màn hình Design Query
Màn hình design Query gồm hai phần:
Phần A dùng để thể hiện các bảng tham gia truy vấn Phần này cũng thể hiện mối
quan hệ giữa các bảng và mối quan hệ đó được sử dụng làm phép kết nối bằng
Phần B gồm nhiều cột dùng để thực hiện các phép chọn và chiếu Một cột trong phần B tương ứng với một cột trong phép chiếu
Kéo thả (hoặc Double-Click) các trường liên quan đến truy vấn từ phần A vào các
cột phần B Dấu * đại diện cho tất cả các cột trong bảng
Nhấn nút View Design để chuyển đổi giữa chế độ thiết kế
Query và chế độ xem kết quả thực hiện phép kết nối giữa bảng
SinhVien và Khoa:
A
B
Các trường (cột) được chọn Bảng tham gia
Trang 25Bổ sung phép chọn và phép chiếu:
Kéo bốn cột MaSV, HoSV, TenSV, TenKhoa vào phần B
Thực hiện phép chọn MaSV = ' 2 2': gõ mệnh đề = ' 2 2' vào dòng Criteria
ứng với cột MaSV
Kết quả thực hiện:
Ví dụ 02: Tạo cột mới (HoTen) từ 2 trường HoSV và TenSV
Kết quả thực hiện:
Trang 26 Chú ý: Tên cột mới đặt ở dòng Field có cấu trúc như sau
<Tên cột> : <Biểu thức>
Ví dụ: HoTen : [HoSV] + ' ' + [TenSV]
Ví dụ 0 : Biểu thức chọn có mệnh đề AND
Xét câu truy vấn: Liệt kê các sinh viên sinh năm và có học bổng trên 500
Year(NgaySinh)=1990 AND HocBong>300 (SinhVien) Trong câu truy vấn này, biểu thức logic gồm 2 phần: Year(NgaySinh)=1990 và HocBong > được đặt ở phần Criteria:
Chú ý: Year([NgaySinh]) giống như là một thuộc tính mới nhưng không được
hiện ra do không được chọn ở dòng Show
Xét câu truy vấn: Liệt kê các sinh viên đạt mức học bổng từ đến 500
(HocBong>=300 AND HocBong <=500 (SinhVien) Lúc này có hai điều kiện chọn cho cùng một thuộc tính là HocBong
Hoặc sử dụng mệnh đề: Between AND 5
Ví dụ 04: Biểu thức chọn có mệnh đề OR
Xét câu truy vấn: Liệt kê các sinh viên có tên bắt đầu là ‘T’ hoặc là ‘K’
(Ten LIKE 'T*' OR Ten LIKE 'K*') (SinhVien)
Mệnh đề Like 'K*' được gõ ở dòng OR
Trang 27Ví dụ 0 : Liệt kê các môn học chưa mở lớp:
Điều kiện NOT IN (SELECT MaMH FROM LopHoc) nghĩa là: trong bảng môn học, hãy tìm các môn mà MaMH không có trong bảng LopHoc Kết quả:
Ví dụ 0 : Sắp xếp và lựa dòng
Xét câu truy vấn: Chọn hai sinh viên đạt mức học bổng cao nhất
Trước tiên sắp xếp danh sách sinh viên theo học bổng từ cao đến thấp:
Kết quả sắp xếp:
Trang 28Sau đó trong màn hình Design, trên thanh công cụ, thay từ All thành 2:
Kết quả thực hiện:
6.2.2 Group by Select Query (truy vấn với phép nhóm)
Ví dụ 0 : Xét câu truy vấn: dựa vào bảng SinhVien, đếm số sinh viên và tính tổng
học bổng theo từng khoa:
Trong Access để tạo Group by Select Query, đầu tiên tạo một Select Query như bình thường Sau đó nhấn vào nút trên thanh công cụ để xuất hiện dòng Total
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
Đếm số SV trong nhóm
Trang 29Sau đó đưa ba trường MaKh, MaSV, HocBong vào ba cột bên dưới
Trường MaKh dùng để tách nhóm, nên trong dòng Total chọn là Group By
Trường MaSV dùng để đếm số lượng sinh viên nên trong dòng Total chọn hàm Count
Trường HocBong dùng để tính tổng học bổng nên trong dòng Total chọn hàm Sum
Kết quả thực hiện
Ví dụ 0 : Bổ sung thêm trường TenKhoa
Kết nối bảng SinhVien với bảng Khoa, sau đó chọn trường MaKhoa, TenKhoa là Group by
Ví dụ 0 : Tính số sinh viên nữ của từng khoa
Câu truy vấn này cũng tương tự như câu tính tổng số sinh viên của từng khoa, tuy nhiên trước khi tách nhóm thì phải thực hiện phép chọn để lọc ra các sinh viên nữ
Ở đây, trường GioiTinh chỉ dùng để chọn ra các sinh viên nữ, không dùng để tách
nhóm, do đó ở dòng Total của cột GioiTinh chọn Where (không chọn Group By)
Kết quả thực hiện
Trang 30Ví dụ 10 Dựa vào các bảng SinhVien, LopHoc, KetQua và MonHoc, tính điểm
trung bình học kỳ năm 2 của các sinh viên Liệt kê: MaSV, HoSV, TenSV, DTB tam NamHoc=2010 AND HocKy= 1(LopHoc ⋈ MonHoc ⋈ KetQua)
MaSV, HoSV, TenSVG DTB: Sum(Diem*SoTinChi)/Sum(SoTinChi)(tam)
Trong ví dụ trên, vì cách tính điểm trung bình là một công thức toán học nên dòng
Total ở cột DTB:Sum([Diem]*[SoTinChi])/Sum([SoTinChi]) được chọn là Expression
(nghĩa là một biểu thức)
Kết quả thực hiện
Tóm tắt Chức năng Total cung cấp cho người dùng các phương thức thống kê sau:
Group By: Gom nhóm các trường cần thống kê
Sum: Tính tổng các giá trị trong cùng một nhóm
Count: Đếm số phần tử trong một nhóm
AVG: Tính trung bình cộng các phần tử trong cùng một nhóm
Min: Tính giá trị nhỏ nhất của các phần tử trong cùng một nhóm
Max: tính giá trị lớn nhất của các phần tử trong cùng một nhóm
Expresion: Biểu thức toán học
Trang 316.2.3 Crosstab Query
Là dạng query tổng hợp số liệu kết nhóm theo hàng và cột từ số liệu của các table hay query khác
Cấu trúc của 1 kết quả crosstab query
Row heading: là tiêu đề các dòng, có chứa các giá trị của hay nhiều trường
làm đối tượng thống kê Mỗi crosstab query phải có tối thiểu 1 trường làm Row heading
Column heading là tiêu đề các cột, có chứa các giá trị của một trường làm điều
kiện thống kê Mỗi crosstab query chỉ có duy nhất 01 trường làm Column heading
Value là vùng dữ liệu tổng hợp (kiểu số) Chỉ có duy nhất một trường làm
Value, tương ứng với nó là các hàm thống kê: Sum, Count, Avg, Max, Min…
Ví dụ 11: Thống kê điểm số cuối cùng của từng sinh viên theo từng môn học:
Kết quả của phép kết:
MaSV HoTen MaLop TenMH Diem
5308 Phạm Trang 02 Kế toán tài chính
5202 Lê Cường 02 Kế toán tài chính
MaSV HoTen Cấu trúc dữ liệu Kế toán tài chính Tin học cơ sở
Để tạo bảng crosstab, trước tiên tạo một Group By Select Query Sau đó chuyển
thành Crosstab Query bằng cách vào menu Query Crosstab Query
Value
Row heading
Column heading
Max(3, 9) Max(4, 8)
Trang 32Phần thiết kế Query xuất hiện thêm dòng Crosstab
- MaSV, HoTen sắp theo chiều dọc nên tại dòng total là Group By, tại dòng
crosstab chọn là Row Heading
- TenMH sắp theo chiều ngang nên tại dòng total là Group By, tại dòng crosstab
chọn là Column Heading
- Diem là giá trị của bảng nên tại dòng total là Max, tại dòng crosstab chọn là
Value
Kết quả thực hiện:
6.3 Query thêm, xóa, sửa
6.3.1 Make – Table Query
Trong các phần trên, truy vấn được tạo theo hai chế độ: chế độ thiết kế (Design) và
chế độ xem kết quả (View) Để có thể lưu kết quả của query nhằm mục đích sử dụng sau
này, Access cung cấp Make-Table Query
Make-Table Query hoàn toàn giống như một Select Query bình thường, chỉ khác là cho phép lưu kết quả thành một bảng
Trang 33Ví dụ 12: Tính số sinh viên theo từng Khoa và lưu vào bảng DemSinhVien
Trước tiên thiết kế Select query đếm số sinh viên theo từng Khoa như bình thường
Sau đó vào menu Query Make-Table Query
Sau đó nhập vào tên của bảng cần lưu kết quả
Để chính thức lưu kết quả vào bảng DemSinhVien, click vào biểu tượng Run (biểu tượng View vẫn có tác dụng xem trước kết quả như bình thường)
Sau khi nhấn nút Run, chọn Yes ở hộp thoại tiếp theo Quay trở lại màn hình xem Table của database, xuất hiện bảng DemSinhVien
Trang 346.3.2 Update Query
Sau khi đã nhập dữ liệu vào các table, nếu muốn thay đổi dữ liệu, một cách thực hiện
là mở các table để cập nhật trực tiếp trên các table đó Tuy nhiên nếu dữ liệu cần sửa đổi nhiều, thì việc cập nhật tốn nhiều công sức Trong thực tế, việc thay đổi dữ liệu thường theo một quy tắc nào đó Ví dụ: tăng học bổng các sinh viên thêm 50%, hay bổ sung các môn học thêm một tín chỉ
Access cung cấp query update để có thể thực hiện việc cập nhật đó một cách tự động
Ví dụ 1 : Tăng học bổng cho các sinh viên nữ thêm 50%
Để thực hiện truy vấn này, trước tiên tạo một Select Query cho bảng SinhVien với 2 trường được chọn là HocBong và GioiTinh
Sau đó vào menu Query Update Query
Sau khi chọn kiểu query là Update Query, phần thiết kế xuất hiện dòng Update To
- Cột HocBong là cột sẽ phải cập nhật dữ liệu mới, do đó trong dòng Update to,
nhập vào biểu thức [HocBong]*1,5
- Cột GioiTinh, nhập điều kiện chọn là No để chọn ra các sinh viên nữ tăng học bổng (Giả sử khi thiết kế bảng SinhVien ta thiết lập giá trị No ở trường GioiTinh để chỉ sinh viên nữ)
Sau khi thiết kế truy vấn xong, click Run để thật sự cập nhật dữ liệu (biểu tượng View để xem trước các dòng được chọn)
Nhấn nút Yes để cập nhật Kết quả của bảng SinhVien sau khi update là:
Trang 356.3.3 Delete Query
Tương tự như Update Query, Delete Query cũng được dùng để xóa cùng lúc nhiều dòng trong bảng Các dòng cần xóa phải thỏa mãn một điều kiện nào đó
Ví dụ 14: Hủy bỏ kết quả của lớp học có mã ‘ ’
Sau đó vào menu Query Delete Query
Ở dòng Criteria nhập giá trị mã môn học cần xóa là ‘ ’ Click Run, sau đó click Yes, Access sẽ tiến hành xóa trong bảng KetQua
6.3.4 Append Query
Tương tự như Make-Table Query, Append Query cũng được dùng để lưu lại kết quả truy vấn Điểm khác nhau là Make-Table Query tạo ra một bảng mới Còn Append thì lưu kết quả vào một bảng đã có sẵn
Ví dụ, để lưu trữ điểm trung bình của từng sinh viên trong từng học kỳ (xem ví dụ 10), chúng ta có thể thiết kế thêm một bảng DiemTrungBinh như sau:
Trang 36Sau đó để lưu trữ điểm trung bình của từng sinh viên trong học kỳ năm học 2010,
thực hiện truy vấn như trong ví dụ 10 và chuyển thành Append Query, vào menu Query
Append Query
Một hộp thoại xuất hiện yêu cầu cho biết bảng dữ liệu đích:
Thực hiện chứ năng Run tương tự như các query Update, Delete Kết quả của truy vấn sẽ được lưu vào table DiemTrungBinh Sau đó có thể lưu trữ tiếp điểm trung bình của các học kỳ khác
Trang 376.4 Truy vấn có tham số
Xét câu truy vấn: Liệt kê các sinh viên đạt mức học bổng từ đến
( HocBong>=300 AND HocBong<=500 (SinhVien)
Trong câu truy vấn này, hai con số 00 và được ghi cố định trong lúc thiết kế ở màn hình Design Nếu cần thay đổi phạm vi của HocBong (ví dụ, từ đến ) thì phải
mở lại màn hình thiết kế và sửa lại
Một cách thực hiện khác hiệu quả hơn là quy các con số giới hạn trên thành các tham
số Khi thực hiện truy vấn thì Access mới yêu cầu nhập giá trị tham số
Khi nhấn nút xem kết quả, Access yêu cầu nhập giá trị tham số để xử lý truy vấn:
Chú ý: Tham số phải được đặt trong dấu [ ] và không được trùng tên bất kỳ trường nào của các bảng tham gia truy vấn
Trang 38CHƯƠNG BIỂU MẪU (FORM) 7.1 Khái niệm Form
Form là một thành phần trong CSDL Access hỗ trợ thiết kế giao diện giữa người sử dụng và CSDL
Có hai cách để xây dựng Form trong Access:
Sử dụng Form Wizard: Đây là cách rất đơn giản, nhanh chóng, dễ dùng giúp tạo nhanh một Form Tuy nhiên Form được tạo ra theo những mẫu (templates)
có sẵn nên chỉ có thể đáp ứng những nhu cầu đơn giản
Sử dụng Form Design View: một công cụ giúp tạo ra các form đáp ứng nhiều yêu cầu khác nhau của người sử dụng,
Chú ý: Thông thường nên sử dụng Form Wizard để hình thành các Form đơn
giản sau đó sử dụng tiếp Form Design View để tiếp tục thiết kế
7.2 Sử dụng Form Wizard để tạo Form
Phần này trình bày việc tạo Form bằng cách sử dụng Form Wizard với ví dụ là trình bày và nhập liệu cho bảng SinhVien
Bước 1: Trong cửa sổ CSDL đang sử dụng,
Chọn Forms → Create form by using wizard
Bước 2: Chọn thông tin cần đưa lên Form
Tại mục Tables/ Queries chọn Table: SinhVien
Chọn bảng (table) hay truy vấn (query) cần thiết cho Form
Trang 39Việc chọn table SinhVien có nghĩa là Form sẽ tương tác với các giá trị trong các cột
của bảng SinhVien Trong Available Fields hiển thị các trường có trong bảng SinhVien mà chưa được chọn để hiển thị trên Form Trong Selected Fields chứa các trường sẽ hiển thị
Sau khi chọn được các trường cần thiết vào Selected Fields, click Next
Bước 3: Chọn kiểu trình bày (layout) của Form
Tại giao diện này, Access cung cấp một số mẫu (template) cho việc hiển thị dữ liệu lên Form Có 4 kiểu chính
- Columnar: hiển thị dữ liệu của một bản ghi trên một trang Form
- Tabular: hiển thị dữ liệu của tất cả các record trên một trang Form
- Datasheet: hiển thị dữ liệu của tất cả các bản ghi trên một trang Form dưới dạng
bảng (tương tự như bảng được mở ở dạng Open)
- Justified: Phân bố dữ liệu của bản ghi trên Form theo cấu trúc định sẵn của Access
Thông thường chọn Columnar Next
Bước 4: Chọn kiểu dáng (Style) cho form
Trong giao diện này Access cung cấp một danh sách các kiểu dáng Hãy thử từng mẫu và chọn cho Form một kiểu dáng phù hợp
Thông thường chọn Standard Next
Trang 40 Bước 5: Hoàn thiện công việc
- Đặt tiêu đề hiển thị cho Form, tiêu đề này cũng sẽ là tên của Form (tuy nhiên tên Form có thể được thay đổi ở cửa sổ các đối tượng CSDL mà không ảnh hưởng đến tiêu đề Form)
- Lựa chọn Open the form to view or enter information: hiển thị Form sau khi click Finish
- Lựa chọn Modify the form’s design: mở giao diện Form Design để chỉnh sửa Form
Nếu lựa chọn hiển thị Form thì:
Chỉnh sửa lại tên các nhãn, tiêu đề trong Form: click biểu tượng thiết kế Form
Xem/Thiết
kế Form
Hiển thị bản ghi đầu tiên
Hiển thi bản ghi trước đó
Hiển thị bản ghi tiếp theo
Hiển thị bản ghi cuối cùng
Thêm bản ghi mới