Professional Documents
Culture Documents
BÀI GIẢNG
BÀI GIẢNG
i
4.4. Mở một CSDL đã có trong máy tính ........................................................................
. . Các đối tượng chính của một CSDL Access ............................................................
4.6. Các toán tử sử dụng trong MS Access .....................................................................
4.7. Một số hàm sử dụng trong MS Access.....................................................................
4.8. Bài tập ......................................................................................................................
ii
CHƯƠNG . BIỂU MẪU (FORM) ............................................................................................... 6
7.1. Khái niệm Form .......................................................................................................
7.2. Sử dụng Form Wizard để tạo Form..........................................................................
7.3. Sử dụng Design View để tạo Form ..........................................................................
7.4. Main-Sub Form ........................................................................................................
7.5. Sử dụng nút lệnh (Command Button) ......................................................................
iii
iv
LỜI MỞ ĐẦU
Ngày nay các hệ thống thông tin đóng một vai trò quan trọng trong hoạt động
của doanh nghiệp. Các hệ thống thông tin như kế toán, khách hàng, thông tin về sản
xuất, phân phối hàng hóa… giúp quản trị doanh nghiệp một cách hiệu quả, đưa ra
các quyết định hợp lý. Sự phát triển của công nghệ thông tin làm cho việc xây dựng
và vận hành các hệ thống cơ sở dữ liệu trên được dễ dàng, tiện lợi.
Trong phạm vi của môn học Tin học ứng dụng dành cho sinh viên các ngành
kinh tế, chúng tôi quyết định chọn chủ đề cơ sở dữ liệu để giảng dạy, nhằm cung
cấp các kiến thức và kỹ năng căn bản, làm tiền đề cho người học tiếp cận với việc
xây dựng hay sử dụng các hệ thống thông tin sau này. Nội dung của môn học gồm
hai phần chính:
Phần I: Nhập môn Cơ sở dữ liệu. Phần này cung cấp các kiến thức lý thuyết
về cơ sở dữ liệu, cụ thể là mô hình tổ chức dữ liệu quan hệ và các phép toán xử lý
số liệu.
Phần II: Hệ quản trị Cơ sở dữ liệu Microsoft Access.Trong phần này, người
học ứng dụng các kiến thức trong phần I cho một phần mềm cụ thể là Microsoft
Access, rèn luyện các kỹ năng về thiết lập cơ sở dữ liệu, thực hiện các câu truy vấn,
xây dựng các biểu mẫu nhập liệu, các báo cáo…
Với thời lượng là 2 tín chỉ cho cả lý thuyết và thực hành, chúng tôi cố gắng
cung cấp những kiến thức cơ bản nhất nên cũng không thể tránh những thiếu sót.
Chúng tôi mong nhận được những ý kiến đóng góp để môn học được hoàn thiện
hơn.
v
vi
Phần I
NHẬP MÔN CƠ SỞ DỮ LIỆU
2
CHƯƠNG . TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
1.1. Các khái niệm
1) Dữ liệu (Data)
Dữ liệu là các sự kiện có thể ghi nhận lại được và có một ngữ nghĩa nào đó. Ví dụ:
Tên của một người: 'Nguyễn Văn Tuấn'
Số điện thoại: ' . 2 . '
Địa chỉ: '120 Ngô Gia Tự'
Ngày sinh: 21/12/1990
2) Cơ sở dữ liệu (Database)
Cơ sở dữ liệu là một tập hợp các dữ liệu có liên quan với nhau, được lưu trữ trên các
thiết bị trữ tin, thỏa mãn yêu cầu sử dụng cho nhiều người dùng khác nhau và cho những
mục đích khác nhau.
Ví dụ: Thông tin của sinh viên Trường Đại học Nha Trang như họ tên, địa chỉ, quê
quán, giới tính, ngày sinh được lưu trữ trong sổ sách (trước đây) hoặc trong hệ thống máy
tính (hiện nay). Các thông tin này hình thành nên một cơ sở dữ liệu về sinh viên và được
các phòng ban của trường sử dụng nhằm phục vụ cho các nhu cầu quản lý khác nhau.
Các tính chất của cơ sở dữ liệu:
Một cơ sở dữ liệu đại diện cho một vấn đề nào đó trong thế giới thực. Chẳng hạn
như cơ sở dữ liệu về sinh viên của một trường đại học, cơ sở dữ liệu về hàng hóa
và khách hàng của một công ty… Những thay đổi trong thế giới thực sẽ được
phản ánh lại trong cơ sở dữ liệu.
Các dữ liệu trong cơ sở dữ liệu phải liên quan với nhau theo một ý nghĩa logic nào
đó. Tập hợp các dữ liệu ngẫu nhiên không thể được xem là một cơ sở dữ liệu
Cơ sở dữ liệu đáp ứng được các yêu cầu khác nhau của nhiều người sử dụng.
3) Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS)
Cơ sở dữ liệu có thể được tạo ra và quản lý thủ công trên sổ sách hoặc trên máy tính.
Ở đây chỉ quan tâm đến cơ sở dữ liệu trên máy tính.
Một hệ quản trị cơ sở dữ liệu là một hệ thống các phần mềm máy tính cho phép
người sử dụng có thể tạo và quản lý một cơ sở dữ liệu. Hệ quản trị CSDL có các chức năng
chính sau:
Định nghĩa dữ liệu: tạo cấu trúc để lưu trữ dữ liệu tùy theo mục đích của cơ sở dữ
liệu.
Thao tác dữ liệu: cho phép người dùng có thể truy vấn các dữ liệu trong cơ sở dữ
liệu, hay cập nhật các thay đổi trong thế giới thực vào cơ sở dữ liệu.
Chia sẻ: cho phép nhiều người dùng có thể khai thác dữ liệu một cách đồng thời.
Bảo vệ hệ thống: nhằm bảo đảm cho cơ sở dữ liệu luôn an toàn trong trường hợp
xảy ra hỏng hóc phần cứng cũng như phần mềm máy tính. Bảo vệ khỏi các hành
vi phá hoại từ bên ngoài.
Người dùng
Hệ Quản trị
Cơ sở dữ liệu
Phần mềm xử lý thao tác trên
dữ liệu
Cấu trúc Cơ sở
cơ sở dữ dữ liệu
Trong mô hình dữ liệu quan hệ, một cơ sở dữ liệu là một tập hợp các quan hệ. Mỗi
quan hệ có thể được xem là một bảng các giá trị.
KhachHang MaKH HoTen DiaChi
A001 Nguyễn Trang 12 Hồng Bàng
B002 Lê Cường 60 Trần Phú
C003 Mai Nguyễn 22 Bạch Đằng
Mỗi dòng trong bảng thể hiện một đối tượng hay một sự kiện trong thế giới thực.
Mỗi dòng gồm nhiều giá trị có liên quan với nhau. Tên cột giúp thể hiện ý nghĩa của các
giá trị trong một dòng. Ví dụ bảng trên được gọi là bảng KhachHang vì mỗi dòng cho biết
thông tin về một đối tượng khách hàng cụ thể. Các tên cột MaKH, HoTen, DiaChi cho biết
ý nghĩa của từng giá trị trong dòng đó.
Theo thuật ngữ của mô hình quan hệ, mỗi dòng được gọi là một bộ, tiêu đề của các
cột được gọi là thuộc tính, một bảng được gọi là một quan hệ. Phần tiếp theo sẽ định nghĩa
các khái niệm bộ, thuộc tính, quan hệ một cách chính xác hơn.
3) Quan hệ
Một quan hệ r phát sinh từ lược đồ quan hệ R(A , A , …, An) là một tập hợp m bộ r
= {t , t , …, tm }, trong đó mỗi bộ là một danh sách n giá trị t = {v ,v ,…, vn}, mỗi giá trị vi
là tương ứng với thuộc tính Ai
Ví dụ: xét quan hệ sv phát sinh từ lược đồ quan hệ SinhVien(MaSV, Ho, Ten,
SoCMND, NgaySinh, TOEIC) trên. Quan hệ này có 4 bộ:
t = { ‘5202’ , ‘Cường’ , ‘333’ , 2 /5/ 99 , 500 }
t2 = { ‘5207’ , ‘Sơn’ , ‘456’ , 7/7/ 990 , 400 }
t3 = { ‘5306’ , ‘Nga’ , ‘777’ , 22/3/ 992 , 200 }
t4 = { ‘5308’ , ‘Trang’ , ‘ 23’ , 2/7/ 990 , 700 }
Trong quan hệ trên, mỗi bộ t , t , t , t đại diện cho một đối tượng sinh viên cụ thể.
Trong bộ t giá trị v = ‘Cường’ tương ứng với thuộc tính A là HoTen cho biết HoTen của
sinh viên này là ‘Cường’. Để đơn giản và rõ ràng, quan hệ sv trên được trình bày lại theo
dạng bảng như hình bên dưới :
Từ lược đồ quan hệ SinhVien, cũng có thể xây dựng một quan hệ sv2 khác gồm 5 bộ
ứng với 5 sinh viên, hoặc một quan hệ sv3 cũng có bộ nhưng có thông tin MaSV, HoTen
khác.
Định nghĩa trên cho thấy ứng với một lượt đồ quan hệ, thì có thể có nhiều quan hệ
khác nhau. Xét tại một thời điểm nào đó thì chỉ có một quan hệ phản ánh đúng thực tế
trong thế giới thực. Quan hệ đó được gọi quan hệ hiện hành. Khi thế giới thực thay đổi,
quan hệ hiện hành cũng thay đổi theo bằng các thao tác thêm, xóa, sửa. Chẳng hạn như tiếp
nhận thêm một sinh viên mới vào học (thêm), thay đổi DiemTOEIC của một sinh viên
(sửa). Do đó khi nói đến tên của một lược đồ quan hệ, ví dụ R hay SinhVien, chúng ta
ngầm hiểu rằng đó cũng là tên của quan hệ hiện hành của lược đồ đó. Còn tên đi kèm với
danh sách thuộc tính, R(A , A , …, An) hay SinhVien(MaSV, HoTen,…), thì chỉ có một ý
nghĩa duy nhất là lược đồ quan hệ.
Tính thứ tự của các bộ trong quan hệ: Thứ tự của các bộ trong một quan hệ là không
quan trọng: theo định nghĩa quan hệ là một tập hợp của các bộ, nên thứ tự các bộ là không
có ý nghĩa. Theo lý thuyết tập hợp thì {A, B, C} = {C, B, A}
Giá trị NULL:
Trong một số trường hợp, trong một bộ giá trị của một thuộc tính là không có hoặc
có nhưng không được biết. Giá trị NULL được sử dụng trong các trường hợp này. Xét bộ
sau trong quan hệ SinhVien
t = { ‘5306’ , ‘Nga’ , ‘777’ , NULL , NULL }
Bộ trên có giá trị NULL tại thuộc tính ngày sinh và thuộc tính điểm TOEIC. Đối với
thuộc tính điểm TOEIC do sinh viên chưa thi nên chưa có điểm (không có). Đối với thuộc
tính ngày sinh, do giấy tờ bị thất lạc và cha mẹ không nhớ, nên chưa xác định được ngày
sinh chính xác cho sinh viên này (ngày sinh có nhưng không biết, có thể được bổ sung
sau). Cả hai trường hợp đều dùng giá trị NULL.
SinhVien
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
MonHoc
MaMH TenMH SoTinChi
LopHoc
MaLop MaMH HocKy NamHoc GiaoVien
KetQua
MaSV MaLop Diem
Hình I- . Lược đồ cơ sở dữ liệu quan hệ DaiHoc
Như vậy, khi nói đến một cơ sở dữ liệu, chúng ta ngầm hiểu là nói đến cả lược đồ
của cơ sở dữ liệu đó cùng với trạng thái hiện hành phản ánh thực tế trong thế giới thực
tương ứng.
SinhVien
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
MonHoc
MaMH TenMH SoTinChi
LopHoc
MaLop MaMH HocKy NamHoc GiaoVien
KetQua
MaSV MaLop Diem
2.3.2. Mối liên hệ giữa các quan hệ. Ràng buộc Khóa ngoại
Xét hai quan hệ SinhVien và Khoa trong cơ sở dữ liệu DaiHoc
Khoa MaKhoa TenKhoa
CN Công nghệ Thông tin
KT Kinh tế
Trong thực tế, giữa hai đối tượng Khoa và SinhVien có mối liên hệ là một Khoa thì
có nhiều sinh viên và một sinh viên thì trực thuộc một Khoa nào đó. Ta gọi đây là mối liên
hệ một – nhiều (Khoa -1, SinhVien - ∞ ) Hay nói cách khác Khoa là quan hệ cha, SinhVien
2
là quan hệ con. Vì vậy trong lược đồ quan hệ SinhVien có thuộc tính MaKH để biểu diễn
mối liên hệ này.
Khoa
MaKhoa TenKhoa
SinhVien
MaSV Ho Ten NgaySinh GioiTinh HocBong MaKH
Lúc này thuộc tính MaKH được gọi là khóa ngoại của quan hệ SinhVien (quan hệ
con) vì nó tham chiếu đến khóa chính MaKhoa của quan hệ Khoa (quan hệ cha)
Ràng buộc toàn vẹn về khóa ngoại phát biểu rằng: với một giá trị tại thuộc tính khóa
ngoại trong quan hệ con, thì giá trị đó phải tồn tại trước trong quan hệ cha.
Xét ví dụ :
Khoa MaKhoa TenKhoa
CN Công nghệ Thông tin
KT Kinh tế
Đây là một trạng thái không hợp lệ vì tại bộ thứ của quan hệ SinhVien, MaKH
‘NN’ chưa tồn tại tại thuộc tính MaKhoa ở bất cứ bộ nào trong quan hệ Khoa. Trạng thái
sau đây mới được gọi là hợp lệ.
Khoa MaKhoa TenKhoa
CN Công nghệ Thông tin
KT Kinh tế
NN Ngoại ngữ
Như vậy, có thể thiết lập các mối quan hệ và ràng buộc toàn vẹn về khóa ngoại cho
lượt đồ cơ sở dữ liệu DaiHoc như sau:
Khoa
MaKhoa TenKhoa
SinhVien
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
MonHoc
MaMH TenMH SoTinChi
LopHoc
MaLop MaMH HocKy NamHoc GiaoVien
KetQua
MaSV MaLop Diem
Hình I- . Mối liên hệ và ràng buộc khóa ngoại giữa các lượt đồ quan hệ trong
CSDL DaiHoc
a) Hãy thiết lập các ràng buộc toàn vẹn về khóa chính và khóa ngoại.
b) Cho biết các thao tác sau có vi phạm ràng buộc toàn vẹn hay không, nêu lý do:
Thêm bộ { ‘A00 ’, ‘Sơn Hà’, ’33 Hồng Lĩnh’ } vào quan hệ KhachHang.
Thêm bộ { ‘S02, ‘Sữa chua Yomost’, ’Lốc’, 4500 } vào quan hệ
MatHang.
Thêm bộ { ‘005’, ‘ 2/2/20 0’, ‘A004’ } vào quan hệ HoaDon
Xóa khách hàng có tên ‘Lê Cường’ trong quan hệ KhachHang
Xóa mặt hàng có tên ‘Kem Monte-Rosa’ trong quan hệ MatHang
Xóa hóa đơn ‘ ’ trong quan hệ HoaDon (có CASCADE DELETE)
Xóa mặt hàng bán ‘S ’ của hóa đơn ‘ 2’ trong quan hệ MatHangBan.
Trong quan hệ KhachHang, sửa MaKH ‘A ’ thành ‘A 2’
Trong quan hệ KhachHang, sửa MaKH ‘B 2’ thành ‘B ’ (có
CASCADE UPDATE)
Trong quan hệ MatHang sửa đơn giá của mặt hàng ‘S ’ thành .
Trong quan hệ HoaDon, sửa MaKH của hóa đơn thành ‘D ’
CHƯƠNG . ĐẠI SỐ QUAN HỆ
Các thao tác trên cơ sở dữ liệu có thể được chia thành hai loại. Loại thứ nhất là cập
nhật dữ liệu vào các quan hệ, đó là các thao tác thêm, xóa, sửa đã được trình bày trong
chương 2. Loại thứ hai là truy xuất dữ liệu từ các quan hệ, hay còn gọi là truy vấn (query).
Sau đây là một ví dụ về truy vấn trong cơ sở dữ liệu DaiHoc:
Hãy cho biết bảng điểm (gồm tên các môn học và điểm số tương ứng) của sinh viên
có mã số ‘ ’. Kết quả của truy vấn này cũng có dạng quan hệ như sau:
MaSV HoTen MaMH TenMH SoTinChi Diem
5308 Phạm Trang 306 Tin học cơ sở 2
5308 Phạm Trang 403 Kế toán tài chính 3
Mô hình dữ liệu quan hệ định nghĩa các phép toán dùng để truy vấn. Tập hợp các
phép toán này được gọi là đại số quan hệ. Một dãy các phép toán tạo thành một biểu thức
đại số quan hệ. Trước khi đi vào các phép toán đại số quan hệ, phần 3.1 trình bày lại một
số khái niệm về các biểu thức cơ bản.
Ngoài các phép so sánh, chúng ta còn có các phép AND, OR, XOR. Mục đích là để
kết hợp hai biểu thức logic thành một biểu thức logic khác theo bảng bên dưới :
a b a AND b a OR b NOT a
đúng đúng đúng đúng sai
đúng sai Sai đúng sai
sai đúng sai đúng đúng
sai sai sai sai đúng
Ví dụ :
Biểu thức Kết quả
Year(NgaySinh)= 1992 AND HocBong> 0 Sinh viên sinh năm 1 2 và học bổng trên 500
(HocBong>=200) AND (HocBong<=500) Có học bổng từ 200 đến 500
(Ten= 'Trang') OR (Ten= 'Lan') Sinh viên tên Trang hoặc tên Lan
2
Ví dụ 2: Liệt kê các sinh viên sinh năm và có học bổng trên
Phép chiếu cũng có thể tạo ra một thuộc tính mới cho quan hệ kết quả:
2
Sau đây là một ví dụ minh họa phép chiếu kết hợp với phép chọn:
Ví dụ : Liệt kê các sinh viên sinh năm và có điểm HocBong trên , chỉ liệt
kê các cột MaSV, Ho, Ten, NgaySinh
MaSV, HoSV, TenSV, NgaySinh [ Year(NgaySinh)=1990 AND HocBong > 300 (SinhVien)]
Tuy nhiên nếu thực hiện phép chiếu trước sẽ gây ra lỗi vì sau khi thực hiện phép
chiếu thì không còn thuộc tính HocBong để thực hiện phép chọn. Biểu thức sau đây là biểu
thức sai:
Year(NgaySinh) = 1990 AND HocBong > 300[MaSV, HoSV, TenSV, NgaySinh (SinhVien)]
22
Ví dụ: SinhVien × Khoa
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
5202 Lê Cường 21/5/1 1 Nam 200 KT
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT
520 Ngô Hòa 16/8/1 0 Nam 200 CN
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN
5308 Phạm Trang 12/7/1 0 Nữ 800 CN
MaKhoa TenKhoa
CN Công nghệ Thông tin
KT Kinh tế
Bản thân phép tích Descartes ít có ý nghĩa thực tế. Tuy nhiên phép tích Descartes là
cơ sở cho phép kết nối được trình bày trong phần tiếp theo.
2
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH MaKhoa TenKhoa
5202 Lê Cường 21/5/1 1 Nam 200 KT CN Công nghệ Thông tin
5202 Lê Cường 21/5/1 1 Nam 200 KT KT Kinh tế
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT CN Công nghệ Thông tin
5207 Nguyễn Sơn 17/7/1 0 Nữ 800 KT KT Kinh tế
520 Ngô Hòa 16/8/1 0 Nam 200 CN CN Công nghệ Thông tin
520 Ngô Hòa 16/8/1 0 Nam 200 CN KT Kinh tế
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN CN Công nghệ Thông tin
5306 Huỳnh Nga 22/3/1 2 Nữ 400 CN KT Kinh tế
5308 Phạm Trang 12/7/1 0 Nữ 800 CN CN Công nghệ Thông tin
5308 Phạm Trang 12/7/1 0 Nữ 800 CN KT Kinh tế
Cách thực hiện một tích Descartes và sau đó là một phép chọn có điều kiện bằng như
vậy được gọi là phép kết nối bằng.
Cú pháp:
QuanHe1 ⋈ điều-kiện-bằng QuanHe2
Ví dụ trên được viết lại là:
SinhVien ⋈ MaKH = MaKhoa Khoa
Trong trường hợp các thuộc tính để kết nối bằng ở cả hai quan hệ giống tên nhau thì
phép kết nối bằng được gọi là phép kết nối tự nhiên. Lúc này chỉ cần viết phép toán kết nối
mà không cần viết danh sách điều-kiện-bằng đi kèm.
Ví dụ Hãy cho biết tên môn học ứng với các lớp học
LopHoc ⋈ MonHoc
(ngầm hiểu điều kiện bằng là thuộc tính MaMH ở cả hai quan hệ)
Kết quả:
MaLop MaMH HocKy NamHoc GiaoVien MaMH TenMH SoTinChi
01 306 1 2010 Tuấn 306 Tin học cơ sở 2
02 403 1 2010 Nga 403 Kế toán tài chính 3
03 306 2 2011 Sơn 306 Tin học cơ sở 2
04 207 1 2010 Nam 207 Cấu trúc dữ liệu 3
Trong quan hệ kết quả, do có 2 thuộc tính MaMH nên có hai cách xử lý:
Chỉ giữ lại một thuộc tính MaMH
Dùng tên quan hệ để phân biệt: LopHoc.MaMH và MonHoc.MaMH
2
Ví dụ Hãy cho biết MaSV, HoSV, TenSV các sinh viên có theo học những lớp do
giáo viên ‘Tuấn’ giảng dạy:
Đếm số SV
Tách nhóm
trong nhóm
theo mã khoa
MaKhoa SoSV TongHB
KT 2 1.000
CN 3 1.400
Cách thức thực hiện như trên được gọi là phép nhóm.
2
Cú pháp:
Hàm Count được được gọi là hàm gộp (aggregate function). Danh sách các hàm gộp
được liệt kê bên dưới
Tên hàm Mục đích
Count Đếm số bộ
Sum Tính tổng các giá trị
Avg Tính giá trị trung bình
Max Tìm giá trị lớn nhất
Min Tìm giá trị nhỏ nhất
Ví dụ 11: Tính học bổng cao nhất, thấp nhất, và trung bình của các sinh viên theo
từng khoa
Ví dụ 12: mở rộng ví dụ , tính số sinh viên của từng Khoa, liệt kê các thuộc tính:
MaKhoa, TenKhoa, SoSV.
Để có thêm cột TenKhoa, cần thực hiện phép kết giữa bảng SinhVien và bảng Khoa,
sau đó thực hiện phép nhóm như bình thường, tuy nhiên cột TenKhoa phải được đưa vào
làm thuộc tính nhóm chung với MaKhoa
2
Ví dụ 1 : Cho biết sĩ số của từng lớp học. Liệt kê: MaLop, TenMH, SiSo
Ví dụ 14: Dựa vào bảng KetQua và bảng MonHoc, tính điểm trung bình học kỳ 1
năm 2 của các sinh viên theo quy tắc.
∑
∑
tam NamHoc=2010 AND HocKy= 1 (KetQua ⋈ LopHoc ⋈ MonHoc)
2
3.7. Bài tập
1) Cho cơ sở dữ liệu về BanHang như bên dưới:
Hãy cho biết biểu thức đại số quan hệ để thực hiện các câu truy vấn sau và cho biết
nội dung kết quả của từng câu truy vấn:
a) Liệt kê tên các mặt hàng có đơn giá lớn hơn 10.000 (MaMH, TenMH, DonGia)
b) Cho biết tên khách hàng ứng với từng hóa đơn (MaHD, NgayHD, TenKH)
c) Hãy cho biết tên các khách hàng đã mua mặt hàng ‘Sữa chua Vinamilk’
d) Liệt kê tên các mặt hàng bán được trong ngày 12/2/2010
e) Tính thành tiền của từng hóa đơn (MaHD, NgayHD, TenKH, ThanhTien)
f) Cho biết tên các mặt hàng mà khách hàng ‘Nguyễn Trang’ đã mua, với tổng số
lượng và trị giá là bao nhiêu.
g) Tính doanh thu bán hàng theo từng ngày (NgayHD, DoanhThu)
h) Tính doanh thu bán hàng theo từng ngày của từng mặt hàng (NgayHD,
TenMatHang, DoanhThu)
2
2) Cho cơ sở dữ liệu về quản lý các dự án của một công ty như sau:
Hãy cho biết khóa chính, mối liên hệ và ràng buộc khóa ngoại giữa các quan hệ trong
cơ sở dữ liệu trên.
Thực hiện các câu truy vấn sau bằng biểu thức đại số quan hệ và cho biết nội dung
kết quả của từng câu truy vấn:
a) Liệt kê các phòng ban và tên trưởng phòng của từng phòng ban (họ tên đầy đủ).
b) Tìm các nhân viên lương ít hơn . . ở ‘Phòng Kinh doanh’ hoặc ít hơn
. . ở ‘Phòng Kế toán’.
c) Liệt kê các nhân viên và cho biết tên trưởng phòng của từng nhân viên đó.
d) Hãy cho biết các phòng ban nào có thực hiện dự án tại ‘Nha Trang’.
e) Tính mức lương trung bình của từng phòng ban.
f) Trong các dự án thực hiện tại Nha Trang, tính tổng số giờ nhân viên của từng dự
án.
g) Với mỗi giờ làm việc cho dự án, một nhân viên sẽ được thưởng 1% tiền lương.
Tính số tiền thưởng của từng nhân viên.
h) Tính số tiền thưởng của từng nhân viên theo từng dự án.
2
Phần II
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
MICROSOFT ACCESS
2
CHƯƠ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.
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.
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ệ)
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.
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.
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.
Mô tả dữ liệu 2 bảng như sau:
Tên trường
Mô tả ngắn gọn của trường
Khóa
Kích thước của trường
chính
Tiêu đề cột mà Quy định dạng hiển thị dữ liệu
trường hiển thị
Quy định dạng thức dữ liệu
phải nhập
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
Khai 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
Loại số Độ lớn
Byte số nguyên byte
Integer số nguyên 2 byte
Long Integer số nguyên byte
Single số thực byte
Double số thực 2 byte
Decimal số thực byte
d) Format
Định dạng cách thể hiện của dữ liệu khi hiển thị hoặc khi in ấn.
Kiểu chuỗi: gồm 3 phần
[Phần 1];[Phần 2];[Phần 3]
Trong đó:
- 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
Ký tự Tác dụng
@ Chuỗi ký tự
"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)
2
Ví dụ
Cách định dạng Dữ liệu nhập vào Hiển thị
2 2 -
@@@-@@@
abcdef abc-def
> Tinhoc TINHOC
< TinHoc tinhoc
ABC ABC
@; "Không có"; "Chưa nhập" Không có
Null Chưa nhập
Kiểu Yes/No
Định dạng do ACCESS cung cấp
Định dạng Tác dụng
Yes / No Đúng Sai
True / False Đúng Sai
On / Off Đúng Sai
Định dạng do người sử dụng: Gồm 3 phần
;[Phần 1];[Phần 2]
Trong đó:
- Phần : Trường hợp giá trị trường đúng
- Phần 2: Trường hợp giá trị trường sai
Ví dụ
Định dạng Hiển thị
Trường hợp True Trường hợp False
"Nam" "Nữ" Nam Nữ
;"Có";"Không" Có Không
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
e) Input Mask
Mặt nạ định dạng dữ liệu, người sử dụng bắt buộc phải nhập dữ liệu cho trường đúng
theo quy định đã cài đặt ở thuộc tính này.
Ký tự Tác dụng
Bắt buộc nhập ký tự số
Không bắt buộc nhập, ký tự số
# Không bắt buộc nhập, số 0-9, khoảng trắng, dấu + và -
L Bắt buộc nhập, ký tự chữ
? Không bắt buộc nhập, ký tự chữ hoặc khoảng trắng
a Bắt buộc nhập, ký tự chữ hoặc số
A Không bắt buộc nhập, ký tự chữ hoặc số
& Bắt buộc nhập, ký tự bất kỳ
C Không bắt buộc nhập ký tự bất kỳ
< 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ụ:
Input Mask Dữ liệu nhập vào
( ) - ( ) 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.
h) 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ụ:
Validation rule Tác dụng
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
No : Không tạo chỉ mục
Đồ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 2
bả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:
Chú ý: Khi thiết lập mối quan hệ phải đóng tất cả các bảng tham gia.
5.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)
Bảng có
quan hệ
nhiều (∞)
Trường khóa
ngoại đến
bảng quan hệ
Kiểu thể hiện
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ị
trùng khoá.
Lỗi do: Không nhập dữ liệu ở trường bắt buộc nhập dữ liệu (những trường được thiết
lập thuộc tính Required=Yes)
Khắc phục: Phải nhập đủ dữ liệu cho các trường bắt buộc phải nhập dữ liệu.
Lý 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á).
Bước 3: Thiết lập điều kiện lọc trên trường đang chọn
2
CHƯƠ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ư
phép chiếu, chọn kết, gom nhóm.
Có các loại query sau trong Access:
Query truy vấn:
Select Query
Group by Select Query
Crosstab Query
Query thêm, xóa, sửa dữ liệu:
Append Query
Delete Query
Update Query
Make Table Query
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.
Sắp xếp
B
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
Đ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ả:
Đếm số SV
Tách nhóm
trong nhóm
theo mã khoa
MaKhoa SoSV TongHB
KT 2 1.000
CN 3 1.400
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.
Sau đó đư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.
Ở đâ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
Ví 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.
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.
6.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 Cấu trúc dữ liệu Kế toán tài chính Tin học cơ sở
5202 Lê Cường
Row heading 5308 Phạm Trang
Max(3, 9)
Để 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
Phầ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:
2
Ví 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.
6.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.
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à:
6.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ã ‘ ’.
MaSV MaLop Diem
5202 01 4
5202 02 7
5202 03 8
5202 04
5308 01 3
5308 02
5308 03
Để thực hiện truy vấn này, trước tiên ta tạo một Select Query cho bảng KetQua với
trường được chọn là MaLop
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.
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.
6.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
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.
CHƯƠ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ế.
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.
- Đặ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ì:
Xem/Thiết
kế Form
Danh sách các trường Bật/Tắt cửa sổ Bật/Tắt cửa sổ Bật/Tắt cửa sổ
của nguồn dữ liệu nguồn dữ liệu Toolbox thuộc tính của form
(Table/Query)
Nguồn dữ liệu
Cửa sổ các
Phần tiêu đề Phần thân công cụ thiết kế Cửa sổ thuộc tính
cuối form (Toolbox) của form
1) Cửa sổ thuộc tính (Properties): mô tả chi tiết về đối tượng của form đang được thiết kế
Chú ý:
- Nguồn dữ liệu được sử dụng để hiển thị trên form được khai báo ở thẻ All của
đối tượng Form
- Muốn thay đổi định dạng của đối tượng trên form (ví dụ: font chữ, màu nền,
màu chữ…) thì chọn đối tượng tinh chỉnh ở cửa sổ thuộc tính.
2) Thanh công cụ Toolbox: nơi chứa những đối tượng, những công cụ có thể đưa lên
form với mục đích thiết kế giao diện và điều khiển dữ liệu theo mục đích thiết kế.
3) Field List: hiển thị danh sách các trường của nguồn dữ liệu được khai báo ở cửa sổ
thuộc tính. Muốn hiển thị dữ liệu của trường nào trên form chỉ cần kéo trường đó
trong Field List vào Form Design.
2
7.4. Main-Sub Form
Đặt vấn đề: cần xây dựng một Form hiển thị thông tin các Khoa, khi một Khoa được
hiển thị thì phải hiển thị luôn danh sách sinh viên thuộc Khoa đó.
Trong trường hợp này, Access cung cấp kỹ thuật tạo form có thể thỏa mãn yêu cầu
trên, form được tạo ra được gọi là Main-Sub form. Có thể hiểu Sub form là form này lồng
trong form kia (có thể lồng trong nhau nhiều lớp). Form chứa gọi là form cha (Main form);
form được lồng vào gọi là form con (Sub form). Việc xử lý dữ liệu trên từng form có thể
xử lý độc lập hoặc có quan hệ với nhau tuỳ theo mục đích công việc.
Ví dụ: các bước tạo một một Main-Sub form cho bảng Khoa và SinhVien như hình
bên dưới:
Cách 1: Tạo Main Form và Sub Form riêng rồi liên kết lại với nhau:
Bước 1: Tạo Form hiển thị cho bảng Khoa bằng Wizard và chọn Style Columnar.
Đặt tên cho Form này là Khoa_MainForm
Bước 2: Tạo Form hiển thị cho bảng SinhVien bằng Wizard và chọn Style DataSheet, tên
là SinhVien_SubForm. Form này có hình dạng tương tự như phần DataView của table
SinhVien.
Bước 3: Mở Form Khoa ở chế độ Design View → Mở rộng phần Detail → Kéo
Form SinhVien_SubForm vào phần trống vừa được tạo ra.
Bước 4: Điều chỉnh giao diện và chuyển qua Form View
Trong Sub Form SinhVien hiển thị các sinh viên thuộc Khoa Công nghệ Thông tin.
Giao diện Main-Sub như trên trình bày những sinh viên trong từng khoa. Đồng thời
có thể tiến hành thêm, xóa, sửa thông tin SinhVien.
Cách 2: Tạo Main-Sub Form cùng lúc:
Bước 1: Sử dụng form Wizard, chọn các thuộc tính của bảng Khoa:
Bước : Chọn tiếp các thuộc tính của bảng SinhVien:
Bước : trong mục này chọn là “by Khoa” để tạo Main-Sub form (nếu chọn “by
SinhVien” thì chỉ là form thường)
Bước : trong mục này chọn là “by Khoa” để tạo Main-Sub form. Access tự động
hiểu rằng Khoa là Main-Form còn SinhVien là Sub-Form.
Kết quả đạt được cũng tương tự như việc tạo 2 form riêng rồi liên kết lại với nhau:
Access cung cấp tính năng Control Button Wizard giúp người thiết kế tạo một số
loại nút lệnh mà không cần biết nhiều đến lập trình. Dưới đây là các bước sử dụng:
Ví dụ: Tạo nút
Bước : Mở rộng phần Detail của Form, chọn biểu tượng tạo nút lệnh trên
Toolbox, dùng chuột vẽ nút lệnh ở vị trí thích hợp
Bước : Một hộp thoại xuất hiện yêu cầu chọn hành động cho nút lệnh
- Categories: chứa các nhóm thao tác mà một nút lệnh có thể nhận
- Actions: chứa danh sách các lệnh của mỗi nhóm.
- Tuỳ chọn Text nếu muốn hiển thị nội dung bằng chữ trên nút lệnh.
- Tuỳ chọn Picture nếu muốn thể hiện một hình ảnh lên nút lệnh.
Cuối cùng, nhấn Finish để kết thúc việc tạo một nút lệnh.
CHƯƠNG . BÁO CÁO (REPORT)
Report là công cụ dùng thiết kế in ấn dữ liệu hữu hiệu trong Access. Trong chương
này có các nội dung cụ thể bao gồm:
Các khái niệm về Report.
Sử dụng Report Wizard.
Việc chọn table Khoa có nghĩa là giá trị của các cột trong bảng Khoa sẽ được sử
dụng để hiển thị trên báo cáo.
Tương tự như khi tạo Form, Available Fields hiển thị các trường của bảng Khoa,
Selected Fields hiển thị các cột được chọn hiển thị trong báo cáo. Nút (>) để chọn trường,
nút (>>) để chọn tất cả các trường, nút (<) để loại bỏ trường và nút (<<) để loại bỏ tất cả
các trường.
Bước 3: Chọn trường vào trong Selected Fields và click Next.
2
Trong giao diện Grouping muốn hiển thị dữ liệu theo nhóm giá trị của trường nào thì
Add trường đó từ danh sách bên trái hộp thoại sang hộp preview bên phải hộp thoại.
Ví dụ: nếu tiến hành grouping sinh viên theo MaKhoa thì dữ liệu hiển thị trên báo
cáo có dạng như sau:
MaSV HoSV TenSV NgaySinh GioiTinh HocBong
KT
5202 Lê Cường 21/5/1 1 Nam 200
5207 Nguyễn Sơn 17/7/1 0 Nữ 800
CN
520 Ngô Hòa 16/8/1 0 Nam 200
5306 Huỳnh Nga 22/3/1 2 Nữ 400
5308 Phạm Trang 12/7/1 0 Nữ 800
Bước 4: Trong ví dụ này chỉ cần hiển thị một danh sách chung nên không cần
thiết lập nhóm ở bước này. Click Next
Giao diện này cho phép chọn trường để sắp xếp kết quả hiện thị trên báo cáo (các
dòng dữ liệu trên báo cáo sắp xếp theo trường được chọn).
Report wizard cho phép tối đa mức ưu tiên sắp xếp dữ liệu được đánh số từ đến 4.
Trường nào thiết lập trước, sẽ được ưu tiên sắp xếp trước.Trong trường hợp các giá trị
trường đó trùng nhau, Access sẽ chuyển đến các mức tiếp theo để sắp xếp. Kiểu sắp xếp
(theo chiều tăng hoặc giảm) có thể thiết lập khi nhấn nút Ascending hoặc Descending bên
cạnh trường được chọn.
Bước 5: Chọn TenKhoa và click Next.
Giao diện này cung cấp 3 lựa chọn bố cục báo cáo (Layout) là: Columnar, Tabular,
Justified và 2 cách bố trí hướng trang giấy (Orentation) là: Portrait và Landscape. Mỗi tùy
chọn trên Access đều cung cấp hình ảnh xem trước (Preview).
Trong giao diện này Access cung cấp danh sách các phong cách (style) để chọn.
Bước 7: Chọn Formal và click Next.
- Đặt tiêu đề hiển thị cho Report, tiêu đề này cũng sẽ là tên của Report (tuy nhiên
tên Report có thể được thay đổi ở cửa sổ các đối tượng CSDL mà không ảnh hưởng đến
tiêu đề Report).
- Lựa chọn Preview the report: hiển thị Report sau khi click Finish
- Lựa chọn Modify the report’s design: mở giao diện Report Design để chỉnh sửa
Nếu lựa chọn hiển thị Report thì
Hiển thị trang đầu tiên Hiển thị trang cuối cùng
Bước : Chỉnh sửa báo cáo
Click Report Design.
Phân nhóm
(Group header)
Detail
Trong khung Preview chúng ta thấy báo cáo sẽ hiển thị MaSV, HoSV và TenSV theo
từng TenKhoa.
Giao diện này cung cấp 6 lựa chọn bố cục báo cáo (Layout) và 2 cách bố trí hướng
trang giấy (Orentation). Mỗi tùy chọn trên Access đều cung cấp hình ảnh xem trước
(Preview).
Bước 6: click Next chọn Style là “Corporate” và click Next
Bước : Nhập vào tên Report và nhấn Finish
TenKhoa Header: Xuất Page Header: Xuất hiện trong mọi trang
hiện lại khi dữ liệu trong của báo cáo. (Page Footer cũng tương tự -
nhóm đã hiện thị hết Giống như header và footer trong Word)
Khoa(MaKhoa, TenKhoa)
Field Name Data Type Field Size Format Required
MaKhoa Text 2 > Yes
TenKhoa Text 50 Yes
Khoa MonHoc
MaKhoa TenKhoa MaMH TenMH SoTinChi
CN Công nghệ Thông tin 02 Quản trị học 2
KT Kinh tế 207 Cấu trúc dữ liệu 3
NN Ngoại ngữ 306 Tin học cơ sở 2
403 Kế toán tài chính 3
SinhVien
MaSV HoSV TenSV NgaySinh GioiTinh HocBong MaKH
5202 Lê Cường 2 /5/ 99 Nam 200 KT
5207 Nguyễn Sơn 7/7/ 990 Nữ 800 KT
5209 Ngô Hòa 6/8/ 990 Nam 200 CN
5306 Huỳnh Thị Nga 22/3/ 992 Nữ 400 CN
5308 Phạm Thị Trang 2/7/ 990 Nữ 800 CN
LopHoc KetQua
MaLop MaMH HocKy NamHoc GiaoVien MaSV MaLop Diem
0 306 20 0 Tuấn 5202 0 4
02 403 20 0 Nga 5202 02 7
03 306 2 20 Sơn 5202 03 8
04 207 20 0 Nam 5202 04 9
5207 02 8
5207 03 7
5209 0 5
5306 02 6
5306 04 8
5308 0 3
5308 02 9
5308 03 9
3) Thực hiện các câu truy vấn sau:
Truy vấn chọn (Select Query)
1. 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, NgaySinh, TenKhoa.
2. Cho biết thông tin môn học của lớp có mã lớp ‘ 2’. Liệt kê các thông tin MaLop,
MaMH, TenMH, SoTinChi, HocKy, NamHoc, GiaoVien.
3. Liệt kê các sinh viên sinh năm và có học bổng trên 500.
4. Liệt kê các sinh viên đạt mức học bổng từ đến 500
5. Liệt kê các sinh viên có ngày sinh vào tháng .
6. Liệt kê các sinh viên có tên bắt đầu là ‘T’ hoặc là ‘K’
7. Liệt kê những sinh Nữ mà họ có chứa chữ ‘Thị’ gồm các thông tin: MaSV, HoSV,
TenSV
8. Cho biết những SV có ngày sinh từ ngày đến ngày gồm
các thông tin: MaSV, HoSV, TenSV, NgaySinh, HocBong.
9. Tương tự như câu nhưng tạo cột HoTenSV thay cho hai cột HoSV và TenSV.
10. Hiển thị danh sách SV gồm các thông tin: MaSV, HoSV, TenSV, NamSinh, Tuoi
và Tuoi được sắp xếp giảm dần. Biết rằng Tuoi được tính như sau: Tuoi = năm
hiện hành – năm sinh.
11. Hiển thị bảng điểm các sinh viên gồm các thông tin: MaSV, HoTenSV, TenMH,
Diem, KetQua. Biết rằng nếu Diem < 5 thì KetQua = “Rớt”, ngược lại thì KetQua =
“Đậu”.
12. Hiển thị danh sách SV có tuổi từ 2 đến 2 , thông tin gồm: HoTenSV, Tuoi,
TenKhoa.
13. Cho biết hai sinh viên đạt mức học bổng cao nhất.
14. Cho biết hai kết quả thi cao nhất. Gồm các thông tin: HoSV, TenSV, TenMH,
NamHoc, HocKy, Diem.
15. Cho biết tên các môn học chưa mở lớp
16. Cho biết tên của các khoa chưa có sinh viên.
17. Liệt kê các kết quả học tập và cho biết thông tin sinh viên tương ứng. Gồm
MaSV, HoTenSV, MaLop, Diem.
2) Tạo Form Main-Sub Form cho phép nhập dữ liệu vào bảng Lớp Học và nhập kết
quả cho các sinh viên trong lớp học đó. Main-Form lấy dữ liệu từ bảng LopHoc và
Sub-Form lấy dữ liệu từ Query 17
4) Dùng Report Wizard để tạo các báo cáo sau:
1) Lập báo cáo danh sách các môn học.
2) Danh sách sinh viên theo từng khoa. Lấy dữ liệu từ hai bảng Khoa và SinhVien
3) Cho biết bảng điểm của lớp học có mã số ‘ 2’: Dữ liệu lấy từ Query 2 và Query
4) Bảng điểm học tập theo của sinh viên có mã số ‘ 2 2’. Lấy dữ liệu từ bảng
SinhVien và Query 24.
9.2. Bài tập – Quản lý Bán hàng
Tạo file CSDL có tên là QLBH.MDB (Quản lý bán hàng)
NhaCungCap(MaNhaCC, TenNhaCC)
Field Name Data Type Description Field Properties
MaNhaCC Text Mã nhà cung cấp Field size : 2
Input Mask : 00 Required : Yes
Indexed : Yes (No Duplicates)
TenNhaCC Text Tên nhà cung cấp Field size : 50
LoaiMH(MaLoaiMH, TenLoaiMH)
Field Name Data Type Description Field Properties
MaLoaiMH Text Mã loại mặt hàng Field size : 2
Input Mask : 00 Required : Yes
Indexed : Yes (No Duplicates)
TenLoaiMH Text Tên loại mặt hàng Field size : 30
MatHang(MaMH, TenMH, DVT, MaLoaiHH, MaNhaCC)
Field Name Data Type Description Field Properties
MaMH Text Mã mặt hàng Field size : 2
Input Mask : 00
Required : Yes
Indexed : Yes (No Duplicates )
TenMH Text Tên mặt hàng Field size : 30
Required : Yes
DVT Text Đơn vị tính Field size : 5
MaLoaiMH Text Mã loại mặt hàng Dùng LOOKUP (làm tương tự)
Row Source : LOAIMH
MaNhaCC Text Mã nhà cung cấp Dùng LOOKUP (làm tương tự)
Row Source : NHACUNGCAP
KhachHang
MaKH HoKH TenKH DiaChi DienThoai
KH001 Nguyễn Thị Minh Trang 12 Trần Phú, Nha Trang
KH002 Lê Công Thành Trí 34 Bắc Sơn, Nha Trang
KH003 Nguyễn Văn Nghĩa 78 Hồ Văn Huê, TpHCM 09 4235688
KH004 Đỗ Văn Bá Hòa 56 Võ Văn Tần, Đà Nẵng 09 4246899
KH005 Lê Anh Đoàn Trần Nghiệp
KH006 Nguyễn Bình Nguyễn Đình Chiểu
LoaiMH NhaCungCap
MaLoaiMH TenLoaiMH MaNhaCC TenNhaCC
0 Thức uống 0 Cty trà Thái Nguyên
02 Gia vị 02 Văn phòng đại diện sữa Hà Lan
03 Đồ làm sẵn 03 Cty sữa VinaMilk
04 Bơ sữa 04 Cty sữa đường Khánh Hòa
05 Trái cây khô 05 Cty nước giải khát Bến Thành
06 Vải 06 Công ty rượu Bình Tây
07 Cửa hàng bánh ngọt Nha Trang
08 Công ty Bia Bến Thành
09 Chợ Đầm
2
MatHang
MaMH TenMH DVT MaLoaiMH MaNhaCC
0 Trà Lipton Gói 0 0
02 Nước khoáng Thanh Da Chai 0 05
03 Xúc xích Cây 03 09
04 Lạp xưởng Kg 03 09
05 Sữa Lon 04 03
CTHDB HoaDonBan
SoHDB MaMH SoLuong DonGiaBan SoHDB MaKH MaNV NgayBan
B001 0 0 0000 B001 KH001 0 0 /0 /20 0
B002 02 200 3000 B002 KH002 02 08/03/20 0
B003 0 20 20000 B003 KH00 02 4/06/20 0
B003 03 70 7000 B004 KH003 03 2 /06/20 0
B001 04 30 5000 B005 KH001 04 3 /07/20 0
B004 05 70 7000 B006 KH003 04 / 0/20 0
B002 04 30 5000 B007 KH004 04 2 / 2/20 0
5) Thực hiện các biểu mẫu (Form) : Hãy dùng công cụ Wizard để tạo biểu mẫu
1. Tạo các biểu mẫu cho bảng NhanVien, KhachHang, MatHang
Ví dụ form NhanVien.
Thao tác: Nhập mới một số nhân viên và quan sát sự thay đổi của dữ liệu trong
bảng NhanVien.
2. Tạo biểu mẫu Loại Mặt Hàng dạng Main Sub Form. Trong đó Form chính : bảng
LoaiMatHang, Form phụ : bảng MatHang.
Thao tác: Nhập mới một số loại mặt hàng và một số mặt hàng, quan sát sự thay đổi
của dữ liệu trong bảng LoaiMH và MatHang.
3. Tạo biểu mẫu Hóa Đơn Bán dạng Main Sub Form để theo dõi chi tiết đơn đặt
hàng. Trong đó Form chính : bảng Query 10, Form phụ : Query 9.
Thao tác: Bổ sung thêm một số chi tiết bán cho hóa đơn, quan sát sự thay đổi của
số tiền tổng cộng hóa đơn
6) Thực hiện các báo cáo (Report): Hãy dùng công cụ Wizard để tạo báo cáo
1. Lập báo cáo hiển thị danh sách mặt hàng.
2. Tạo report Hóa Đơn Bán để in được hóa đơn ra giấy, sử dụng dữ liệu từ Query 2 ,
và Query 9.
3. Lập báo cáo Danh Sách Nhân Viên Bán Hàng để theo dõi quá trình bán hàng của
nhân viên. Dữ liệu lấy từ bảng NhanVien và Query 10.
4. Lập báo cáo Tổng Hợp Bán Hàng để theo dõi doanh số từng mặt hàng. Dữ liệu lấy
từ bảng MatHang và Query 9.
9.3. Bài tập – Quản lý Thư viện
Tạo file CSDL có tên là ThuVien.mdb
GiaBia Number Giá bìa của sách Field size: Long Integer
SoDauSach Text Số bản sách thư viện mua Field size: Long Integer
ChiTietPM(MaPhieu, MaSach)
Field Name Data Type Description Field Properties
MaPhieu Text Mã phiếu mượn Field size : 4
Dùng LOOKUP
Row Source : PhieuMuon
MaSach Text Mã sách mượn Field size : 4
Dùng LOOKUP
Row Source : Sach
Sach
MaSach TenSach MaLS TacGia SoTrang GiaBia SoDauSach
0 0 Đất phương nam VH Sơn Nam 300 20 000 5
0 02 Thời xa vắng VH Lê Lựu 400 50 000 0
0 03 Nhắm mắt thấy Paris VH Dương Thụy 250 45 000 5
020 Microsoft Access KH Thiện Tâm 200 30 000 20
030 Chiến lược đại dương xanh KT Mauborgne 370 55 000 25
040 Đời thay đổi khi chúng DS Mathews 220 32 000 30
ta thay đổi
DocGia
MaDG HoTenDG NgaySinh DiaChi DienThoai
DG00 Lê Hoàng Anh 2/ 0/ 99 20 Trần Phú Q2
DG002 Mai Xuân Thủy 30/07/ 985 22 Ngô Quyền Q5
DG003 Nguyễn Hồng Nam 5/06/ 987 55 Trần Hưng Đạo 09 4235688
DG004 Lê Bích Phượng 08/03/ 990 23 Trần Phú 09 4246899
DG005 Nguyễn Xuân Sơn 23/07/ 989 0 Lý thường Kiệt
PhieuMuon
MaPhieu NgayMuon NgayTra MaDG
P001 2/ 0/20 0 20/ 2/20 0 DG002
P002 22/0 /20 DG001
P003 7/ 0/20 0 25/ 0/20 0 DG001
P004 03/ /20 0 DG003
P005 03/ 2/20 0 DG004
P006 0/02/20 20/02/20 DG00
ChiTietPM
MaPhieu MaSach
P001 0 0
P00 0 02
P002 020
P002 030
P003 0 02
P004 030
P005 0 03
P006 0 0
5) Thực hiện các biểu mẫu (Form) : Hãy dùng công cụ Wizard để tạo biểu mẫu
1. Tạo các biểu mẫu cho bảng LoaiSach, Sach, DocGia
2. Tạo biểu mẫu Phiếu Mượn dạng Main Sub Form để theo dõi chi tiết phiếu mượn.
6) Thực hiện các báo cáo (Report): Hãy dùng công cụ Wizard để tạo báo cáo
1. Lập báo cáo bảng Sach.
2
2. Tạo report Phiếu mượn để in được phiếu mượn ra giấy
9.4. Bài tập 4 – Quản lý Dự án
Tạo file CSDL có tên là DuAn.mdb
NhanVien
MaNV HoNV TenNV GioiTinh NgayVaoLam Luong MaPB
N01 Hoài Nam Nam 2/ 0/ 99 3 000 000 KD
V02 Bình Phương Nữ 30/07/ 985 4 000 000 KT
N03 Mỹ Hòa Nam 5/06/ 987 5 000 000 KD
V04 Phương Anh Nữ 08/03/ 990 5 000 000 KT
N05 Sơn Thủy Nữ 23/07/ 989 4 500 000 PX
DuAn
MaDA TenDA DiaDiem NgayBD MaPB
D1 Hồ Con Rùa Sài Gòn 27/03/20 KD
D2 Chùa Tây Phương Hà Nội 0/06/2009 KD
D3 Chùa Linh Sơn Nha Trang 6/08/20 KD
D4 Dinh Bảo Đại Nha Trang 22/0 /20 0 KT
D5 Chùa Thầy Hà Nội 23/05/20 0 KT
PhanCong
MaDA MaNV SoGio
D1 N01 2
D1 N03 5
D2 N01 6
D2 V02 8
D3 V02 0
D3 V04 7
D3 N01 9
D4 N03 4
ThanNhan
MaNV TenThanNhan NgaySinh QuanHe
N01 Nam 2/ 0/ 990 Con gái
N01 Quốc 22/0 / 98 Con trai
V02 Sơn 7/ 0/200 Vợ chồng
N03 Hà 03/ / 998 Con gái
V04 Việt 03/ 2/2002 Con trai
V04 Nam 0/02/ 985 Vợ chồng
5) Thực hiện các biểu mẫu (Form) : Hãy dùng công cụ Wizard để tạo biểu mẫu
1. Tạo các biểu mẫu dạng columnar cho bảng PhongBan, DuAn
2. Tạo biểu mẫu Main/Sub Form cho bảng NhanVien (main) và ThanNhan (sub)
3. Tạo biểu mẫu Main/Sub Form cho bảng DuAn (main) và NhanVien (sub)
6) Thực hiện các báo cáo (Report): Hãy dùng công cụ Wizard để tạo báo cáo
1. Lập báo cáo bảng NhanVien.
2. Lập báo cáo thống kê các dự án, mỗi dự án có những nhân viên nào tham gia với số
giờ là bao nhiêu.
TÀI LIỆU THAM KHẢO
[1] Cơ sở dữ liệu 1 - Nguyễn Đức Thuần - Trường Đại học Nha Trang, 2009.
[2] Hệ quản trị CSDL Access - Nguyễn Quỳnh Diệp - Khoa CNTT Trường Đại
học Sư Phạm Hà nội, 2007.
[3] Giáo Trình Microsoft Access 2003 tập 1 - Nguyễn Thiện Tâm - Đại học Quốc
gia TP. Hồ Chí Minh, 2008.
[4] Fundamental of Database System 4th Edition – Elmasri, Navathe - Addison
Wesley, 2003.