ườ
ệ ố
ạ ọ ng Đ i h c Nha Trang Tr ệ Khoa Công ngh Thông tin ộ B môn H th ng Thông tin
Ọ Ứ
Ụ TIN H C NG D NG TRONG KINH TẾ
ủ ễ Nguy n Th y Đoan Trang trangdhnt@gmail.com
2013
1
ệ
ổ ờ Phân b th i gian Tài li u h c t p ọ ậ
Bài giảng Tin học Ứng dụng trong kinh tế, BM
Hệ thống Thông tin, Đại học Nha Trang, 2013. ệ
ả
Tài li u tham kh o
webmonhoc.ntu.edu.vn trangdhnt.tk Thư viện trường đại học Nha Trang Các trang web khác trên Internet
22
2013
ộ
N i dung
Cơ sở dữ liệu theo mô hình dữ liệu quan hệ
1
Đại số quan hệ
2
Tổ chức cơ sở dữ liệu và thiết kế bảng (Table)
3
Thiết kế truy vấn (Query)
4
Thiết kế biểu mẫu nhập liệu (Form)
5
Thiết kế Báo cáo (Report)
6
33
2013
ơ ả
ệ Các khái ni m c b n
ờ ạ
ư tên,
Là nh ng s li u r i r c, nh
D li u (data):
ữ ủ
ố ệ ộ ạ c a m t khách hàng.
(database)
ữ ệ ỉ ố ệ ị đ a ch , s đi n tho i C s d li u là gì? ơ ở ữ ệ Là một sưu tập của những dữ liệu có liên quan. Ví dụ: niên giám điện thoại, danh mục sách, … Các dữ liệu này có thể được lưu trên các thiết bị trữ tin khác nhau như sổ sách, băng đĩa từ, … Các CSDL có thể có kích thước và độ phức khác
nhau.
Một CSDL có thể được phát sinh và duy trì bằng
máy hoặc thủ công.
44
2013
ơ ả
ệ Các khái ni m c b n
ệ
ả
H qu n
là gì?
tr CSDL
(DataBase
ị Management System DBMS) Hệ quản trị cơ sở dữ liệu là một tập những chương trình cho phép người sử dụng tạo ra và duy trì CSDL.
Hệ QTCSDL là một phần mềm hệ thống cho phép định nghĩa, xây dựng và xử lý dữ liệu.
55
2013
ơ ả
ệ Các khái ni m c b n
Định nghĩa: Khai báo “bộ khung” dữ liệu cùng
với các mô tả chi tiết dữ liệu.
Xây dựng: Lưu giữ dữ liệu lên các thiết bị lưu
trữ.
Xử lý: truy vấn, cập nhật và phát sinh báo
cáo. ộ
ố
M t s h QTCSDL: Foxpro, Access, SQL,
ệ MySQL, Oracle, DB2… ệ
ệ
H CSDL = CSDL + H QTCSDL
66
2013
ộ
ụ ề M t ví d v CSDL
KHACHHANG
VANCHUYEN
MSKH
TÊNKH TP
TP
PVC
HCM HN NT
01 02 03
An Hoà Bình Trang
HCM HN NT NT
S1 S2 S3 S4
MATHANG
DATTHANG
MSMH
TÊNMH ĐG
MSKH
MSMH
SL
Táo Cam Chanh
650 500 450
P1 P2 P3
S1 S1 S1 S2 S2 S3 S4
P1 P2 P3 P1 P3 P2 P2
300 200 400 100 300 200 210
77
2013
Định nghĩa CSDL: chỉ định cấu trúc mỗi “bảng”, bao gồm các phần tử dữ liệu và kiểu dữ liệu tương ứng.
Xây dựng CSDL: Đưa dữ liệu vào các “bảng” KHACHHANG, VANCHUYEN, MATHANG, DATHANG.
Xử lý CSDL: Thực hiện những truy vấn và các phép cập nhật, chẳng hạn: “Khách hàng có tên là An đặt những mặt hàng nào”, “Tên những khách hàng đã đặt mặt hàng Cam”, “Tính thành tiền”…
88
2013
ấ
ề ặ V n đ đ t ra:
Có bao nhiêu bảng, tên gì? Những bảng nào có quan hệ với nhau Trong một bảng có bao nhiêu cột
Mục đích là để tránh trùng lắp, dư thừa dữ liệu, dữ liệu thiếu tính nhất quán.
99
(cid:0)
2013
Các khái ni m cệ
ơ b nả
ứ
ệ
ộ
ữ ệ là m t h hình th c
Mô hình d li u:
ồ
ọ
ầ
toán h c g m có 2 ph n: Một hệ thống ký hiệu để mô tả dữ liệu. Một tập hợp các phép toán thao tác trên
dữ liệu đã cho.
1010
2013
ữ ệ
Các mô hình d li u
Mô hình thực thể kết hợp (Entity Relationship
Model)
Mô hình dữ liệu quan hệ (Relational Data
Model)
Mô hình dữ liệu mạng (Network Data Model) Mô hình dữ liệu phân cấp (Hierachical Data
Model)
Mô hình hướng đối tượng (Object Orient
Model)
1111
2013
ể ế ợ
ữ ệ
ự
Mô hình d li u th c th k t h p
ấ
Do P.P.Chen đ xu t năm 1976 ề Các khái ni m:ệ
Thực thể (Entity) Loại thực thể (Entity Type) Thuộc tính (Entity Attribute) Khóa (Entity Key) Mối kết hợp (Entity Relationship) Số ngôi của mối kết hợp (Degree) Thuộc tính của mối kết hợp (Attribute) Bản số (RelationShip Cardinal)
1212
2013
ệ
ữ ệ Mô hình d li u quan h
ấ ế
ệ
ơ ở ế ậ
Do E.F.Codd đ xu t năm 1970 ề Có c s lý thuy t v ng ch c: khái ni m lý ắ ữ ệ thuy t t p h p trên các quan h .
ộ
ệ
ồ
ợ ệ ượ
Các khái ni m: thu c tính (Attribute), quan h ệ c đ quan h (Relation Schema),
ộ
(Relation), l b (Tuple), khóa (Key).
1313
2013
ơ ả
ệ
Các khái ni m c b n MHDLQH
ộ
ộ ượ
c đ quan h (Relation Schema)
ệ
Thu c tính (Attribute) Quan h (Relation) ệ B giá tr (Tuple) ị L ệ ồ Th hi n c a quan h ủ ể ệ Khóa (Key) Ph thu c hàm(Functional Dependency) ộ ụ Ràng bu c toàn v n (Integrity ẹ ộ Constraint)
1414
2013
ộ
Thu c tính (Attribute)
Thu c tính: ộ
là một tính chất riêng biệt của một đối tượng. cần được lưu trữ trong CSDL để phục vụ cho
việc khai thác dữ liệu về đối tượng.
Ví d :ụ
Loại thực thể MÔN-HỌC có một số thuộc tính
Mãmôn,Tên-môn, Số-Đv-Học-Trình.
Loại thực thể HỌC-VIÊN có một số thuộc tính Mãkhoa,Mã-học-viên, Tên-học-viên, Ngày- sinh, Quêquán.
1515
2013
ộ
ư
ộ
ặ
Thu c tính (Attribute) Các đ c tr ng c a thu c tính:
ủ Tên gọi (Name) Kiểu dữ liệu (Data Type) Miền giá trị (Domain)
1616
2013
ộ
Thu c tính (Attribute)
ộ
Tên thu c tính
Có tính chất gợi nhớ Đặt đúng quy định của hệ QTCSDL Không nên đặt quá dài ế
ế
ữ
ộ
ầ ườ
ượ
ệ
ư ng đ
ộ
N u không c n l u ý đ n ng nghĩa thì tên ữ ằ c ký hi u b ng các ch thu c tính th cái A, B, C, D, …, còn X, Y, Z, W,… dùng thay cho 1 nhóm thu c tính.
1717
2013
ộ
Thu c tính (Attribute)
ề
ỗ
Ki u d li u (Data Type): M i thu c tính đ u
ể ả
ữ ệ
ộ ấ ị
ữ ệ ể ộ ộ ph i thu c m t ki u d li u nh t đ nh. Kiểu văn bản Kiểu số Kiểu luận lý Kiểu ngày giờ
1818
2013
ộ
Thu c tính (Attribute)
ộ ố ể
ữ ệ
M t s ki u d li u trong SQL Server:
1919
2013
ộ
Thu c tính (Attribute)
ề
Mi n giá tr (Domain): ị
Mỗi thuộc tính chỉ chọn những giá trị trong
một tập hợp con của kiểu dữ liệu.
Tập hợp các giá trị mà một thuộc tính A có thể
nhận được gọi là miền gi trị của A
Ký hi u: Dom(A), MGT(A) ệ Giá tr NULL: ị
Trong nhiều hệ QTCSDL, người ta đưa thêm vào miền giá trị của các thuộc tính một giá trị đặc biệt gọi là giá trị rỗng (NULL)
2020
2013
ệ
Quan h (Relation)
ượ
ị
c đ nh nghĩa trên:
M t quan h R
ệ có n ngôi đ ộ tập các thuộc tính U = {A1, A2,... An} và một tân từ (quy tắc để xác định mối quan
hệ giữa các thuộc tính Ai) Ký hi u: R (A1, A2, ... An). ệ Ví d :ụ
KHOA (Mã-khoa, Tên-khoa), là một quan hệ 2
ngôi.
Tân từ: "Mỗi khoa có một tên gọi và một mã số duy nhất để phân biệt với tất cả các khoa khác của trường".
2121
2013
ộ
ị B giá tr (Tuple)
M t b giá tr : ị
ộ ộ là các thông tin của một đối tượng thuộc quan hệ. còn được gọi là mẫu tin (Record),dòng (Row) V m t hình th c, m t b q là: ộ ộ ứ ề ặ một vectơ gồm n thành phần thuộc tập hợp con của tích Đề-các miền giá trị của
các thuộc tính thỏa mãn tân từ của quan hệ:
∈
q = (a1,..., an)
(MGT(A1) x ... x MGT(An))
ị ủ
ệ
Ví d :ụ B giá tr c a quan h KHOA: ộ q = (111,CNTT)
2222
2013
ượ
ệ
ồ
L
c đ quan h (Relation Schema)
ồ
L
ệ c đ quan h :
ồ
ề ậ ệ
ủ
ế
đ n c u trúc t ng quát c a m t quan h ộ ả
ệ
ượ là sự trừu tượng hóa của quan hệ ở mức độ cấu trúc của một bảng hai chiều. Khi nh c đ n l ế ượ ắ ệ ứ c đ quan h t c là đ c p ộ ổ ấ ề ậ ớ i quan h thì đó là m t b ng có
Khi đ c p t
ộ ị
ặ
ụ ể ị ủ
ụ ể ồ
ệ ớ
ộ
ấ c u trúc c th ho c m t đ nh nghĩa c th trên ộ ượ m t l
c đ quan h v i các b giá tr c a nó.
2323
2013
ể ệ
ệ
ủ Th hi n c a quan h
ể ệ
ủ
ệ
Th hi n (tình tr ng) c a quan h R ạ
ký hiệu bởi TR là tập hợp các bộ giá trị của quan hệ R vào một thời
ệ ẽ
ể
T i nh ng th i đi m khác nhau thì quan h s có
điểm. ữ ạ ữ
ụ
ệ
ờ ể ệ nh ng th hi n khác nhau. Ví d : Quan h MÔNH C Ọ
2424
2013
ủ
ặ
ệ
Các đ c tính c a quan h
ộ ượ
ể
ề
ệ
ộ
Trong m t l
c đ quan h , có th có nhi u thu c
ồ tính có cùng mi n. ề
ứ ự ủ
ộ
ộ
ượ
Th t
c a các thu c tính thu c tính không đ
c
xét đ n.ế
ệ
ộ
c a các b trong quan h n không đ
Th t ứ ự ủ ế
ượ ố
ệ
ộ
c xét đ n, trong quan h không có hai b gi ng nhau.
ị ủ
ộ
ộ
Giá tr c a m i thu c tính trong m t b có th ể ị
ộ ị ỗ
ị ừ
ề
ậ
ỗ mi n giá tr hay giá tr r ng (null).
nh n giá tr t
2525
2013
ủ ượ
ồ
ệ
Khóa (Key) Siêu khóa c a l
c đ quan h Q:
ể
ấ
c đ có ít nh t 1 siêu khóa và có th có
1 l
là tập hợp các thuộc tính có thể dùng làm cơ sở để phân biệt 2 bộ khác nhau tùy ý trong 1 quan hệ bất kỳ được định nghĩa trên lược đồ quan hệ Q. ượ ề
ồ nhi u siêu khóa.
Ví d :ụ
SINHVIEN (MaSV, HoTen, NSinh, DC) Siêu khóa: {MaSV}, {MaSV, HoTen},
{MaSV,NSinh},
2626
2013
ị
ỉ
Khóa (Key) Khóa ch đ nh:
Trong số những siêu khóa của 1 lược đồ quan hệ Q chọn ra những Siêu khóa “nhỏ nhất” gọi là khóa chỉ định (Khóa nội). ượ
ồ
ỉ
ị
1 l
ể c đ có ít nh t 1 khóa ch đ nh và có th ề
ấ ỉ
ị
có nhi u khóa ch đ nh.
Ví d :ụ
SINHVIEN (MaSV, HoTen, NSinh, DC) Khóa chỉ định: {MaSV}
2727
2013
Khóa (Key)
Khóa chính (Primary Key):
Trong trường hợp lược đồ quan hệ Q có nhiều
khóa chỉ định.
Khi cài đặt trên 1 hệ QTCSDL:
• user chọn 1 khóa chỉ định làm khóa chính • những khóa còn lại gọi là Khóa tương đương.
Chú ý:
Thuộc tính có tham gia vào 1 khóa gọi là thuộc tính khóa, ngược lại – thuộc tính không khóa.
Thuộc tính khóa không chứa giá trị NULL Giá trị khóa không được phép trùng lặp (ràng
2828
2013
buộc về khoá).
Khóa (Key)
ạ
Khóa ngo i (Foreign Key): Giả sử có 2 quan hệ R, S. Một tập thuộc tính K của R được gọi là khóa ngoại
của R nếu K là khóa nội (khóa chính) của S.
Ví d :ụ
Mã-khoa trong LỚP-HỌC là khóa ngoại vì nó là
khóa nội của quan hệ KHOA.
Mã-lớp trong HỌC-VIÊN là khóa ngoại vì nó là
khóa nội của quan hệ LỚP-HỌC
TP là khoá ngoại của KHACHHANG tham chiếu
đến VANCHUYEN
KHACHHANG(MSKH, TÊNKH, TP)
2929
2013
ạ Khóa ngo i Chú ý:
Giá trị tại cột khóa ngoại có thể lấy giá trị từ bảng mà cột đó làm khóa chính hoặc bằng giá trị trống (null).
Trong 1 lược đồ quan hệ, một thuộc tính có thể vừa tham gia vào khoá chính, vừa tham gia vào khóa ngoại.
Khoá ngoại có thể tham chiếu đến khóa chính của cùng một lược đồ quan hệ. Ví dụ: NHANVIEN(MaNV, HoTen, MaNguoiPhuTrach)
Có thể có nhiều khóa ngoại tham chiếu đến
cùng một khóa chính.
3030
2013
ữ ệ
ế
ả
Liên k t các b ng d li u
ậ
ế
ữ ệ
ộ ỹ
Liên k t các b ng d li u là m t k thu t trong thi ả ượ
ữ ả
ế
ế ế t k ớ ế ố CSDL quan h . Chúng là m i liên k t gi a 2 b ng v i ụ ể ả ướ c đ đ m b o đ nhau theo thi c m c ụ ư đích l u tr d li u cho ng d ng. ế ồ ạ
t k cho tr ứ ể
i 2 ki u liên k t:
ả ệ ế ữ ữ ệ Trong Access t n t liên kết 1-1 liên kết 1-n (một-nhiều)
3131
2013
ế Liên k t 11
ỗ ả
ủ
ẽ
ế ế ớ
ấ ớ
ả
Liên k t 1 – 1: m i b n ghi c a b ng này s liên ả ủ ộ ả i m t b n ghi c a b ng kia và
k t v i duy nh t t i; ng
ượ ạ c l
ụ
ế
Ví d liên k t 11:
3232
2013
ế Liên k t 11
ả ữ ệ
ư
ả
Mô t
d li u 2 b ng này nh sau:
3333
2013
ậ
ậ
ệ
ậ
ệ Các phép toán c p nh t trên quan h Có 3 phép c p nh t c b n trên quan h : thêm, ậ ơ ả
xoá, s a.ử Phép thêm (INSERT) Phép xóa (DELETE) Phép sửa (UPDATE) ử ụ ỗ
ả
ả
ầ ị
ẹ
ạ
ộ
M i khi s d ng các phép toán này, c n đ m b o ràng các ràng bu c toàn v n không b vi ph m.
3434
2013
ế Liên k t 1n
ể
Liên k t 1n
c
ề ế ớ
ả ủ ề
ả ẽ
ế ộ ỗ ả ườ
ả
ủ ế ẽ ng c a b ng 1 s có th liên k t ả ớ ượ v i m t ho c nhi u b n ghi c a b ng nhi u (n). Ng ả ạ i duy i, m i b n ghi c a b ng nhi u s liên k t t l ấ nh t 1 tr ụ
ỗ ườ : m i tr ề ặ ủ ng c a b ng 1. ế
ủ Ví d liên k t 1n:
3535
2013
ế Liên k t 1n
ỗ
ề
ể
ả
Có th tham kh o m i cha có th có nhi u con qua 2
ả
ể b ng sau:
3636
2013
ậ
ậ
ệ
ậ
ệ Các phép toán c p nh t trên quan h Có 3 phép c p nh t c b n trên quan h : thêm, ậ ơ ả
xoá, s a.ử Phép thêm (INSERT) Phép xóa (DELETE) Phép sửa (UPDATE) ử ụ ỗ
ả
ả
ầ ị
ẹ
ạ
ộ
M i khi s d ng các phép toán này, c n đ m b o ràng các ràng bu c toàn v n không b vi ph m.
3737
2013
Chú ý khi cài đ tặ
ệ
ầ
ườ ử ụ
ả i s d ng ph i
! Các h QTCSDL yêu c u ng
khai báo:
ậ
ữ ệ
không đ
khoá chính, bu c ph i nh p d li u vào và ả ộ c trùng nhau. ả ồ ạ
ả
ượ khóa ngo i (ph i t n t ạ
ị ớ
ề
ộ
ạ
ớ
Khóa ngo i có th trùng tên v i khóa chính ả
ữ ệ
ư
ể
ố
i trong b ng mà nó làm ả khoá chính và ph i cùng mi n giá tr v i thu c tính khoá chính đó) ể nh ng ki u d li u ph i gi ng nhau.
3838
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
ẹ
ệ
Khái ni m ràng bu c toàn v n (RBTV) ộ
Các phép cập nhật trên CSDL không nên được thực hiện một cách tuỳ tiện, có thể đưa CSDL đến một tình trạng “xấu”, không còn phản ánh đúng thế giới thực mà nó đại diện.
Các phép cập nhật trên CSDL phải tuân thủ theo một số qui tắc, ràng buộc nhất định. Các quy tắc, ràng buộc này được gọi là Ràng buộc toàn vẹn (Intergrity constraints)
Ví dụ: Mức lương nhân viên không vượt quá
mức lương trưởng phòng
3939
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
Xu t x RBTV: ấ ứ
Các quy tắc, quy luật, luật… trong quản lý Bản thân mô hình dữ liệu
4040
2013
ộ
ẹ (Integrity Constraint)
ủ
Ràng bu c toàn v n Các đ c tr ng c a RBTV ư ặ Nội dung Bối cảnh Bảng tầm ảnh hưởng
4141
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
N i dung:
ộ Nội dung của RBTV có thể được phát biểu bằng ngôn ngữ tự nhiên hoặc một ngôn ngữ hình thức (Phép tính quan hệ, Đại số quan hệ, mã giả, …)
Ngôn ngữ tự nhiên: Dễ hiểu nhưng không chặt
chẽ, logic.
Ngôn ngữ hình thức: Chặt chẽ, cô đọng nhưng
đôi lúc khó hiểu.
Ví dụ: Đơn giá của một mặt hàng phải là số dương Điều kiện trên có thể phát biểu lại bằng ngôn ngữ hình
thức như sau:
4242
2013
(cid:0)
p (cid:0)
MATHANG, p.ĐG > 0
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
B i c nh ố ả Bối cảnh của một RBTV là tập các quan hệ mà khi thực hiện cập nhật có khả năng làm cho RBTV đó bị vi phạm.
4343
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
ầ ả
ả
ưở
B ng t m nh h
ng
Ri Thêm Xóa S a ử
Quan h 1 ệ + + +
Quan h n ệ +A(*)
ể ạ
ấ ấ ạ
4444
ử ộ D u + : Có th gây nên vi ph m RBTV D u : Không th gây ra vi ph m RBTV ể (*): gây nên vi ph m RBTV khi s a trên thu c tính A. ạ
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
ạ
Phân lo i RBTV: Có 2 nhóm RBTV:
Nhóm RBTV trên một Lược đồ quan hệ Nhóm RBTV trên nhiều Lược đồ quan hệ
4545
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
ộ
ị
RBTV mi n giá tr : ề ị
ạ ị Ràng bu c lo i này qui đ nh ể
ộ
ộ
ậ . các giá tr mà m t thu c tính có th nh n
Ví d :ụ
DOM(NAM) = {1, 2, 3, 4} DOM(XEPLOAI) = {‘GIOI’, ‘KHA’, ‘TRUNGBINH’, ‘YEU’}
4646
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
ề
ộ ụ
ặ ặ
. RBTV liên b ộ ràng bu c v khoá ự ồ ạ i : S t n t ộ ự ồ ạ ộ ủ ề ộ i c a m t ho c nhi u b ph thu c vào s t n t cùng quan hệ. ộ ề ộ ủ c a m t ho c nhi u b khác trong Ví d :ụ
SINHVIEN: t1 (cid:0)
t1[MASV] (cid:0)
t1, t2 (cid:0)
t2 (cid:0)
t2[MASV]
SINHVIEN(MASV, HOTENSV, GIOITINH, NAMSINH) R1: “Hai bộ khác nhau sẽ khác nhau tại giá trị khóa” (cid:0) Bảng tầm ảnh hưởng:
R1 Thêm Xóa S aử
+ MASV
4747
SINHVIEN +
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
Chú ý:
Ràng buộc về khóa (khoá chính) là một trường hợp đặc biệt và khá phổ biến của RBTV liên bộ. Ràng buộc về khóa (key constraint): 2 bộ khác nhau trong cùng một quan hệ phải có giá trị tại khoá khác nhau.
4848
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
ộ
ộ
ộ
ữ Là ràng bu c gi a các thu c tính
ộ
RBTV liên thu c tính: ệ trong cùng m t quan h .
Ví d : ụ
BIENLAI(MAKH, MALH, MAHV, SOBL, DIEM, KETQUA,
XEPLOAI, TIENNOP)
R2: Với mọi ghi danh, kết quả cuối khóa là “đậu” nếu điểm từ 5 trở lên, ngược lại là “không đậu” (ràng buộc giữa KETQUA và DIEM) BIENLAI, (t[DIEM] (cid:0)
(cid:0) 5 (cid:0) t[KETQUA] = “đậu”) (cid:0) (t[DIEM] < 5 (cid:0) t (cid:0)
t[KETQUA] = “không đậu”)
R2
Thêm
Xóa
S aử
+DIEM, KETQUA
Bảng tầm ảnh hưởng:
(*) ở thời điểm thêm một bộ vào BIENLAI, giá trị bộ đó tại DIEM và KETQUA đều trống.
4949
BIENLAI (*)
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
Ví d :ụ KHOAHOC(MAKH, TENKH, BD, KT)
KHOAHOC, t[KT] – t[BD] (cid:0)
t (cid:0)
R3: Mỗi khóa học kéo dài ít nhất là 3 tháng. (cid:0) 90 (ngày) Bảng tầm ảnh hưởng:
R3 Thêm Xóa S aử
+
+KT, BD
KHOAHOC
5050
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
ràng bu c khoá ngo i:
RBTV tham chi u ế ộ
ộ ế
ộ
ị ủ ộ ả
i tr
ạ Giá ủ ế tr c a m t b tham chi u đ n khoá chính c a ả ồ ạ ướ ị m t b ng khác thì tr khoá chính ph i t n t c.
Ví d : ụ
R4: Mọi đơn đặt hàng phải là đặt những mặt hàng trong danh mục
các mặt hàng của công ty.
t (cid:0) s (cid:0) DATHANG, (cid:0)
MATHANG: s[MSMH] = t[MSMH]) MATHANG[MSMH])
R4
Thêm
Xóa
S aử
DATHANG
(cid:0) (viết tắt: DATHANG[MSMH] (cid:0) Bảng tầm ảnh hưởng: R4Thêm Xóa Sửa DATHANG+-+MSMHMATHANG-++MSMH
MATHANG
+
+ +MSMH
5151
+MSMH
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
Chú ý:
Trong 1 lược đồ quan hệ, một thuộc tính có thể vừa tham gia vào khoá chính, vừa tham gia vào khóa ngoại.
Khoá ngoại có thể tham chiếu đến khóa chính
của cùng một lược đồ quan hệ.
5252
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
ị
ạ
? Xác đ nh khoá ngo i cho các b ng trong csdl trong bài ế
ự
ả
ỉ
ả ế
ẽ th c hành (ch rõ tham chi u đ n b ng nào v )
ả
ả
??Thêm vào b ng HANGHOA (hàng hóa) có kh năng vi
ạ
ph m RBTV không?
ạ
ở ả b ng LOAIHH (lo i hàng hóa)? ả
ử
?? Xoá 1 dòng ???S a trong b ng LOAIHH?
5353
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
ế
ả
ộ
ạ !!! Ph i khai báo khoá ngo i (ràng bu c tham chi u)
ệ
ể ệ
ự
n u h QTCSDL cho phép đ h QTCSDL t ki m tra.
ố ế
ệ
V i h QTCSDL Access ta khai báo m i k t
ế ể ớ ợ
:
h p (Relationship)
5454
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
ộ
ậ ạ
ấ
ố ớ ể Đ tránh nh p sai, đ i v i các thu c tính khóa ạ ngo i, khi t o c u trúc cho Table ta khai báo Lookup:
5555
2013
ộ
ẹ (Integrity Constraint)
Ràng bu c toàn v n
ố
ộ
ơ
ộ
ư
ả
ớ
? Mu n thêm m t hóa đ n bán cho m t khách ả hàng m i (ch a có trong b ng khách hàng) ph i làm sao?
ứ ự
ậ
ả
??Hãy đ xu t th t ề
nh p cho các b ng trong
ự
ứ ự
ề
ữ ệ
ậ
ấ bài th c hành? ậ
??? Nh n xét v th t
nh p d li u cho các
b ng?ả
5656
2013
Bài t pậ
ở
TP HCM
ở
TP HCM
ế ế ế
ở
ế
t thông tin các khách hàng t tên các khách hàng t thông tin các khách hàng không ố ủ ấ ả t tên và thành ph c a t
TP HCM t c các khách
ủ
ế
ặ
ơ
ơ
t tên và đ n giá c a các m t hàng có đ n giá
ệ
ữ
ứ
1. Cho bi 2. Cho bi 3. Cho bi 4. Hãy cho bi hàng. 5. Cho bi ơ ớ l n h n 450 ố ế 6. Hãy cho bi t các thành ph có quan h kinh doanh ượ c ch a nh ng dòng trùng nhau) (không đ
5757
2013
Bài t pậ
ặ
ặ
ố
t mã s khách hàng đ t m t hàng có
ế
ặ
ặ
ố
ế 8. Cho bi ố mã s là P1. 9. Cho bi
t mã s và tên khách hàng đ t m t
ố
hàng có mã s là P1.
ố
ặ
ặ
10. Cho bi
t mã s và tên khách hàng đ t m t
ế hàng có tên là Táo
ế
ặ
ố
11. Cho bi
ữ
ơ
nh ng m t hàng có đ n giá >300 ặ
ừ
ế
ặ
t tên và thành ph các khách hàng đ t ặ t các khách hàng v a đ t m t hàng ặ
12. Cho bi ừ
ặ
P1 v a đ t m t hàng P2
5858
2013
ệ
ầ
Ph n 2. H QTCSDL Microsoft Access
ơ ở ữ ệ
ứ
ổ
ế ế ả
1. T ch c c s d li u và thi
t k b ng (Table)
ế ế
2. Thi
ấ t k truy v n (Query)
ế ế ể
ệ
ẫ
ậ
3. Thi
t k bi u m u nh p li u (Form)
ế ế
4. Thi
t k Báo cáo (Report).
5959
2013
ơ ả
Các thao tác c b n
ớ
i thi u Access;
ở ộ
ạ ệ
ở ệ
ồ ạ i;
ỏ
Gi ệ Cách kh i đ ng; T o t p Access m i; ớ M t p Access đã t n t Thoát kh i Access.
6060
2013
ở ộ
ừ
Cách kh i đ ng T Start Screen (Windows 8)
6161
2013
ạ ệ
ớ T o t p Access m i
6262
2013
ạ ệ
ớ T o t p Access m i
Chọn n i l u t
ơ ư ập tin c sơ ở dữ
liệu
Tên tập tin c sơ ở dữ liệu
6363
2013
ớ
Gi
ệ i thi u
ệ
ở ộ
ầ
ầ
T p Access có ph n m r ng *.MDB Các thành ph n chính trên m t t p: ứ
ộ ệ ả
ơ
ộ
ơ
ứ
ữ ệ
ữ ệ ấ
ượ
c
ế ế t k ;
ứ
ề
ệ
ầ
ơ
ứ
ẫ
ơ
ế ế t k ;
ượ ụ ự
ứ
ụ
ệ
ơ
ư ệ
ươ
ng
ứ ụ ự
Tables: n i ch a toàn b các b ng d li u; ộ Queries: n i ch a toàn b các truy v n d li u đã đ thi ẫ Forms: n i ch a các m u giao di n ph n m m; c thi Reports: n i ch a các m u báo cáo đã đ Macro: n i ch a các Macro l nh ph c v d án; ơ Modules: n i ch a các khai báo, các th vi n ch ụ trình con ph c v d án.
6464
2013
2.1. C uấ trúc logic c aủ m tộ Table
tế kế Table – Chế độ Design view
2.2. Thi 2.3. Chế độ Datasheet
tế l pậ quan hệ gi aữ các Table
2.4. Thi 2.5. Nh pậ dữ li uệ 2.6. M tộ số thao tác xử lý dữ li uệ trên b ngả 2.7. Qui trình xây d ngự CSDL Access 2.8. Sao chép, xóa, đ iổ tên Table
6565
2013
ủ
ấ
ộ
C u trúc logic c a m t Table
ả
ấ ủ
ữ ệ
B ng d li u (Tables) là m t ph n quan tr ng nh t c a ộ
ầ ứ
ụ
ọ ữ ữ ệ CSDL, là n i l u tr d li u cho ng d ng.
ơ ư ữ ệ
ồ
ầ
M t b ng d li u trên Access bao g m các thành ph n:
ộ ả Tên bảng các trường dữ liệu trường khoá tập hợp các thuộc tính cần thiết cho mỗi trường dữ liệu tập hợp các bản ghi.
6666
2013
ữ ệ
ử
ậ
Datasheet (nh p, xem, s a d li u):
Tên bảng
Mỗi cột là một trường (Field)
Mỗi dòng là một bản ghi (Record)
Bản ghi đặc biệt cuối cùng gọi là EOF
6767
2013
ế ế ấ
Design view (đang thi
t k c u trúc):
Trường khóa (Primary key)
6868
Tập hợp các thuộc tính của trường dữ liệu
2013
Tên b ngả
ỗ
ộ
ả
ườ
ọ
ượ
ng đ
ặ c đ t
ủ
ạ
ả
ự ặ
đ c
M i b ng có m t tên g i. Tên b ng th ả ấ sau khi t o xong c u trúc c a b ng. ử ụ ữ ế
ệ
ấ
ặ
ả
Không nên s d ng d u cách (Space), các ký t ấ ệ t có d u trong tên b ng.
t ho c ch ti ng Vi
bi
6969
2013
ườ
ữ ệ ng d li u (Field) ủ ữ ệ
ớ
ộ
ng ng v i m t
ứ ng d li u hay còn g i là thu c tính.
ả ọ ộ
M i c t d li u c a b ng s t ẽ ươ ộ ọ
ữ ệ
Tr ỗ ộ ườ tr M i tr ỗ ườ
ậ ụ
ợ ư
ể
ữ ệ ng d li u có m t tên g i và t p h p các ữ ệ ng d li u đó ví d nh : ki u ạ
ộ ữ ệ
ề
thu c tính miêu t d li u, mi n giá tr , đ nh d ng, …
ử ụ
ự
ữ ế
ệ
ấ
ặ
ả ườ tr ị ị Không nên s d ng d u cách (Space), các ký t ấ t có d u trong tên
t ho c ch ti ng Vi
ặ đ c bi ườ tr
ệ ng.
7070
2013
ữ ệ
Ki u d li u ể
ữ
ư
ể ữ ệ Ki u d li u
Đ l nộ ớ
TT
L u tr ..
ụ ể
ể
ộ
ỳ
ố ố ự
ề
ố
Number
Tu thu c ki u c th
1
S : s th c, s nguyên theo nhi u ki uể
ố
ự ộ
ượ
Autonumber
4 bytes
S nguyên t
đ ng đ
ố c đánh s .
2
ộ
ộ
ỳ
Text
tu thu c đ dài xâu
Xâu ký tự
3
ể
Yes/No
1 byte
Ki u logic
4
ư
ữ
ờ
Date/Time
8 bytes
L u tr ngày, gi
5
ữ ữ ệ
ề ệ
ư
ệ
Currentcy
Sing
L u tr d li u kèm ký hi u ti n t
6
ỳ
ể
ớ
7 Memo
ị ộ tu thu c giá tr
ki u ghi nh
ỳ
ộ
ữ
ư
ế
Hyperlink
L u tr các siêu liên k t (hyperlink)
8
ộ tu thu c đ dài xâu
ữ ệ
ỳ
ạ
ồ
OLE
ộ tu thu c d li u
9
ả Âm thanh, hình nh, đ ho , … (Objects)
7171
2013
ả
B n ghi (Record)
ủ
ả
ượ
ả
ọ
M i dòng d li u c a b ng đ ữ ệ
c g i là 1 b n
ỗ ghi.
ỗ ả
b n ghi nào, ng
ườ i
ỏ ả dùng có th s a đ
M i b ng có m t con tr b n ghi. ỏ ả ộ Con tr b n ghi đang n m ằ ở ả ả ữ ệ ể ử c d li u b n ghi đó. ố ả
ượ ắ
ỗ ả
ủ
ệ t, b n ghi tr ng cu i cùng c a m i b ng ọ
Đ c bi ặ ượ
c g i EOF.
đ
7272
2013
ế ế
ế ộ
Thi
t k Table – Ch đ Design view
ở ộ
ướ
ế ế ấ
ả
ở
B c 1: Kh i đ ng trình thi
t k c u trúc b ng
ế ộ ch đ
Design View:
Tables/New/Design View OK
ấ
ặ
Ho c nh n
7373
2013
ế ế
ế ộ
Thi
t k Table – Ch đ Design view
ạ
ộ
ế ế ấ
ệ
ấ
H p tho i thi
ộ ả t k c u trúc m t b ng xu t hi n:
7474
2013
ế ế
ế ộ
Thi
t k Table – Ch đ Design view
ị
ườ
ữ ệ
B c 2: ướ
ng d li u:
Đ nh nghĩa các tr ườ
ữ ệ
ng d li u ữ ệ ặ
ả
(có ho c không) ộ
ủ
ườ
ế
ng (n u
+ Filed Name: Gõ tên tr ể ọ + Data Type: Ch n ki u d li u + Description: mô t + Field Propperties: khai báo các thu c tính c a tr c n)ầ
• Khai báo thẻ General. • Nếu là thuộc tính khóa ngoại, khai báo thẻ
Loopkup.
7575
2013
ế ế
ế ộ
Thi
t k Table – Ch đ Design view
Chọn kiểu dữ liệu (hoặc nhấn ký tự đầu)
7676
Gõ tên trường
2013
ế ộ
ế ế
t k Table – Ch đ Design view
Thi B c 3. ướ Chọn các trường muốn thiết lập khoá bằng cách: dùng chuột kết hợp giữ phím Shift đánh dấu đầu dòng các trường muốn thiết lập khoá;
ế ậ ả Thi t l p khóa chính cho b ng:
Edit | Primary key để thiết lập thuộc tính khoá cho các trường vừa chọn. (hay nhấn nút Primary key trên thanh công cụ) i c u trúc b ng (Ctrl S) và đ t tên cho b ng
ư ạ ấ ướ ặ ả ả OK B c 4. L u l
ứ ấ ả ự ặ ệ ặ Chú ý: Tên b ng không nên ch a d u cách, các ký t đ c bi t khác ho c
7777
ữ ệ ấ ch Vi t có d u.
2013
Khai báo Field Propperties:
Field size:
Để thiết lập kích thước dữ liệu. Chỉ áp dụng cho
các trường có kiểu dữ liệu Number và Text. Đối với các trường kiểu số, Field size cho biết
trường đó nhận giá trị loại số nào.
7878
2013
Field size:
Để thiết lập kích thước dữ liệu. Chỉ áp dụng cho
các trường có kiểu dữ liệu Number và Text. Đối với các trường kiểu số, Field size cho biết
trường đó nhận giá trị loại số nào.
Đối với các trường kiểu Text, thuộc tính này cho biết chiều dài tối đa của xâu ký tự. Ví dụ: Với trường Hoten thì Field size khoảng 30.
7979
2013
TT 1 2 3 4 5 6
ạ ố Lo i s Byte Integer Long Integer Single Double Decimal
Đ l nộ ớ ố s nguyên 2 byte ố s nguyên 4 byte ố s nguyên 6 byte ố ự s th c 8 byte ố ự s th c 12 byte ố ự s th c 16 byte
8080
2013
Format
Để thiết lập định dạng dữ liệu khi hiển thị. Thuộc tính này áp dụng cho hầu hết các kiểu dữ liệu trừ kiểu: Memo, OLE, Yes/No.
Đối với các trường kiểu số, Field size cho biết trường đó
nhận giá trị loại số nào.
Đối với các trường kiểu Text, thuộc tính này cho biết
chiều dài tối đa của xâu ký tự.
• Ví dụ1: Với trường Hoten thì Field size khoảng 30. • Ví dụ2: Để định dạng ký tự nhập vào trở thành chữ hoa, ta sử
8181
dụng dấu >.
2013
Input Mark
Thiết lập mặt nạ nhập dữ liệu cho các trường
(ràng buộc dữ liệu nhập vào). Kiểu này có thể áp dụng cho các loại trường kiểu Text, Number, Datetime, Currency. • Ví dụ1: 00: chỉ cho phép nhập 2 ký tự kiểu số. • Ví dụ2: LL00: chỉ cho phép nhập 2 ký tự kiểu chữ và 2
ký tự kiểu số.
• Ví dụ 3: “KH” 00: 4 ký tự: 2 ký tự đầu là KH, 2 ký tự
sau là 2 con số.
8282
2013
Default Value
Thiết lập giá trị ngầm định cho trường mỗi khi
thêm mới một bản ghi.
Ví dụ:
• Mỗi khi thêm một bản ghi mới, ta muốn giá trị trường Số lượng tự động là 1 thì phải thiết lập thuộc tính Default Value của trường này là 1.
8383
2013
Caption
Thiết lập tiêu đề cột cho trường này khi hiển thị. Tên trường không nên chứa dấu cách và chữ Việt có dấu, nhưng Caption của các trường thì nên gõ bằng tiếng Việt có dấu sao cho dễ đọc và nhận biết. Đặc biệt giá trị thuộc tính Caption nếu có sẽ được sử dụng làm tiêu đề cho các trường tương ứng mỗi khi sử dụng công cụ Form Wizard hay Report Wizard sau này- sẽ rất tiện lợi.
8484
2013
Validation Rule
Thiết lập điều kiện kiểm tra tính đúng đắn của dữ
liệu khi được nhập vào. • Ví dụ1: trường NgaySinh của học sinh phải nhập vào những ngày >= 1/1/1980 chẳng hạn. Khi đó ở thuộc tính Validation Rule của trường Ngaysinh hãy gõ vào >=#1/1/1980#
• Ví dụ 2: Trường MaMH có chiều dài đúng 4 ký tự, 2 ký
tự đầu là BC ta gõ: LIKE “MH??”
8585
2013
Required
Để yêu cầu phải nhập dữ liệu cho trường này (nếu thiết lập Yes) khi bắt đầu một bản ghi mới hoặc không nếu thiết lập No.
8686
2013
Khai báo Loopkup:
ườ
ấ
ạ
Khai báo cho tr ộ ữ ệ ừ
ể ử ụ ng khóa ngo i (đ s d ng Combobox l y ả
ượ
ủ
ế
thu c tính khóa chính c a b ng đ
c liên k t
d li u t đ n)ế ướ
ả
ườ
B c 1: M b ng có tr
ầ ng c n thi
ế ộ
ế ậ ằ
t l p LOOKUP ra (b ng ọ
ch đ Design View b ng cách: ch n tên
ở ả ở HOADON) ấ b ng, nh n nút Design;
ả ướ
ế ậ
ằ ộ
ườ
ủ
B c 2: Kích ho t trình LookUp Wizard b ng cách: T i c t ạ ộ t l p thu c tính LOOKUP ừ danh sách
ầ ng c n thi ụ ọ ng khachID), ch n m c Lookup Wizard.. t
ườ ả
ố
ạ Data Type c a tr (tr th xu ng:
8787
2013
Khai báo Loopkup:
ộ ế ậ Ví d v thi
ụ ề ườ khachID c a b ng ng
ườ ủ t l p thu c tính LOOKUP ả HOADON KHACH ủ khachID c a b ng ng
8888
cho tr ả sang tr ả trong CSDL qu n lý bán hàng:
2013
Khai báo Loopkup
ạ H p tho i Lookup Wizard xu t ấ
Lấy dữ liệu từ bảng
8989
ộ hi n:ệ
2013
Khai báo Loopkup
Ch n
ọ ố ấ
ữ ệ ộ
ả
ả b ng tên mu n l y d li u (là b ng mà thu c tính này làm khóa chính)
9090
2013
Khai báo Loopkup
ữ ủ Giá tr nh ng tr ị
ả ọ ng nào c a ị ể c hi n th
ườ ẽ ượ b ng đã ch n s đ trên danh sách?
ắ
ủ ỉ ầ ả ề ng
ể ủ ng
ư ậ ữ ệ ự
9191
L u ý: ư V nguyên t c ch c n ườ ư khachID c a b ng đ a tr khác vào danh sách Selected Fields: là đ , tuy nhiên nên đ a ườ tenkhach đ thu n thêm tr ọ ơ ệ ti n h n khi ch n l a d li u ậ khi nh p sau này.
2013
Khai báo Loopkup
Ẩn cột khachID
9292
2013
ế ộ
Ch đ Datasheet
ở
ế ộ
Xem table
ch đ Datasheet:
9393
(menu View > Datasheet view)
2013
ế ộ
Ch đ Datasheet
ở ạ ử
ổ
Tr l
i c a s thi
ế ế t k :
9494
(menu View > Design View)
2013
ế ậ
Thi
ệ ữ t l p quan h gi a các Table
ư B c 1: Tools | Relationship.. B c 2: Đ a các b ng (Tables) tham gia thi ả
ướ ướ ộ ấ ạ ế ư ế ậ ạ ự ộ ơ
ế ậ ả ọ t l p
ườ ệ ng ch n t t c ) ;
9595
ệ t l p quan h thông qua h p tho i Show Tables (n u ch a th y h p tho i này dùng th c đ n Relationship | Show table): ầ Ch n b ng c n tham gia thi ọ ấ ả quan h (th ấ Nh n nút Add (hay D_click) Close
2013
ế ậ
Thi
ệ ữ t l p quan h gi a các Table
ữ ừ ế ố ệ ạ ự ặ ả ế ế B c 3: ướ Th c hi n t o k t n i gi a t ng c p b ng theo thi t k ,
ư
9696
cách làm nh sau: Dùng chuột kéo (Drag) trường cần liên kết của bảng này (ví dụ trường hangID của bảng HANG) thả (Drop) lên trường cần liên kết đến của bảng kia (ví dụ trường hangID của bảng HANGBAN). Khi đó hộp thoại Edit Relationships xuất hiện:
2013
ế ậ
ữ ệ
ẹ
ả
ộ
Thi
ả t l p các thu c tính đ m b o toàn v n d li u (Enforce
Referential Integrity):
Đồng ý thiết lập các thuộc tính đảm bảo toàn vẹn dữ liệu
đảm bảo toàn vẹn dữ liệu khi cập nhật dữ liệu
đảm bảo toàn vẹn dữ liệu khi xoá dữ liệu
9797
2013
ả ậ ả ẹ ữ ữ ệ ậ ữ ệ Đ 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: 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 xóa d li u gi a 2 b ng liên quan:
9898
ả 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);
2013
ế
ể
H p ộ Relationship Type: cho bi
ệ t ki u quan h
ữ
ả
ế ậ
gi a 2 b ng đang thi
t l p:
Kiểu quan hệ
- One – To – One: Kiểu 1-1 - One – To – Many: Kiểu 1-n (1-∞) - Indeterminate: Không xác định được kiểu liên kết
9999
2013
ỳ ườ
ế ướ ượ Tu thu c vào ki u khoá c a các tr ể ị xác đ nh ra đ ủ c ki u liên k t gi a 2 b ng. D i đây là
ng tham gia liên k t mà ả ế ự ộ ế ượ ị ộ ự Access t ộ ố ể m t s ki u liên k t đ ữ đ ng xác đ nh: ể c Access t
Chú ý: - Đóng tất cả các Tables trước khi tạo quan hệ. - Phải thiết lập mối quan hệ trước khi nhập dữ liệu. - 2 trường tham gia kết nối phải cùng kiểu dữ liệu. Nếu không sẽ gặp lỗi sau đây:
100100
TT Bảng A 1 2 Khoá chính Khoá chính Bảng B Khoá chính Khoá ngoại Kiểu liên kết 1-1 1-n
2013
ữ ệ
ậ 2.5. Nh p d li u
ậ
ể
ướ
ả
ế ữ ệ
ể ở ả
c đ có th nh p tr c ti p d li u vào b ng: ấ
ữ ệ ằ
ậ
ể ầ
ữ ệ
ặ
ả
ọ
ấ
ả chu t lên tên b ng c n nh p d li u; ho c ch n b ng c n ữ ệ ồ nh p d li u r i nh n nút Open; ệ ự
ở ằ
ả
ậ
B c 2: Th c hi n nh p d li u vào b ng đang m b ng bàn ữ ệ
ự Có 2 b B c 1: M b ng đ nh p d li u b ng cách: nh n đúp ướ ầ ậ ộ ậ ướ phím
101101
2013
ộ ố ỗ
ể ả
ậ
ữ i có th x y ra khi nh p d
Chú ý : M t s l li uệ
ứ L i th 1: ỗ
ậ ị ươ ớ ể ữ ệ ủ ườ Lý do: Nh p vào giá tr không t ng thích v i ki u d li u c a tr ng đã
ầ ặ ủ 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
ậ ạ ắ ườ ị ế ầ ị ỉ ch đ nh. Ví d : tr ụ ườ ị Kh c ph c: hãy nh p l ụ ng ki u Date/Time,.. ủ i cho đúng, đ giá tr các tr ng đã yêu c u đ n
102102
ệ ấ khi không xu t hi n thông báo l ỗ i.
2013
ộ ố ỗ
ể ả i có th x y ra khi
ữ ệ
Chú ý : M t s l nh p d li u
ứ
ỗ
ậ L i th 2:
ậ
ụ
ủ
ắ
ả
ị
Lý do: Không nh p giá tr cho khoá chính. ị Kh c ph c: ph i nh p đ y đ giá tr cho khoá chính. ầ ậ
103103
2013
ộ ố ỗ
ể ả
ậ
i có th x y ra khi nh p
Chú ý : M t s l ữ ệ d li u ứ
L i th 3: ỗ
ị ườ ị ườ ậ Lý 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 b n ghi nào đó trên b ng d li u.
ủ ắ ộ ả ị ườ ữ ệ ừ i giá tr tr ng khoá khác sao cho v a đúng, đ và
104104
Kh c ph c: nh p l ụ ị ậ ạ không b trùng khoá.
2013
ộ ố ỗ
ể ả i có th x y ra khi
ữ ệ
ậ
Chú ý : M t s l nh p d li u ứ
L i th 4: ỗ
ườ ắ ậ
ỏ ắ ộ ệ li u (nh ng tr
ữ ộ ng b t bu c nh p d t l p thu c tính Required=Yes) ườ ữ ệ ế ậ c thi ủ ữ ệ ả ữ ụ ườ ả ả ậ ắ ộ Lý do: B n ghi v a nh p d li u đã b tr ng tr ậ ừ ượ ng đ 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
105105
ắ li u.ệ
2013
ứ L i th 5: ỗ
ự ệ ẹ ả ả ắ ộ Lý 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. ụ ệ
ả ả ậ ệ ộ i đ
ư ậ ả
Ví d : Nh p d li u trên m t b ng có quan h mà b n ghi đang nh p ữ ệ ả ậ ủ ộ ả ế ượ ớ ượ ể c m t b n ghi nào c a b ng có quan h 1 không th liên k t đ c t ộ 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á).
ệ ậ ả ị ươ Kh c ph c: Tìm và nh p cho đúng giá tr theo b ng quan h 1 t ứ ng ng.
106106
ớ ụ ắ ể ỗ ẻ ể ọ ụ Đ tránh l i này khai báo trong th loopkup đ ch n.
2013
ả
a. Xoá b n ghi ọ
ả
ữ
ầ ặ
ướ ướ
ụ
ặ
ộ
ả ộ ộ
ệ
ấ
ạ ữ ệ
ộ ầ
ấ ị
ệ
ẳ
B c 1: Ch n nh ng b n ghi c n xoá. ấ B c 2: Edit | Delete Record ho c nh n nút Delete Record ọ ấ trên thanh công c ho c nh n ph i chu t lên vùng đã ch n, ể ế ti p theo nh n Delete Record. 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á; - Nhấn No để huỷ lệnh xoá.
Chú ý:
ữ ệ
ụ
ẽ
ể
ồ
D li u đã đ ng ý xoá s không th ph c h i l
ồ ạ ượ i đ
c.
107107
2013
ộ ố
ữ ệ
ử
ả
M t s thao tác x lý d li u trên b ng
ế
ữ ệ ặ
ườ
ộ
ố
ỏ
ng (c t) mu n
ế
ắ ướ ắ ướ
ế
ệ
ấ
ắ
S p x p d li u B c 1: Đ t con tr lên tr 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 :
108108
2013
ộ ố
ữ ệ
ử
2.6. M t s thao tác x lý d li u trên b ngả c. L c d li u ữ ệ ọ
ụ ề ữ ệ
ế ệ ố ế ả ủ ụ ữ ệ ọ ơ ế ị ưở Ph n 83. C quan quy t đ nh th
ộ ắ ị ưở ộ ả ng trên b ng cùng danh sách t
ộ ơ ị ộ ưở ể ể ậ ỗ ng m i ấ ả t c ng cho
109109
ớ ấ ậ ị M t ví d v tính hi u qu c a vi c l c d li u: S p đ n ngày Qu c t ch em 100,000đ. Đã có c t th cán b c quan, làm sao đ có th nh p vào giá tr c t th ch em (không nh p cho nam gi i) là nhanh nh t.
2013
ộ ố
ữ ệ
ử
2.6. M t s thao tác x lý d li u trên b ngả ấ
ầ ọ ữ ệ ườ ộ ả ộ ấ Nh n ph i chu t lên tr ng c n l c d li u. M t menu xu t
ườ ọ ề ấ Thi t l p đi u ki n l c trên tr ng đang ch n. Có r t nhi u
B c 1: ướ hi n:ệ B c 2: ướ ể
ệ ọ ệ ọ ả ị ủ ả
ế ọ ế ậ ị ố ọ ọ ụ
ữ ệ ề ề ả
ụ ệ
ề ề cách đ xác đ nh đi u ki n l c: ữ N u mu n l c nh ng b n ghi có cùng giá tr c a b n ghi đang ch n hãy ch n m c: ả ố ọ Mu n l c nh ng b n ghi tho mãn đi u ki n nào đó, hãy gõ đi u ki n lên m c: Ví d : ụ >=10; <>3; Null; Nam;
ế ộ ặ ọ ữ ệ ộ ả ả Mu n hu ch đ đ t l c, nh n ph i chu t lên b ng d li u và ấ
110110
ố ọ ụ ỷ ch n m c:
2013
ự
ừ ấ ả
2.7. Qui trình xây d ng CSDL Access ầ ượ L n l
ữ ệ ả ế ấ ầ ữ ệ ỗ ả t xây d ng c u trúc t ng b ng d li u trong CSDL. i quy t các công
B c 1 : ướ ớ ệ
ườ ủ ng c a b ng
ả ườ ữ ệ ể ng c t ở ộ Field Name; c t ở ộ Data Type;
ả
ọ ế ậ ế ậ ộ ố ườ ế ầ ng nh : ư Field Size,
111111
ặ ả ự V i m i b ng d li u khi khai báo c u trúc c n gi vi c sau : Khai báo danh sách các tr ợ Ch n ki u d li u phù h p cho các tr t l p khoá chính cho b ng; Thi t cho các tr t l p m t s khác c n thi Thi Format, Input Mark, Requried, Validate Rule, … Đ t tên b ng
2013
ự
Qui trình xây d ng CSDL Access
ế ậ
ộ
ườ
B c 2 : ướ
t thi
t l p thu c tính LOOKUP cho các tr
ng
L n l
ố ế ợ
ả
ậ
B c 3 : ướ B c 4 : ướ
ữ Thi Th c hi n nh p d li u cho các b ng n u c n.
ầ ượ làm khóa ngo i.ạ ế ậ ự ể
ườ ộ
(cid:0)
ệ ế ả ứ ậ
t l p m i k t h p gi a các b ng. ữ ệ ả ệ ị ậ ý: Không th nh p m t giá tr vào tr ồ ạ ở ả quan h n u nó không t n t i nh p b ng không ch a khóa ngo i tr
ế ầ Chú ả ạ ủ ng khóa ngo i c a b ng ph i ả b ng nó làm khóa chính ạ ướ c.
112112
2013
ổ
2.8. Sao chép, xóa, đ i tên Table
Sao chép Table :
Chọn Table muốn chép, Ctrl C, Ctrl V.
Xóa Table :
Đ i tên Table :
Chọn Table muốn xóa, nhấp phím Delete. ổ Chọn Table muốn xóa, click chuột phải Rename.
113113
2013
ả
ươ
ộ ng cán b
ậ ộ ơ
ư
ự Bài t p 1. Xây d ng CSDL Qu n lý l ấ m t c quan có c u trúc nh sau :
ả
ế ế ấ
ể
Yêu c u :ầ Thi ộ ệ
ườ
ng; khoá chính;
Thi
ố ế ợ t l p m i k t h p cùng ả
ả
t k c u trúc các b ng ữ ợ m t cách phù h p : ki u d li u các tr ộ thu c tính Lookup và các ộ thu c tính khác; ế ậ ộ ữ ệ
ẹ
các thu c tính đ m b o toàn ệ v n d li u cho các quan h ;
ư
ậ
Nh p d li u nh sau : ữ ệ
+ 4 phòng ban; + 5 loại chức vụ; + 20 hồ sơ cán bộ.
114114
2013
ậ
ư ệ
ả
ộ
ư
ấ
ự Bài t p 2. Xây d ng CSDL Qu n lý sách m t th vi n có c u trúc nh sau :
ế ế ấ
ữ ệ
ộ
ợ
ể
ả
ườ
t k c u trúc các b ng m t cách phù h p : ki u d li u các tr
ng;
Yêu c u :ầ Thi
ộ
khoá chính; thu c tính Lookup và các thu c tính khác;
ộ ố ế ợ ư
Thi ế ậ t l p m i k t h p. Nh p d li u nh sau : ữ ệ ậ + 5 tác giả; + 3 nhà xuất bản; + 3 danh mục sách; + 20 đầu sách.
115115
2013
ậ
ệ
ả
ự ộ ử
ư
ấ
Bài t p 3. Xây d ng CSDL Qu n lý vi c bán hàng cho m t c a hàng có c u trúc nh sau :
ữ ệ
ợ
ể
ườ
ả
t k c u trúc các b ng m t cách phù h p : ki u d li u các tr
ng; khoá chính;
Yêu c u :ầ Thi
ộ ộ
ữ ệ
ộ
ẹ
ả
thu c tính Lookup và các thu c tính khác. ả
ệ t l p quan h cùng các thu c tính đ m b o toàn v n d li u cho các quan h .
ệ ư
ế ế ấ ộ Thi ế ậ Nh p d li u nh sau : ữ ệ ậ + 5 khách hàng; + 15 danh mục hàng hoá có bán; + lập 10 hoá đơn bán hàng; + với 25 lượt hàng hoá được bán ra.
116116
2013
ự
ả
ể ư
ườ
ấ
ổ
ậ Bài t p 4. Xây d ng CSDL Qu n lý đi m h c sinh tr
ọ ng ph thông có c u trúc nh sau :
ế
ế ấ ộ
ể ữ ệ
Yêu c u :ầ Thi ả ợ ườ ng; khoá;
ộ
ỗ li u m i
117117
ả ả t k c u trúc các b ng m t cách phù h p: ki u d li u các ộ tr thu c tính Lookup và các thu c tính khác; ệ ế ậ t l p quan h . Thi ệ ữ ậ Nh p d b ng 10 b n ghi.
2013
ậ
ệ
ậ
ả
ồ
ự ả
Bài t p 5. Xây d ng CSDL Qu n lý vi c nh p và bán hàng g m các b ng sau :
LOAIHH(MaLoaiHH, TenLoaiHH)
ướ ằ ướ ằ
ề ứ
ạ ạ
ạ
- NHANVIEN(MaNV, HoTenNV, GioiTinh, DienThoai, Luong) - KHACHHANG(MaKH, HoKH, TenKH, DiaChi, DienThoai) - HOADONBAN(SoHDB, NgayBan, MaKH, MaNV) - - NHACUNGCAP(MaNhaCC, TenNhaCC) - HANGHOA(MaMH, TenMH, DVT, DonGiaBan, MaLoaiHH, MaNhaCC) - HOADONNHAP(SoHDN, NgayNhap, MaNV) - CTHDB(SoHDB, MaMH, SoLuong) - CTHDN(SoHDN, MaMH, SoLuong, DonGia) Ghi chú: - Khóa chính: g ch d - Khóa ngo i: g ch d
i b ng nét li n. i b ng nét đ t.
118118
2013
ế ế ấ
ữ ệ
ộ
ợ
ể
ả
ườ
Yêu c u :ầ Thi
t k c u trúc các b ng m t cách phù h p: ki u d li u các tr
ng;
ộ
khoá chính; thu c tính Lookup và các thu c tính khác;
ớ ố ượ
ả
ư
ả
Thi Hãy nh p d li u cho các b ng v i s l
ng b n ghi nh sau:
ộ ố ế ợ ế ậ t l p m i k t h p. ữ ệ ậ Nhân viên: 5 Khách hàng: 5 Loại hàng hóa: 5 Nhà cung cấp: 5 Hàng hóa: 7 Hóa đơn nhập: 10 Hóa đơn bán: 10 CTHDN, CTHDB: 20
119119
2013
ươ
ộ ố
Ch
ng 3. M t s thao tác trên CSDL
3.1. Import -
ọ
ứ
ố ượ
ố
ng mu n Import (Table,
ọ
ố ượ
ố
ng mu n Import.
ộ
ọ
File/ Get External Data/ Import: ch n Database ch a đ i t Query, Form…) - Ch n tên đ i t 3.2. Export - Ch n Table mu n Export sang m t Database khác ( .mdb) -
ố ọ File/ Export: ch n Database đích.
Đặt lại tên (nếu muốn)
Export cả cấu trúc và dữ liệu
Chỉ Export cấu trúc
120120
2013
4.1. Đ tặ v nấ đề
4.2. Khái ni mệ Truy v nấ
121121
2013
4.3. Các lo iạ Truy v nấ Nhóm truy v nấ xử lý dữ li uệ Nhóm truy v nấ hành đ ngộ
ề
? V n Đấ
122122
2013
ả
ậ
Bài toán qu n lý vi c nh p và bán hàng: ệ
123123
Crosstab Query
2013
1. Muốn biết một hoá đơn bán hàng của khách hàng nào (tên
Select Q
khách hàng) và do nhân viên nào bán (tên nhân viên).
2013
124124 QLBH
2. Tìm tên và địa chỉ các khách hàng mua hàng
trước ngày 1/1/2004
2013
Select Q
125125 QLBH
3. Ghép Hokh và TenKh thành cột
họvàtên.
Select Q
2013
126126 QLBH
4. Tính tiền chi tiết cho từng hóa đơn (SoHDB,
MaMH, SoLuong, DonGiaBan, ThanhTien):
Select Q
2013
127127 QLBH
5. Tính thành tiền cho từng hóa
đơn (nhóm dữ liệu)
Group by
Sum
Select Q
2013
128128 QLBH
6. Thống kê khách hàng mua hàng hóa
nào với số lượng bao nhiêu?
To Crosstab Q
2013
129129 QLBH
7. Tạo Table từ các thông tin tìm kiếm
được.
Ví dụ: ? Muốn tạo Table gồm các
thuộc
tính
KHACHMUA(SoHDB,HoTenKH,HoTenNV)
2013
130130 QLBH
8. Sửa đơn giá bán của mặt hàng Cam
lên 10%.
9. Xoá tất cả các mặt hàng do nhà cung
cấp Bitis cung cấp.
2013
131131 QLBH
4.1. Khái ni mệ
ụ ử
ự
ộ
M t trong nh ng công c x lý d li u tr c
ữ ệ
ữ
ữ ệ Query.
ấ
ề
ư
ữ ệ ợ
ố
ọ
ể
ớ
ứ
ng ng đ gi
quan, h u hi u trên Access là ử ạ ổ ậ ữ ệ ươ ữ ệ
ậ ộ ố ạ i m t s lo i Query t ầ
ử
Có r t nhi u d ng yêu c u x lý d li u nh : ầ ị ữ ệ trích l c hi n th d li u; t ng h p th ng ậ ẽ kê; thêm b t c p nh t d li u; … Vì v y s ể ả ồ ạ i t n t ế quy t các yêu c u x lý d li u trên.
2013
132132 QLBH
Ạ
Ấ
CÁC LO I TRUY V N
ổ ữ ệ ữ ệ ử ấ
I. Nhóm truy v n x lý d li u (không làm thay đ i d li u trên table):
Truy v n ấ ch nọ (Select Query) Nhóm dữ liệu Truy vấn có tham số Truy v n ấ chéo (Crosstab Query)
ổ ữ ệ ấ ộ II. Nhóm truy v n hành đ ngAction Query(làm thay đ i d li u trên
ả
ạ ậ
133133
Table): Truy v n ấ t o b ng (MakeTable Query) ậ Truy v n ấ c p nh t (Update Query) Truy v n ấ thêm (Append Query) Truy v n ấ xóa (Delete Query)
2013
4.1. Truy v nấ ch nọ l aự (Select Query):
ổ
a. Công d ng:ụ
Ch nọ l aự , rút trích, t ng h p
ộ ố ộ ủ
ề
ả
ộ ể
ệ
ặ
ấ
ợ d li u trên ữ ệ ộ đi u ề m t s c t c a m t hay nhi u b ng theo m t ki nệ nào đó (có th có đi u ki n ho c không). Trên ề ể ọ ự truy v n ch n l a, có th :
ệ
ề
ể
ộ ệ có th tĩnh ho c đ ng. Khi đi u ki n là ườ
ọ
Tính toán Nhóm dữ li uệ (Group) ặ truy v nấ có tham số.
i ta còn g i là
Đi u ki n ề ộ đ ng ng
134134
2013
ấ ự
ọ
c t o truy v n l a ch n
ướ ạ b. Các b (Select Query)
B1. > Query > New>Design View > OK
ặ ấ B2. Đ a ư các b ngả (table) ho c các truy v n (query) liên quan
ế ữ ệ ử ổ ằ ấ ấ
ướ ả đúp vào tên b ng. i QBE đ n các d li u truy v n vào c a s truy v n b ng cách ( m c ụ Table trong l )
ị ầ ế ả ấ B3. Xác đ nh tên
ườ ằ ấ ng. ệ các c t ộ c n xu t hi n trong k t qu truy (m c ụ Field trong
ả
ấ ủ
ệ
ạ
ộ
v n b ng cách đúp vào tên tr ướ i QBE l )
! B n ch t c a m t SELECT query là câu l nh SQL có d ng: SELECT … FROM …
135135
2013
ấ ự
ọ
c t o truy v n l a ch n
ướ ạ b. Các b (Select Query)
ủ ướ
ầ
B4. Khai báo các thành ph n c a l
i QBE:
Sort:
-
Ascending: Xếp dữ liệu tăng dần.
- Descending: Xếp dữ liệu giảm dần.
- Not sorted: Không sắp xếp.
Show:
ệ
ộ
: Cho hi n c t.
: Không cho hi nệ c tộ .
(cid:0)
ả ấ ủ ữ ệ ầ ề m nh đ :
136136
ể ệ ở ệ ắ B n ch t c a yêu c u s p x p d li u th hi n ệ ế … ORDER BY … [ASC] [DESC] trong câu l nh SQL
2013
ấ ự
ọ
c t o truy v n l a ch n
ướ ạ b. Các b (Select Query)
Criteria:
- Điều kiện lọc dữ liệu (nếu có yêu cầu).
Chú ý:
-
Điều kiện lọc đặt vào hàng Criteria và các hàng dưới.
-
Điều kiện hoặc giưã các cột: đặt trên những hàng khác
nhau.
-
Điều kiện và giưã các cột: đặt trên cùng 1 hàng.
-
Dùng các toán tử.
ấ ủ
ữ ệ
ả
ầ ọ B n ch t c a yêu c u l c d li u th hi n
ề m nh đ :
ể ệ ở ệ ệ
ư ả B5. L u b ng truy v n: ấ Ctrl + S hay File > Save
… WHERE … trong câu l nh SQL
137137
2013
ộ ố
ườ
M t s thao tác th
ng dùng
ướ
ế
ả
ấ
Xem tr
c k t qu truy v n:
ở ạ ử
ấ
ổ
Tr l
i c a s truy v n:
(menu View > Datasheet view)
ự
ệ
ấ
ộ
Th c hi n m t truy v n:
(menu View > Design View)
138138
(menu Query > Run)
2013
ệ
Xem câu l nh SQL phát sinh View\SQL view
139139
2013
ụ ạ
ọ ự
ấ
c. Ví d t o truy v n ch n l a (Select Query)
ạ
ế
ầ
ộ
ố
ủ
ả ế m t hoá đ n
T o Query gi 1. Mu n bi
i quy t các yêu c u sau: t
ơ bán hàng c a khách hàng nào (tên khách hàng) và do nhân viên nào bán (tên nhân viên).
ệ
ọ
2. Li
ị
ỉ
ạ
ệ
ơ
ọ ố ượ ế
ắ
ế
ắ
ớ
ậ
i tính là n
gi
ớ
ị
t kê danh sách khách mua hàng (H KH, ố TênKH, Đ a ch , Đi n tho i, H tên NV, S HD bán, Ngày bán, Tên MH, S l ng, Đ n ế giá), s p x p theo tênKH, n u tên trùng ọ nhau thì s p x p theo h . ữ 3. L p danh sách nhân viên có ỉ 4. Tìm tên và đ a ch các khách hàng có gi
i
ướ
tính là nam mua hàng tr
c ngày 1/1/2004
140140
2013
ụ ạ
ọ ự
ấ
Ví d t o truy v n ch n l a (Select Query)
5. Ghép Hokh và TenKh thành
ọ c t ộ h vàtên.
ừ
ề
ế
6. Tính ti n chi ti
t cho t ng hóa đ n ơ (SoHDB, MaMH, SoLuong, DonGiaBan, ThanhTien)
141141
2013
ộ ộ
ạ
T o m t c t m i ớ
ứ
ể
ộ
ớ Tên c t m i : bi u th c
ọ
ụ
ề
Ví d 1ụ : H và tên: [HoKH] & [TênKH] Ví d 2: Thành ti n : [SoLuong]*[DonGiaBan]
142142
2013
c s d ng trong
M t s toán t ộ ố
ử ụ ấ
ể
ử ượ đ ứ bi u th c truy v n
ử
so sánh:
=, < >, >, <, >=, <=
ị Between … and…
ị ừ
Between 20 and 30
Các toán t Gi a hai giá tr : ữ Ví d : ụ giá tr t
ế 20 đ n 30:
hay:
>=20 and <= 30
143143
2013
ể
ộ ố
c s d ng trong bi u
M t s toán t
ử ụ ử ượ đ ấ ứ th c truy v n Các hàm ngày, tháng, năm: Ngày = 26/10/2004 Day([ngày]) = 26 Month([ngày]) = 10 Year([ngày]) = 2004
144144
DatePart(‘q’, [Ngày]) = 4 (quý) DatePart(‘m’, [Ngày]) =10 (tháng) DatePart(‘yyyy’, [Ngày]) = 2004 (năm)
2013
ộ ố
M t s toán t
c s d ng trong
ử ượ đ ứ
ể
ử ụ ấ bi u th c truy v n
ư
ớ
ẫ
Đúng v i m u đ a ra:
Like
Ví d : ụ
ấ ả ữ ỗ
ấ ả ữ ự ầ ự ứ ỗ Like“40*”: t Like“???C*”: t t c nh ng chu i có hai ký t t c nh ng chu i có ký t đ u là 40. th 4 là C.
ử
Các toán t
logic:
and, or, not
ừ
Các phép toán s h c:
ố ọ +, , *, /,^(lũyth a), Mod
145145
2013
ộ ố
đ
ử ượ ử c s M t s toán t ứ ể ụ d ng trong bi u th c truy v nấ
ườ
ữ
ặ
ấ
Tên tr
ng đ t gi a hai
ặ d u ngo c vuông:
ườ
[tên tr
ng]
ụ
Ví d : [MaKH]
ữ ệ
ữ
ể
ặ
D li u ki u ngày đ t gi a hai d u
ấ # và #:
#25/09/75#
146146
2013
ộ ố
M t s toán t
c s d ng trong
ử ượ đ ứ
ể
ử ụ ấ bi u th c truy v n
ỗ
ố
N i hai chu i ký t
ự & :
ố ườ
ụ
ọ
ườ
Ví d : N i tr
ng H KH và tr
ng TênKH
ườ
ọ
thành tr
ng H TenKH
HoTenKH = [HoKH] & [TenKH]
147147
2013
ộ ố
ể
M t s toán t
c s d ng trong bi u
ử ụ ử ượ đ ấ ứ th c truy v n
ề
ệ
ệ
Câu l nh đi u ki n:
ả ủ
ệ
ệ
ề
ế
ề
iif(đi uki n, k tqu c ađi uki nđúng,
ả ủ
ế
ề
ệ
k tqu c ađi uki nsai)
Vd1: iif([GioiTinh]=Yes, “NU”, “NAM”)
148148
Vd2: iif([DonGiaBan])>100000, [DonGiaBan]*1.2, [DonGiaBan])
2013
ữ ệ
4.2. Nhóm d li u (Group)
149149
2013
ể
Ki m tra bài cũ ? Tính tiền chi tiết cho từng hóa đơn (SoHDB, MaMH, SoLuong, DonGiaBan, ThanhTien), sắp xếp theo số hóa đơn.
150150
2013
ả
ậ
Bài toán qu n lý vi c nh p và bán hàng: ệ
151151
2013
ừ
ế
ề
ơ
t cho t ng hóa đ n (SoHDB,
Hãy tính ti n chi ti MaMH, SoLuong, DonGiaBan, ThanhTien):
QLBH 152152
2013
? Tính tổng số tiền cho từng hóa đơn
Nhóm dữ liệu
153153
2013
ữ ệ
4.2. Nhóm d li u (Group)
154154
2013
Nhóm dữ liệu (Group):
ấ
ừ ổ
ộ
ế
ự
Tính toán d li u theo t ng nhóm có tính ch t ữ ệ ợ s li u ố ệ mà ố ổ t ng c ng, th ng kê t ng h p ố ệ ế s li u bên t không quan tâm đ n chi ti ệ a. Ý nghĩaCách th c hi n trong.
ự
ệ
Cách th c hi n:
- View(cid:0) Totals để chèn thêm dòng Total
vào vùng lưới QBE.
- Dùng các hàm tính toán ở dòng Total để thực hiện các phép tính cho các cột trong truy vấn.
155155
2013
Hàm
Ý nghĩa
ữ ệ
ộ
Group by
Nhóm d li u trên c t này
ộ
ố Tính trung bình cho c t này (s )
Avg
Sum
Tính t ngổ
ế
ố
Count
ổ Đ m t ng s
ấ
ỏ
Min
ị Tìm giá tr nh nh t
ị ớ
Max
ấ Tìm giá tr l n nh t
ị ầ
First
Tìm giá tr đ u tiên
ố
Last
ị Tìm giá tr cu i cùng
ứ
ể
ừ
ộ ữ ệ
ả
Expression
Bi u th c tính toán t
các c t d li u khác trong b ng
ệ ọ
ề
ấ
Where
ữ ệ Đi u ki n l c d li u cho truy v n
156156
2013
? Tính tổng số tiền cho từng hóa đơn
Group by
Sum
QLBH 157157
2013
Ví dụ
Vd1: Tính thành ti n ề
ừ ơ (SoHD,
ắ cho t ng hóa đ n ơ ố ế ThanhTien), s p x p theo s hóa đ n.
Vd2: Hãy li
ộ
ệ ỗ ủ ổ ế
ố ổ t ng s hoá t kê toàn b khách hàng và đ n ơ c a m i khách hàng (MãKH, T ng s HD), s p x p ắ ố theo mã khách hàng.
ố ổ ề ế t kê (TênKH, T ng s HD) thì đi u gì
??? N u ch li ỉ ệ
ả
ộ x y ra ? Vd3: Hãy li
ủ ổ ắ
158158
ế ổ ố ệ t ng s hoá t kê toàn b khách hàng và ố ỗ đ n ơ c a m i khách hàng (TênKH, T ng s HD), s p x p theo tên khách hàng.
2013
Ví dụ
ỗ
t kê
Vd4: Li ệ ủ
trong t ng ừ m i khách hàng quí c a năm 2004 đã mua bao nhiêu hàng hóa.
ỗ
t kê
Vd5: Li ệ ừ
ế n u phân thì đã mua bao
ướ
m i khách hàng ạ theo t ng lo i hàng hóa nhiêu hàng hóa tr
c ngày 1/1/2002.
Bài t pậ
159159
2013
ấ
ố
4.3. Tham s trong truy v n
160160
2013
Query có tham số
ấ
ố
a. Tham s trong truy v n
ệ
ộ đi u ki n
Th c hi n các truy v n theo m t ậ
ự “đ ng”ộ
ấ ệ ườ nào đó. (do ng ị
ề i dùng nh p) ủ
ụ
ể
ừ
Ví d : Hi n th các thông tin c a nhân viên ậ nh p vào t
bàn phím.
ớ v i mã nhân viên Hiển thị các thông tin của nhân viên có mã số là 05. (điều kiện “tĩnh”)
161161
2013
ấ
ạ
ố
b. Cách t o tham s trong truy v n
ậ
ắ
ấ
ề
ệ
Nh p dòng thông báo nh c nh p trong hai ậ [ và ] vào dòng đi u ki n
ạ ộ
ặ d u ngo c vuông (Criteria) t
i c t ta mu n l c. ậ
Có th dùng các toán t
ề
ể ộ
ố ọ ố ề ử , nh p nhi u tham s ộ như nh pậ đi uề ki nệ
ặ cho m t ho c nhi u c t. ( l cọ tĩnh)
ủ
ớ
ể
ị
Vd1: Hi n th các thông tin c a nhân viên v i
ậ
ừ
mã nhân viên nh p vào t
bàn phím.
ậ
ườ
ờ
ả
Vd2: L p danh sách các khách hàng mua hàng i dùng
ậ
trong kho ng th i gian nào đó do ng nh p vào.
162162
2013
Query có tham số
ạ
ấ 4.4. T o Truy v n chéo (Crosstab Query)
163163
2013
ấ
a. Truy v n chéo (Crosstab Query):
ử ụ ổ
ố ằ ả
ượ ư
ữ ệ
ướ ạ
S d ng d ng truy v n này khi mu n th ng ố ạ ấ ạ ữ ệ ợ kê, t ng h p các d li u theo d ng n m ngang dù các d li u đ c l u trong b ng ừ i d ng t ng dòng: d
164164
2013
ấ
a. Truy v n chéo (Crosstab Query):
ố
khách hàng mua hàng ng
ố ượ bao nhiêu?
Ví dụ 1: Th ng kê hóa nào v i ớ s l Row heading
Column heading
Value
2013
165165 QLBH
ạ
ấ
b. Cách t o truy v n chéo:
ứ
ọ
B1: New/Design view và ch n các Table ch a
ữ ệ
d li u ngu n
ồ B2: Query/Crosstab Query:
Khai báo các dòng: như Select Query Crosstab:
• Row heading: cột này làm giá trị trên hàng. • Column heading: cột này làm giá trị trên cột • Value: cột này làm giá trị cho bảng • No shown: không cho hiện cột này.
Ví dụ 1: Th ng kê
khách hàng mua hàng hóa nào
ố v i ớ s l
ố ượ bao nhiêu?
ng
166166
2013
ỉ ộ ộ ư ể ề Có th có nhi u c t làm Row heading, nh ng ch m t c t duy
ư L u ý: ấ ộ ộ ấ ộ nh t làm Column heading, m t c t duy nh t làm Value.
ể ệ ở
ấ ủ
ả
ệ
B n ch t c a Crosstab query th hi n
câu l nh SQL:
Ví d :ụ
TRANSFORM .. SELECT .. FROM .. GROUP BY … PIVOT …
167167
2013
ấ
ụ c. Truy v n chéo – Ví d
ộ
ư
nhi u c t làm Row heading
ể Có th có ấ
ấ
ộ
ộ
ộ ộ ỉ m t c t , nh ng ch , m t c t duy nh t làm
ề duy nh t làm Column heading Value.
Ví d :ụ
168168
2013
ấ
ạ
ộ
4.5. Các lo i truy v n hành đ ng (Action Query)
169169
2013
ấ ạ
ả 4.5.1. Truy v n t o b ng (MakeTable Query)
Dùng MakeTable Query đ :ể
chép kết quả truy vấn của loại Select
Query ra một Table mới.
chép kết quả truy vấn của loại Crosstab Query ra một Table mới nhưng dưới dạng Select Query (Group). Chú ý: Bảng mới tạo ra không có khóa.
ả ấ ủ ệ B n ch t c a Crosstab query th hi n câu l nh SQL:
170170
ể ệ ở SELECT .. INTO .. FROM..
2013
ấ ạ ướ ạ c t o truy v n t o b ng: (MakeTable Query): Các b
ớ ẽ ượ ạ
ả
1. Gõ vào tên b ng m i s đ
c t o
ặ ả
ậ
ớ
2. Đ t b ng m i này trong t p tin
ệ
ơ ở ữ ệ c s d li u hi n hành
ị 3. Xác đ nh xong
ặ ả
ơ ở ữ ệ
ộ ậ
ớ 2. Đ t b ng m i này bên trong m t t p tin c s d li u khác
171171
ả B1: Tạo như Select Query. B2: Query Make-Table Query:
2013
ọ
ể ự
ệ ạ
Ch n Query
Run đ th c hi n t o table m i. ớ
ạ
ấ
4.5.2. T o truy v n xoá (Delete Query)
Dùng Delete Query đ :ể
Xóa các dòng dữ liệu thoả điều kiện nào đó
trong một hay nhiều bảng. Cẩn thận: không thể phục hồi sau khi xoá.
ể ệ ở ấ ủ ả ệ B n ch t c a Delete query th hi n câu l nh SQL:
172172
DELETE … FROM … [WHERE]
2013
ướ ạ
ả
Các b
ấ c t o truy v n xoá b ng:
B1. > Query > New>Design View > OK
ữ ệ
ứ
ố
B2. Ch n ọ b ngả (table) ch a d li u mu n xóa.
B3. Query Delete Query: xu t hi n dòng
ả
ấ
ừ ả
Xoá các b n ghi: drag d u * t
b ng vào l
ướ ừ i: t
ệ ở
ấ
hàng
ệ ấ Delete
Form xu t hi n
Delete.
ề
ệ
Xoá có đi u ki n: Double Click vào
ẽ
ề
ệ t
ộ tên c t tham ệ ấ ừ Where s xu t hi n trên hàng
gia vào đi u ki n: Delete. Khai báo đi uề ki nệ như trong Select Query.
173173
2013
ọ
ể ự
ả
Ch n Query
Run đ th c hi n xoá các b n ghi. ệ
ạ
ấ
4.5.3. T o truy v n thêm (Append Query)
ữ ệ ừ ả
ả
Thêm d li u t
b ng này vào b ng khác.
174174
2013
ướ
ấ
ạ
c t o truy v n thêm: (Append
Các b Query):
B1: T oạ như Select Query. B2: Query Append Query:
ữ ệ
ả
ố 1. Gõ tên b ng mu n thêm d li u vào
ữ ệ
ế
ả
ố
2. N u b ng mu n thêm d li u vào
ơ ở ữ ệ
ệ
ậ
trong t p tin c s d li u hi n hành
ữ ệ
ị 3. Xác đ nh xong
ố ơ ở ữ ệ
ả ậ
ế 2. N u b ng mu n thêm d li u vào trong t p tin c s d li u khác
175175
2013
ọ
ể ự
ữ ệ
Ch n Query
Run đ th c hi n thêm d li u. ệ
ạ
ử
ấ
4.5.4. T o truy v n s a (Update Query)
ướ ạ
ử
ấ
Các b
c t o truy v n s a: B1: Tạo như Select Query. B2: QueryUpdate Query: Xuất hiện dòng
Trong ô Update To của các thuộc tính muốn cập nhật: điền vào giá trị hay biểu thức dùng để thay đổi nội dung.
Chọn QueryRun để thực hiện việc sửa.
Update To
ể ệ ở ấ ủ ả ệ B n ch t c a Update query th hi n câu l nh SQL:
176176
UPDATE … SET … [WHERE]
2013
BÀI T PẬ
ả ươ ự ộ ệ ấ Bài 1. Trên CSDL Qu n lý l ng cán b , th c hi n các truy v n
ả
ươ
ủ
ồ
ơ
ng c a c quan bao g m các thông tin:
sau:
1. Hãy tính và in ra b ng l
Hoten, ngaysinh, tenchucvu, tenphongban, luongchinh, phucapcv, dangphi,
congdoanphi, thuclinh.
Trong đó:
Luongchinh = hesoluong * 730 000
ữ
ả
ớ
Dangphi = 50,000 v i nh ng ai là Đ ng viên
ữ
ớ
Congdoanphi = 1%Luongchinh v i nh ng ai đã vào công đoàn
ư
ư
ả
ộ
2. Hãy đ a ra danh sách các cán b là Đ ng viên mà ch a vào công Đoàn.
ộ ủ
ọ
ượ
c
ộ 3. Hãy l c ra danh sách cán b c a m t phòng ban nào đó, tên phòng ban đ
ậ ừ
ượ
ạ
nh p t
bàn phím khi query đ
c kích ho t.
177177
2013
ự ả ớ ộ ơ ọ 4. Hãy l c ra danh sách cán b là Đ ng viên và có th c lĩnh l n h n
ộ ố ượ ừ ượ m t s nào đó đ ậ c nh p t bàn phím khi query đ c kích
ho t.ạ
ộ ơ ọ ộ 5. Hãy l c ra danh sách cán b mà năm sinh r i vào trong m t
ả ượ ậ ừ ụ kho ng năm nào đó đ c nh p vào t bàn phím. Ví d : khi kích
ả ạ ậ ầ ừ ho t query, Access yêu c u nh p vào kho ng năm sinh t năm
ẽ ọ ế ộ nào, đ n năm nào. Khi đó query s l c ra danh sách các cán b
ệ ả ề tho mãn đi u ki n đó.
ọ ộ ượ ậ ừ c nh p vào t bàn phím khi 6. L c ra danh sách cán b có tên đ
ụ ạ kích ho t query. Ví d : khi query kích ho t s h i: ạ ẽ ỏ Gõ vào tên
ầ ể ả ọ ả ọ ặ ộ Sau khi gõ vào m t tên (có th c h ho c c h và c n xem?
178178
ẽ ọ ề ệ ả ộ tên), s l c ra danh sách cán b tho mãn đi u ki n.
2013
ộ ế ỉ ư ổ ọ ế ằ ệ ề t r ng đi u ki n 7. L c ra danh sách cán b đ n tu i ngh h u, bi
ỉ ư ư ị ngh h u xác đ nh nh sau:
ớ ổ Là Nam gi i, tu i >=60
ữ ớ ổ Là N gi i, tu i >=55
ư ư ả ả ộ ợ ổ ố 8. Hãy đ a ra b ng t ng h p s cán b đã vào Đ ng hay ch a vào
ả ớ ư Đ ng theo gi i tính nh sau:
179179
9. Đưa ra bảng tổng hợp về chức vụ theo phòng ban như sau:
2013
ợ ổ ư ứ ừ ả ạ ổ ộ ố
ư 10. Hãy đ a ra b ng t ng h p t ng s cán b theo t ng lo i ch c ụ ủ v c a các phòng ban nh sau:
180180
ợ ươ ư ổ ừ ư ng theo t ng phòng ban nh sau: ả 11. Đ a ra b ng t ng h p l
2013
ự ệ ả ậ
ọ
ấ
ấ Bài 3. Trên CSDL Qu n lý nh p và bán hàng, th c hi n các truy v n sau:
ử
ạ
ử
ấ
ấ
t kê danh sách nhân viên bán hàng có trong c a hàng. t kê danh sách hàng hóa có trong c a hàng (Mã MH, Tên MH, DVT, Tên lo i HH). ử t kê danh sách nhà cung c p hàng hóa cho c a hàng (Mã nhà cung c p, Tên nhà cung c p).
ế
ừ
Câu 1 : Truy v n ch n (Select Query) 1. 2. 3. 4.
1/1/2003 đ n ngày 1/1/2004 (Mã KH, Tên KH, Đ a
ắ
ạ
ệ
ế
ế
ế
ắ
ị
5.
ạ
ướ
ế
ắ
ị
ỉ
c ngày 1/1/2004, s p x p theo ngày bán
6.
ị
ỉ
ố
ơ
7. 8.
ọ
ơ
ề
ạ
ị
ỉ
ọ ậ
ệ ố
ử
ơ
ậ
9.
ơ
ế
ề
ậ
ấ
ắ
ệ Li ệ Li ệ ấ Li ị ậ L p danh sách các khách hàng mua hàng t ọ ỉ ch , Đi n tho i, Ngày mua hàng), s p x p theo tên, n u tên trùng nhau thì s p x p theo h . ậ ỉ L p danh sách các khách hàng mua hàng trong tháng 5 năm 2003 (Mã KH, Tên KH, Đ a ch , ệ Đi n tho i, Ngày mua hàng). Tìm tên và đ a ch các khách hàng đã mua hàng tr hàng. Tìm tên và đ a ch các khách hàng đã mua hàng vào ngày 25/02/2003. ệ Li ượ l ệ Li ượ l ệ
ự ầ
ủ
ố ử t kê danh sách các hóa đ n đã bán trong c a hàng (S HD bán, Ngày bán, Tên MH, S ng, Đ n giá, Thành ti n, Mã KH, H Tên KH, Đ a ch , Đi n tho i, H tên NV). ố ậ t kê danh sách các hóa đ n đã nh p trong c a hàng ( S HD nh p, Ngày nh p, Tên MH, S ọ ng, Đ n giá, Thành ti n, Tên nhà cung c p, H tên NV), s p x p theo ngày nh p hàng. đ u c a tên là T. t kê danh sách khách hàng có ký t
10. Li
181181
2013
ấ
ơ
ủ
ỗ
ố
ổ
ộ
ệ
t kê toàn b mã khách hàng, tên khách hàng và t ng s hoá đ n c a m i khách
Câu 2. Truy v n nhóm (Group by) 1.
ấ
ấ
ạ
ấ
ộ
ủ
t kê tên lo i hàng hóa, giá trung bình c a m t hàng hóa, giá cao nh t, giá th p nh t
2.
ấ
ấ
ạ
ở
ư
ượ
ỉ ố ớ
c cung c p b i nhà cung c p có tên
3.
ặ
ế
ỗ
ừ
ạ
t kê m i khách hàng n u phân theo t ng lo i hàng hóa thì đã mua bao nhiêu m t
4.
ư
ế
ỉ
ướ
ơ
ỗ
c ngày 1/1/2004. ố ượ
ậ
5. 6. 7.
ng bao nhiêu trong
ừ
ờ
ả
7/5/2003 đ n 26/11/2003.
ố ề
ừ ạ
ầ
Hãy li hàng. ệ Li khi bán ra. ư Nh câu 2 nh ng ch đ i v i lo i hàng hóa đ ọ Ng c Thanh. ệ Li hàng. ư Nh câu 4 nh ng ch quan tâm đ n khách hàng có tên là Trang. ố Th ng kê m i khách hàng có bao nhiêu hóa đ n tr L p danh sách các khách hàng đã mua các hàng hóa nào, s l ế kho ng th i gian t Tính t ng s ti n bán hàng theo t ng nhóm hàng hóa. ủ ừ Tính s ti n bán hàng c a t ng lo i hàng hóa trong 6 tháng đ u năm 2003. ủ ừ
ổ ố ề ố ề
ầ
ố ề
Th ng kê s ti n bán hàng theo tháng, theo quí, theo năm (t o t ng query). ố ề
ạ ừ ấ
ố ể
ớ
ị
8. 9. 10. Tính s ti n bán hàng c a t ng hàng hóa trong 6 tháng đ u năm 2003. 11. 12. Hi n th thông tin 2 khách hàng có s ti n mua hàng l n nh t.
182182
2013
ố
ệ
ớ
ơ
ổ
ố
ủ
t kê H , tên khách hàng và t ng s hóa đ n c a khách hàng v i
Câu 3 : Truy v n có tham s (Parameter query) 1.
bàn phím.
ệ
ề
ớ
ậ ừ
ượ
2.
t kê các thông tin v nhân viên v i mã nhân viên đ
c nh p t
ậ
ừ
ờ
3.
ậ ừ
ượ
ế
ả bàn phím) (Mã KH, Tên
c nh p t
ớ ạ
ỉ
ị
ố ượ
ậ
4.
ng
ừ
ờ
ớ
ế
ả
ngày x đ n ngày y (v i x, y
bàn phím).
ờ
ậ ừ c nh p t ữ t kê nh ng nhân viên không tham gia bán hàng trong th i gian
5.
ấ ọ Li ậ ừ tên nh p t Li bàn phím. L p danh sách các khách hàng mua hàng trong kho ng th i gian t ngày x đ n ngày y (v i x, y đ ệ KH, Đ a ch , Đi n tho i). L p danh sách các khách hàng đã mua các hàng hóa nào, s l bao nhiêu trong kho ng th i gian t ượ đ ệ Li qua.
183183
2013
ấ
ớ ố ượ
ố
Câu 4 : Truy v n chéo ( Crosstab query) 1. Th ng kê các khách hàng đã mua các hàng hóa nào v i s l
ng
ừ
ỗ
ủ
ừ
bao nhiêu. ố ề ố ề
2. Tính s ti n bán hàng cho m i khách hàng trong t ng quí năm 2002. 3. Tính s ti n bán hàng c a khách hàng có tên là “Trang” trong t ng
quí năm 2003.
ấ ộ ả
ộ ớ ồ
ố ủ
ấ
Câu 5 : Truy v n hành đ ng (Action query) 1. T o m t b ng m i g m các hàng hóa có mã s c a nhà cung c p là
ạ “02”.
ủ
ả
ố
ả
ấ
2. Xóa các b n ghi c a b ng HANGHOA do nhà cung c p có mã s là
ị
ừ ả
ở ả
ạ
i các b n ghi đã b xóa t
b n HANGHOA b i b ng đã t o ra
3. Thêm l ở
“02” cung c p.ấ ả ạ câu 1. ả
ố
ặ
ấ
4. Gi m giá 10% các m t hàng đã bán do nhà cung c p có mã s là
“03” cung c p.ấ
184184
2013
ạ
ằ ả ộ
Khái ni mệ T o Form b ng Wizard Xem k t qu m t Form ế Thi ế ế t k Form Bài t pậ
185185
2013
Khái ni mệ
ộ ứ
ụ
ệ
ầ
ử ụ ườ
ộ
ạ
ủ ử
ậ
ầ
Khi s d ng m t ng d ng, đa ph n công vi c c a ng i dùng làm trên các h p tho i (Dialog), ổ c a s (Windows). C 2 thành ph n này trong l p ề trình đ u đ
ả ọ Form. c g i là ứ
ề
ậ
ậ
ị
Form có th hi n th , tra c u, c p nh t và đi u
ữ ệ
ể
ượ ể ể khi n d li u trong CSDL.
186186
2013
ạ
ằ
5.1. T o Form b ng Wizard
ụ
ườ
Form wizard là công c trên Access giúp ng
ộ
ạ
ữ ệ
ệ
ả
i ễ dùng nhanh chóng và d dàng t o ra m t Form ậ dùng làm giao di n nh p d li u cho các b ng trên CSDL. ướ
ướ
D i đây trình bày các b
ộ c đ t o m t form làm
ữ ệ
ậ
ả
CANBO trong
ộ
ả
ắ
ắ
ng cán b . (b n ph i ch c ch n
ạ
ể ạ ệ giao di n nh p d li u cho b ng ả ạ ươ CSDL Qu n lý l ấ ỉ đã t o hoàn ch nh c u trúc CSDL trên):
187187
2013
ạ
ằ
5.1. T o Form b ng Wizard
ạ Kích ho t trình Form
ặ Creat Form by
B c 1: ướ Wizard: Forms/New/Form Wizard OK Ho c DClick using Form wizard
ọ Ch n các thông tin
B c 2: ướ ư ầ
188188
ọ ọ ườ ữ c n đ a lên form. ả ch n b ng nào ch n nh ng tr ng nào.
2013
ằ
ạ
5.1. T o Form b ng Wizard
ố ụ ọ B c 3: ướ Ch n b c c (Layout)
cho form. Có 4 kiểu bố cục có thể thiết
189189
lập được cho form là: Columnar; Tabular; Datasheet và Justified. Hãy lần lượt nhấn lên từng kiểu bố cục (hình dưới) và xem kết quả minh hoạ (Preview) ở hộp chữ nhật bên trái hộp thoại để quyết định nên chọn loại nào:
2013
ằ
ạ
5.1. T o Form b ng Wizard
B c 4: ướ
ọ
ể ể
ể ử ừ ọ
ể ọ Ch nki u dáng (Style) cho form. Có m t ộ danh sách các ki u dáng đ ch n. Hãy th t ng ki u dáng và ch n cho ộ form m t phong cách phù h p.ợ B c 5. ướ Đặt tên cho Form
Finish
190190
2013
5.2. Xem k t qu m t Form ể ậ
ả ộ ử ụ
ậ ữ ệ
ọ
ấ
ế Open. S d ng Form đ c p nh t d li u:
Ch n Form, nh n nút
chuyển về bản ghi đầu tiên
Đang ở bảng ghi số 1
Có tất cả 11 bản ghi
chuyển đến bản ghi kề trước
chuyển đến bản ghi kề sau
Thanh định hướng (Navigator bar)
chuyển đến bản ghi cuối cùng
Thêm 1 bản ghi mới
191191
2013
5.3. Thi ế ế
ế ế t k Form ữ ệ ơ ậ ẫ
ậ ả t k Form nh p d li u đ n gi n ữ ệ ả ạ
192192
ướ 5.3.1. Thi VD: T o form dùng làm m u nh p d li u cho b ng CANBO. B c 1: Form /New/Design View.
2013
ế ế
ữ ệ
ơ
ậ t k Form nh p d li u đ n
5.3.1. Thi gi nả
ọ ơ ẽ ầ ế t k và xây d ng các thông tin c n thi t
ự ồ ầ ầ ầ Có 3 thành ph n quan tr ng: ử ổ Form – n i s thi ế ế (1) C a s ấ theo yêu c u bài toán. C u trúc form g m 3 ph n:
ề ầ ố ề
ộ ố
Form Header ph n tiêu đ đ u form; ầ Form Footer ph n tiêu đ cu i; ầ Detail ph n thân form.. ầ Toàn b các thông tin trên form đ u đ ề ố ượ ng đi u khi n (Control), các đ i t ứ ượ c ch a trong các đ i ượ ấ ừ thanh c l y t ng này đ
193193
ụ ể ề ượ t công c Toolbox.
2013
ế ế
ữ ệ
ơ
ậ t k Form nh p d li u đ n
5.3.1. Thi gi nả
ữ ơ ứ ữ
ề ụ ụ ể ư (2) Thanh công c ụ Toolbox – n i ch a nh ng đ i t ế ế ố ượ ng, nh ng công ệ t k giao di n và đi u
ữ ệ
ố ượ ọ ậ ng Textbox,
ể ị
ộ ộ ệ ớ c có th đ a lên form v i m c đích thi ể khi n d li u theo bài toán. Ví d : ụ mu n t o ô nh p H tên trên form: dùng đ i t mu n đ a m t chú thích (nhãn hi n th ): dùng Label, mu n t o m t nút l nh: dùng CommandButton,…
ợ ẽ ậ ậ ộ ng s có t p h p các thu c tính (Properties) và t p
ố ạ ố ư ố ạ M i đ i t ỗ ố ượ ự ệ
các s ki n (Events). Thuộc tính: mô tả tính chất cho đối tượng đó, ví dụ như: màu sắc,
kích thước, tính chất dữ liệu,..
Sự kiện: gắn các mã lệnh VBA hoặc gắn các Macro lệnh để xử lý
194194
những công việc nào đó.
2013
ữ ệ
ơ
ế ế
ậ t k Form nh p d li u đ n
ộ
5.3.1. Thi gi nả (3) C a c ử ổ Properties – n i có th thi
t l p các thu c tính (properties) cho
ư
ơ ố ượ
form cũng nh các đ i t
ế ậ ể ng trên form; ở
ữ ệ
ồ
ướ
ế ậ
ộ
t l p ngu n d li u cho form
ọ
ố ượ
ở ộ
B c 2: Thi Ch n tên đ i t
ng
h p ch n
thu c tính Record Source. ọ Object trên thanh công c ụ
Form
Formatting.
ữ
ị
ướ
ọ ủ
ẻ
Ho c D_click lên ô vuông v trí giao gi a 2 th
c k ngangd c c a form
ế ế
ề ử ổ
ặ đang thi
t k . Làm sao khi tiêu đ c a s Properties là
Form.
ọ
ả
Record Source: ch n tên b ng
CANBO.
195195
2013
ế ế
ữ ệ
ơ
ậ t k Form nh p d li u đ n
5.3.1. Thi gi nả
ở ử ổ M c a s Field List.
ườ B c 3: ướ C a s ử ứ ổ Field List có ch a danh sách các tr ng trên CSDL có
ủ ồ ữ ệ trong ngu n d li u c a Form.
ư ự ệ ệ
ế ằ ấ ặ N u ch a th y c a s này xu t hi n, hãy th c hi n hi n th nó ị ể ấ Field List
196196
ấ ử ổ ơ View | Field List ho c nh n nút ở ự b ng cách m th c đ n ẩ ụ trên thanh công c chu n.
2013
ế ế
ữ ệ
ơ
ậ t k Form nh p d li u đ n
5.3.1. Thi gi nả ư
ữ ệ ừ ử
ổ
B c 4: ướ
ậ ng c n nh p d li u t
c a s Field List lên
ữ Đ a nh ng tr ế ế ằ
ầ ườ t k b ng cách:
Form đang thi Rê từng trường muốn thiết kế lên form từ cửa sổ Field List vào phần Detail
của form.
Mỗi khi kéo một trường từ Field List lên form, Access sẽ tự động tạo một đối tượng gắn kết tới trường dữ liệu tương ứng, đối tượng này có thể là Textbox, Combobox hay đối tượng khác tuỳ thuộc vào kiểu dữ liệu của trường tương ứng; và đối tượng Label đi kèm nhằm tạo nhãn chú thích cho trường dữ liệu.
197197
2013
ấ
ỉ
5.3.2. Tinh ch nh c u trúc Form
ử
ể ử ở
ế ế
ằ
ế ộ ch đ thi
ở ọ
ấ
ặ Design; ho c nh n nút
t k (Design view) b ng cách: Design trên
ộ a. S a thu c tính M form đ s a ấ ch n form, nh n nút thanh công c . ụ
ỳ ừ
ng làm vi c c th mà có các
Tu t ng m c đích, đ i t ụ ệ
ệ ộ ố
ụ ể ố ượ ụ cách làm vi c khác nhau. Sau đây là m t s ví d :
ử
ể ấ
ặ
S a thu c tính Caption ho c có th b m
S a nhãn (Label): ộ ự
ộ ể ử
ế
ử ị chu t tr c ti p lên nhãn đ s a giá tr .
198198
2013
ấ
ỉ
5.3.2. Tinh ch nh c u trúc Form
ướ ố ượ c đ i t ng (Resize):
ố ượ ổ ệ ấ
ầ ể ặ ể
ẽ ừ ể ề ể ỉ ộ ầ ể
ộ Thay đ i kích th ổ Khi tr chu t (ch n) lên đ i t ộ ọ ỏ ng c n thay đ i, x xu t hi n 6 ố ượ ng: Khi đó có th đ t chu t lên t ng đi m (khi đi m trên đ i t ộ ộ ỏ nào con tr chu t chuy n thành mũi tên 2 đ u) đ đi u ch nh đ ớ l n b ng cách rê chu t.
ớ ế ố ượ ị rê đ n v trí m i.
ng: ữ Font Name. ề BackColor. ữ ForeColor
ữ ệ ể ị ể ạ ằ Di chuy n đ i t ể Thay đ i Font ch : ổ Thay đ i màu n n: ổ Thay đ i màu ch : ổ Thu c tính ộ ị Format và InputMark đ đ nh d ng d li u khi hi n th
199199
ư ặ ạ ữ ệ ậ cũng nh m t n khi nh p d li u.
2013
ấ
ỉ
5.3.2. Tinh ch nh c u trúc Form
200200
ỉ Sau khi tinh ch nh, ta có form sau:
2013
ấ
ỉ
5.3.2. Tinh ch nh c u trúc Form
ộ ố ạ
ệ
ạ t o m t s lo i nút l nh mà không
ế ế ậ
b. S d ng Command Button Wizard: t đ n l p trình.
ử ụ ầ c n bi
ướ
ử ụ
Control Wizard
Ví d : T o nút ụ ạ Tr
c khi s d ng tính năng này, ph i đ m b o nút ố
ượ
ụ
ả ả ả ấ c nh n chìm xu ng:
trên thanh công c ToolBox đã đ
201201
2013
ấ
ỉ
5.3.2. Tinh ch nh c u trúc Form
ố
ng
ệ
ấ
ọ
ộ
B c 1: ướ ư ộ Dùng chu t đ a đ i ừ ượ Command Button t thanh t ị ụ ợ công c lên v trí thích h p trên ạ ộ Form, h p tho i sau xu t hi n: B c 2: ầ ướ ộ
ạ
Ch n hành đ ng c n ệ làm cho nút l nh. Quan sát h p tho i trên có 2 danh sách:
ứ
ộ
ệ
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.
202202
2013
Danh sách l nhệ
Nhóm/L nhệ Ý nghĩa TT
ị ướ Record Navigation Nhóm đ nh h 1
ả ng b n ghi ầ ể Goto First Record 1.1
ề ả Chuy n v b n ghi đ u ế ố ể Goto Last Record ả Chuy n đ n b n ghi cu i cùng 1.2
ể ề Goto Next Record 1.3
ể Goto Previous Record ả Chuy n b n ghi k sau ề ướ ả Chuy n b n ghi k tr c 1.4
ử ớ ả Record Operations 2
AddNew Record Các x lý v i b n ghi ớ ả Thêm b n ghi m i 2.1
ả Delete Record Xoá b n ghi hi n t 2.2
ậ ậ ả Update Record ệ ạ i ệ ạ i 2.3
203203
C p nh t b n ghi hi n t ổ ữ ệ ụ ồ ả Undo Record Ph c h i thay đ i d li u b n ghi 2.4
2013
ử
ớ
Form Operations
Các x lý v i Form
3
Close Form
3.1
Đóng form ở ộ
Open Form
M m t form khác
3.2
ử
ớ
Report Operations
4
Các x lý v i Report ướ
ộ
c n i dung (Preview) report
Preview report
Xem tr
4.1
Print report
4.2
ộ ệ
In report ấ
Send report to file
Xu t report ra m t t p tin ngoài
4.3
ụ
ứ
ử
Applications
X lý ng d ng
5
Quit Application
5.1
ỏ Thoát kh i Access ụ
ộ ứ
ạ
ệ
Ch y m t ng d ng nào đó (t p .exe)
Run Application
5.2
ộ ố
Miscellaneos
M t s thao tác khác
6
ộ ả
ộ
Print table
In n i dung m t b ng
6.1
ộ
Run macro
Thi hành m t Macro
6.2
ộ
Run query
Thi hành m t query
6.3
204204
2013
ấ
ỉ
5.3.2. Tinh ch nh c u trúc Form
VD: Với yêu cầu đóng form, phải chọn:
• Categories = Form Operations • Actions = Close Form.
Ch n xong nh n ấ Next.
Hiển thị bằng chữ
Hiển thị bằng hình
ạ ướ ộ ọ ể ệ ị ọ B c 3: ướ Ch n hi n th cho nút l nh trên h p tho i d i:
205205
ọ Ch n xong nh n ấ Finish.
2013
ạ
5.3.3. T o SubForm
ậ ế ế ở ọ ầ K thu t thi t k form đã trình bày các ph n trên g i là Single
ỹ form.
ể ồ ồ ệ
Subform là vi c form này l ng trong form kia (có th l ng trong c ượ ẹ Main form); form đ
ề ớ ọ nhau nhi u l p). Form ch a g i là form m ( ồ l ng vào g i là form con (
ệ ữ ệ ộ ậ ặ ứ ọ Subform). ừ 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. ạ ữ ệ ậ c s d ng trong các lo i form nh p d li u,
ho c s d ng đ hi n th d li u.
206206
ử ệ ớ Subform có th đ ặ ử ụ ướ ỳ ể ượ ể ể ạ ử ụ ậ ỹ ụ ử ụ ị ữ ệ D i đây minh ho 2 ví d t o form có s d ng k thu t này. ụ ạ
2013
ử ụ
ữ ệ
ậ
VD: S d ng Subform trong form nh p d li u:
ế ế
ư
ơ
ậ
Bài toán: Thi
t k form nh p thông tin hoá đ n bán hàng nh sau:
Form phụ: nhập thông tin về hàng bán cho hóa đơn tương ứng trong form chính
Form chính: nhập thông tin về hóa đơn
Phải kết nối Form chính với Form phụ thông qua trường hoadonID Cách làm như sau (yêu cầu thực hiện theo đúng thứ tự công việc
207207
các bước):
2013
ướ
ụ
ạ B c 1: T o form ph
ạ
ch đ
ớ ở ụ ẽ ể
ạ
ả
ả
ế ậ
ộ
t l p thu c tính
ụ ở
ồ
ộ
Record
t l p ngu n d li u làm vi c cho form ph
thu c tính
ế ậ ằ
ữ ệ ấ
ế ộ Design View; T o form m i ị ữ ệ Vì form ph s hi n th d li u d ng b ng nên ph i thi Default View cho form ph là ụ Datasheet; Thi Source b ng cách nh n nút
ệ … (hình d
i)ướ
208208
Form chính: nhập thông tin về hóa đơn
2013
ướ
ụ
ạ B c 1: T o form ph
ế ế
ệ
ế ậ
ư
Màn hình thi
ấ t k Query xu t hi n. Hãy thi
t l p Query này nh sau:
ế ế
t k Query.
ể ư
ế
Đóng màn hình thi S d ng c a s Field list đ đ a các tr
ầ ng c n thi
t lên vùng Detail
ử ổ ồ
ườ hangID, donvi, dongia, soluong, thanhtien;
ọ
ạ
ị ạ
ẩ
c a form bao g m: ộ
ớ
i form v i m t tên g i (ví d :
i, chu n b t o
ử ụ ủ Ghi l
ụ frmHangban) và đóng l
ạ form chính.
209209
2013
ướ
ớ ở
ạ B c 2: T o form chính ế ộ Design
ch đ T o Form m i
ạ View;
ồ ế ậ
Thi ệ ữ ệ ở ộ
ấ t l p ngu n d li u làm vi c cho form chính thu c ằ tính Record Source b ng cách … (hình bên) nh n nút
ộ ấ ế ế t k query ế ậ t l p query
210210
ế ế M t màn hình thi ệ xu t hi n. Hãy thi ư này nh sau: Đóng màn hình thi t k query.
2013
ướ S d ng c a s
ế
ử ầ ườ ng c n thi ủ
S ử
ố đ i trên ể ư
ụ
ố đ i
lên ấ
ộ
ạ B c 2: T o form chính ử ụ ổ Field List đ ể ư t lên đ a các tr ồ vùng Detail c a form bao g m: hoadonID, khacID, ngayban, diachi, email; ượ ụ t ng d ng Subform\Subreport thanh công c ToolBox đ đ a form ư ụ ph lên form chính. Sau khi đ a ượ ộ ng m t t form Subform\Subreport ệ ạ chính, h p tho i sau xu t hi n.
Chọn tên form phụ cần đưa vào
(Có thể đưa form phụ lên form chính bằng cách rê tên form con thả lên form chính)
211211
2013
ả
Form k t quế
212212
2013
Cách khác:
ử ụ ấ ễ
ầ ế ở ạ ữ
ớ
ả
Khi s d ng Form wizard, b n cũng r t r dàng khi t o form ạ ợ đây là k t h p gi a form theo yêu c u trên. Cách làm wizard v i form Design view. Chúng tôi trình bày thêm cách ạ này đ các b n tham kh o. ấ ữ ệ ạ T o form wizard l y nh ng d li u sau:
ể B c 1: ữ ướ Bảng HOADON lấy các trường: hoadonID, khachID, ngayban; Bảng KHACH lấy các trường: diachi, email; Bảng HANGBAN lấy các trường: hangID, soluong; Bảng HANG lấy các trường: donvi, dongia.
ướ ẽ ạ ượ ầ c này Access s t o đ c form theo yêu c u có
213213
Sau b d ng:ạ
2013
Cách khác:
ầ
ầ
ứ
ứ
ế ộ
ở
ườ
ch đ Design View ng tên form con này Access
ẽ ặ hangban subform);
ế ậ
Form này g n đáp ng yêu c u đ u bài ầ ộ Thanhtien trong form con). ế ỉ (ch thi u c t B c 2: ể ử ướ S a form con đ đáp ng bài toán: ở M form con (thông th s đ t Thêm m t ộ Textbox lên vùng Detail c a ủ ộ Control form con và thi t l p thu c tính ư Source cho text box này nh sau: (= [dongia]*[soluong]):
214214
2013
ử ụ
ữ ệ
ọ
S d ng Subform trong form l c d li u
ế ế
ộ ộ
ọ
Bài toán: Thi
ư t k form l c ra danh sách cán b m t phòng ban nào đó nh
sau:
2
1
ả ạ
ụ
ớ
ộ
ể
ầ
ị
ề V i yêu c u này, ph i t o m t form ph cho phép hi n th các thông tin v
ộ ầ
danh sách cán b c n in ra (1);
ố ầ ọ
ậ
ộ ế ậ
ố
ỗ
ộ
Ph i t o m t form chính cho phép nh p các tham s c n l c (2); ả ạ Ph i thi ả
ọ ẽ ự ộ
ụ ộ ở
ị
t l p tham s cho form ph sao cho m i khi ch n m t phòng ban ể đ ng hi n th ra
phòng ban đó s t
trên form chính, danh sách cán b form ph .ụ
215215
2013
ữ ệ
ạ
ọ
Cách t o Subform trong form l c d li u
ạ
ụ ế ộ
ả
ả
ạ
ế ậ
ộ
Default
t l p thu c tính
ở ộ
tu c tính
Record Source b ng ằ
B c 1: ướ T o form ph ở ớ ạ ch đ Design View; T o m i form ị ữ ệ ụ ẽ ể Vì form ph s hi n th d li u d ng b ng nên ph i thi View cho form con là Datasheet; ồ ế ậ ệ ữ ệ Thi ấ … (hình d cách nh n nút
t l p ngu n d li u làm vi c cho form con i)ướ
216216
2013
ữ ệ
ạ
ọ
Cách t o Subform trong form l c d li u
ộ
ế ế
ệ
ế ậ
ư
M t màn hình thi
ấ t k query xu t hi n. Hãy thi
t l p query này nh sau:
Gõ tham số cho form con tại trường phongbanID
ử ụ
ể ư
ườ
ế
ủ
ử ổ Field List đ đ a các tr
t lên vùng Detail c a
ầ ng c n thi hoten, gioitinh, ngaysinh, tenchucvu;
S d ng c a s form bao g m: ồ ớ
ạ
ộ
ọ
ạ
ẩ
i form v i m t tên g i (ví d :
i, chu n
ụ frmDscb_subform) và đóng l
Ghi l ị ạ
b t o form chính.
217217
2013
ữ ệ
ạ
ọ
Cách t o Subform trong form l c d li u
ạ
T o form chính
B c 2: ướ - Tạo mới mới form ở chế độ Design View; - Tạo hộp Combo box chứa danh sách các phòng ban có thể chọn trên form chính bằng cách: Dùng chuột kéo đối tượng Combobox từ thanh công cụ ToolBox thả lên form chính, hộp thoại sau xuất hiện:
Chọn mục này để lấy dữ liệu từ Table
218218
2013
Chọn tên Table cần lấy dữ liệu
Chọn tên trường muốn hiển thị
219219
2013
Ẩn thuộc tính khóa
Thi
ế ậ ộ ố tham s đã thi
t l p thu c tính ế ậ ở t l p
form ph là
Name cho Combo box trùng tên v i ớ ụ cboPhongban.
220220
2013
ử ụ
ể ư
S d ng đ i t
ng
ố ượ ẹ
ộ ố ượ
ư
Subform\Subreport trên thanh công c ụ ToolBox đ đ a form Subform\Subreport lên form, m t ộ
ng
ộ
ệ
ấ
ạ
con lên form m . Sau khi đ a m t đ i t h p tho i xu t hi n:
Chọn tên form phụ cần đưa lên
Kết thúc yêu cầu cơ bản của bài toán
Chú ý: Giá trị thuộc tính Name của hộp Combobox trên form chính phải trùng với tham số đã đặt ở form phụ. Nếu chưa trùng nhau phải sửa lại cho khớp: hoặc sửa Name của Combo cho khớp với tham số form phụ hoặc thao tác ngược lại mở form phụ sửa tham số cho khớp Name của ô Combobox.
221221
2013
Bài t pậ
ươ ộ ng cán b
ộ ừ ạ Qu n lý l ả ư Bài 1: T o form cho phép xem danh sách cán b t ng phòng ban nh
sau:
ầ ọ h p ch n thì danh sách cán
222222
ượ ộ ể ị ọ ỗ Yêu c u: M i khi ch n m t phòng ban t b phòng ban đó đ ộ c hi n th lên ừ ộ Subform.
2013
ư ế ạ ộ Bài 2: T o form cho phép tìm ki m cán b theo tên nh sau:
ủ ọ
ộ
ể
ặ
ầ
ầ
Yêu c u: Sau khi gõ m t tên (có th là đ m + Tên ho c đ y đ h và tên),
ế
ả
ấ
ệ
ệ ẽ ượ
danh sách các k t qu tìm th y s đ
c li
t kê lên Subform.
223223
2013
ế ế
ẫ
ậ
ơ
Bài 3: Thi
t k form l p hoá đ n bán hàng theo m u:
ị
Các nút Ti n, Lùi ơ
ể ị ế đ đ nh ệ ầ v hoá đ n c n làm vi c; Nút Thêm m i ớ đ b t đ u ầ
ớ
ể ắ ơ ộ ạ t o m i m t hoá đ n;
ể
ơ
ướ
ệ ạ đ n hi n t ậ có xác nh n tr
ể
Nút In HĐ đ in chi ti
ơ
ứ
ẽ ượ ọ
ệ ươ
Nút Xoá HĐ đ xoá hoá ả ầ i. Yêu c u ph i c khi xoá; ế t hoá đ n bán hàng ra report c (ch c năng này s đ hoàn thi n sau khi h c xong Ch
ng Report)
224224
2013
ế ế
ư
ổ
ợ
Bài 4: Thi
t k form t ng h p thông tin bán hàng nh sau:
ế
Sau khi nh p xong giá tr t ị ừ ậ ạ
ngày và đ n ngày, thông tin chi ti ượ ổ
ế ề t v các ư
ợ
c t ng h p theo nh giao
ặ ệ
m t hàng bán ra trong ph m vi ngày đó đ di n trên.
225225
2013
ế ế ộ ợ t k form t ng h p thông tin bán hàng cho m t khác hàng
ổ ả ư ộ Bài 5: Thi nào đó trong m t kho ng ngày nào đó nh sau:
ộ
ợ
ậ
ả
ẽ ượ
ọ ổ
ề ừ
ủ
ợ
ặ
Yêu c u: ầ Sau khi ch n m t khách hàng, nh p vào kho ng ngày c n t ng h p. ầ ổ Thông tin t ng h p v t ng m t hàng c a khách đó mua s đ ệ c li
t kê.
226226
2013
ạ
ổ
ợ ư
ừ
Bài 6: T o form t ng h p thông tin hàng đã bán chi ế ti
t theo t ng ngày nh sau:
227227
2013
ạ
ủ
ơ
ộ
Bài 7: T o form theo dõi thông tin hoá đ n bán hàng c a m t khách hàng nào đó:
ộ ơ ọ ề Yêu c u: Sau khi ch n tên m t khách, thông tin v các hoá đ n mua
228228
ượ ầ hàng đ ị ể c hi n th .
2013
ằ
Khái ni mệ T o Report b ng Wizard ạ Thi ế ế t k Report Truy n tham s ố ề In Report
229229
2013
6.1. Khái ni mệ
ụ
ế
ế
ữ ệ
Report là công c dùng thi
ấ t k in n d li u ổ ữ ệ
trong Access, không làm thay đ i d li u.
ể
ả
ộ
M i khi report hi n th k t qu (preview) là lúc có ị ế c n i dung báo cáo ra gi y.
ẽ
ỗ
ủ
ấ ữ ệ
ộ
ợ
ặ
ầ
ỗ ể ượ th in đ Thông th ườ ặ ữ ệ
ồ
ộ ộ ả ệ ng h p đ c bi ầ ẽ
ồ
ế
ng m i report s in d li u c a m t ứ Table ho c m t Query nào đó. T c là ph i có m t ụ ể ườ ngu n d li u c n in c th (tr t ữ ệ Report không có ngu n d li u s nói đ n ph n cu i)ố
230230
2013
ấ
6.2. C u trúc Report
ộ
ấ
ườ
ồ
ầ
C u trúc m t report thông th
ng g m 5 ph n:
231231
2013
ấ
C u trúc Report
Report Header
Là phần tiêu đề đầu của Report, nằm ở tiêu đề đầu của trang đầu tiên. Mỗi Report có nhiều nhất 1 Report header. Phần này có thể có hoặc không có thông tin tuỳ vào người thiết kế.
Report Footer
Là phần tiêu đề cuối của Report, nằm ở tiêu đề
cuối của trang cuối cùng.
232232
2013
ấ
C u trúc Report
Page Header
Là phần đầu tiên của một trang báo cáo. Giống như khái niệm Page header trong Word và Excel. Phần này có thể có hoặc không có thông tin tuỳ vào người thiết kế.
Page Footer
Là phần cuối cùng của mỗi trang báo cáo.
Detail
Là phần thân của report – nơi hiển thị giá trị các bản ghi sẽ in ra. Phần này có thể bị thay đổi, phụ thuộc vào nguồn dữ liệu tại thời điểm sẽ in ra của report.
233233
Ví dụ: Danh sách học sinh lớp 10A1 là 45 khi đó Detail report sẽ in ra 45 dòng; nếu chuyển sang in danh sách học sinh lớp 10A2 có 48 học sinh, lúc này Detail report sẽ in ra 48 dòng (tương ứng với số bản ghi của nguồn dữ liệu sẽ in ra).
2013
ằ
ạ
6.3. T o Report b ng Wizard
ạ
ồ
VD: T o m t report in ra ộ ộ ừ danh sách cán b t ươ ả ng bao CSDL Qu n lý l g m các thông tin: Hoten, tenchucvu, ngaysinh, Tenphongban.
B c 1: ướ
ộ Ho c nh n đúp chu t lên
234234
Ở ẻ th Reports, nh n ấ New, ch n ọ Report wizard, nh n ấ OK. ấ ng: ặ ể ượ bi u t
2013
ạ
ằ
6.3. T o Report b ng Wizard
ọ ữ Ch n d
B c 2: ướ ầ ệ ộ
Chọn bảng hay query chứa dữ liệu cần in ra.
Chọn cột chứa dữ liệu cần in ra.
235235
ạ li u c n in trên h p tho i sau:
2013
ạ
ằ
6.3. T o Report b ng Wizard
B c 3: ể ướ Ch n ki u ị ữ ệ ể
236236
ọ cách hi n th d li u trên report. Trong yêu cầu này có thể có 3 kiểu hiển thị dữ liệu trên report (vì dữ liệu được chọn ra từ 3 bảng khác nhau). Vì muốn in một danh sách cán bộ nên chọn kiểu by CANBO
2013
ạ
ằ
6.3. T o Report b ng Wizard
B c 4: ướ
thiết
ế ậ ầ
237237
t l p các Thi ế ữ ệ t. nhóm d li u c n thi Muốn hiển thị dữ liệu theo nhóm giá trị của trường nào, chọn trường đó (Trong bài này chỉ cần hiển thị một danh sách chung nên không cần lập nhóm ở bước này)
2013
ằ
ạ
6.3. T o Report b ng Wizard
Thi
B c 5: ướ ế ậ t l p ữ ệ ế ắ s p x p d li u trên báo cáo:
238238
2013
ạ
ằ
6.3. T o Report b ng Wizard
ọ B c 6: ướ Ch n b c c
Chọn bố cục cho report
Chọn hướng giấy in
239239
ố ụ (Layout) cho Report:
2013
ạ
ằ
6.3. T o Report b ng Wizard
ẫ
ọ
ạ
ị
Ch n m u đ nh d ng (Style) cho report.
ố
ệ
B c 7: ướ B c 8: ướ Hoàn thi n các thông tin cu i cùng: Gõ vào tiêu đề report cũng như tên report trên hộp
What title do you want for your report?;
Chọn Preview the report để hiển thị dữ liệu của report ngay sau khi kết thúc; hoặc hiển thị ngay màn hình thiết kế để sửa cấu trúc report khi chọn Modify the report’s design;
Cuối cùng nhấn Finish để kết thúc các công việc
sử dụng report wizard.
240240
2013
ị ữ ệ
ể
Màn hình hi n th d li u report
241241
2013
In
Mở report ở chế độ thiết kế;
Xuất (Export) thông tin trên report ra Xuất (Export) thông tin trên report ra các loại định dạng khác của MS các loại định dạng khác của MS Office như Word, Excel, HTML. Office như Word, Excel, HTML.
Hiển thị nhiều trang trên 1 MH
Hiển thị 2 trang trên 1 màn hình
Hiển thị report ra màn hình trong từng trang báo cáo;
242242
2013
ư
L u ý:
ướ
ự
ữ
ệ
ả
V i nh ng report đ n gi n, ch c n th c hi n B c 1;
ể
ỉ ầ ể ế
ớ ướ
B c 2 đã có th nh n
ơ ấ Finish đ k t thúc.
ố
ạ
ầ
Tuy nhiên tu vào yêu c u in báo cáo mà mu n d ng l
ừ ợ
ể
ỳ c nào đ thi ế
i ế ậ t l p các thông tin cho phù h p hãy ướ
ở ướ b ể chuy n nhanh đ n b
c đó.
243243
2013
6.4. Thi
ế ế ỉ
t k Report Report wizard ch có th t o ra các report in d li u t ể ạ
ữ ệ ừ
ặ
ấ
ơ
ả
ữ
ườ
ầ
ả Trong nh ng tr ả
các b ng ho c queries theo c u trúc đ n gi n. ợ ữ ệ
ặ
ả
ấ
ố ộ
ượ
ứ
ể ế
ườ
ợ
ả
ứ ấ ng h p yêu c u c u trúc report ph c ỉ ừ ả ạ t p, ho c ph i in d li u không ph i hoàn toàn ch t ặ các b ng và queries ho c in n báo cáo theo các tiêu c. chí, tham s đ ng nào đó thì không th đáp ng đ ng h p này ph i dùng đ n Report design
Trong tr view.
244244
2013
ế ế
6.4. Thi
t k Report
ở ộ
Kh i đ ng Report design view:
B c 1: ướ Từ thẻ Report nhấn nút New, chọn Design view, nhấn
OK.
Hoặc nhấn đúp chuột lên biểu tượng Creat report in
Design view trên cửa sổ dự án:
245245
2013
ế ế
t k Report
B c 1: ướ ộ
6.4. Thi Kh i ở đ ng Report design view:
Thiết kế nội dung cần in
Thanh công cụ
Cửa sổ Properties
246246
2013
ế ế t k Report ồ
6.4. Thi ự Xây d ng ngu n ấ
B c 2: ướ ể ữ ệ d li u đ in n cho report. Report sẽ in những
thông tin gì?
Phạm vi như thế nào? thiết lập thuộc tính
+ Cách 1: chọn query cần in tại thuộc tính Record Source.
247247
Record Source cho report: 2 cách
2013
ế ế
6.4. Thi
t k Report
thiết lập thuộc tính Record Source cho report: 2 cách + Cách 2: nhấn
chuột lên nút … của thuộc tính Record Source để thiết kế query làm nguồn dữ liệu.
248248
2013
ế ế
ử ổ
ế ế
t k Report 6.4. Thi ư : Đ a các thông tin lên c a s thi
t k report.
B c 3 ướ Có rất nhiều loại thông tin phải đưa lên report. Mỗi khi có ý định đưa một thông tin lên, bạn phải trả lời được 2 câu hỏi:
• Đó là thông tin gì? là tiêu đề “DANH SÁCH CÁN BỘ”. • Sẽ đặt thông tin đó lên phần nào của report? Đặt lên phần
Để hiển thị phần tiêu đề đầu và cuối Report: nhấn phải chuột lên cửa sổ thiết kế và chọn: Report Header/Footer
249249
Page Header!
2013
ử ụ
S d ng công c
ụ Label
Dùng chuột nhấp nút Label trên thanh công cụ Toolbox
thả lên vị trí cần đặt vào trên Report; Gõ vào nội dung tiêu đề cần in ra report; Có thể sử dụng thanh công cụ Formatting để định dạng
hộp dữ liệu này.
250250
2013
ử ụ
S d ng công c
ụ Text box
Text box là ô dùng hiển thị dữ liệu của một trường dữ liệu, hiển thị dữ
liệu của một biểu thức (ví dụ tính Tổng tiền).
• Dùng chuột nhấp nút Textbox trên thanh công cụ Toolbox thả lên vị trí
cần đặt vào trên Report;
• Gõ vào nguồn dữ liệu sẽ hiển thị lên Textbox ở thuộc tính Control
Cách sử dụng Textbox như sau:
Source. Giá trị thuộc tính này có thể:
– Hiển thị giá trị một trường: Khi đó hãy chọn trường muốn đưa thông tin vào
(hình dưới):
251251
2013
ử ụ
S d ng công c
ụ Text box
– Hoặc hiển thị kết quả một biểu thức. Khi đó gõ biểu thức lên thuộc tính
này bắt đầu một dấu bằng “=”.
– Ví dụ:
– Có thể sử dụng thanh công cụ Formatting để định dạng hộp dữ liệu này.
252252
2013
S d ng c a s ườ
ử ụ Danh sách các tr
ng d li u có th in ra đ
ơ
ể
ổ Field List ượ ị ở ự
ư
ử ữ ệ ế
ệ ở ử
ể ể c report th ấ ổ Field List (n u ch a th y hi n th m th c đ n
c a s hi n View | Field List)
ườ
ị ủ
ủ
Mu n in ra giá tr c a tr
ố ể
ố ượ
ằ
ổ
ầ
ặ ng c n in ra t
ườ ử
ế ế
ả
ị
ị ng nào lên v trí nào c a report có ổ ử ng Textbox ho c c a s Field List b ng ừ ử c a s Field List t k report (nên làm theo
th dùng đ i t ộ cách: dùng chu t kéo tr ổ ầ th lên v trí c n in trên c a s thi cách này thay vì dùng Textbox).
253253
2013
S d ng công c ư ả
ệ
ử ụ Giúp đ a nh t ừ ộ ộ
ụ Image ố ượ các t p tin nh in ra report. Sau khi t o đ i t ầ
ọ ệ ạ ả ả ệ ấ ạ
ng ư Image, m t h p tho i xu t hi n cho phép ch n t p tin nh c n đ a lên report:
254254
ọ ệ ả ấ ệ Tìm và ch n t p nh, nh n ể ấ OK đ hoàn t t công vi c.
2013
ườ ằ
ộ ụ ư
ể ng th ng, b ng bi u b ng cách rê chu t. ử ụ ư ẳ ằ ế ế ộ ớ ướ ẫ
ụ Line ử ụ S d ng công c Dùng đ v các đ ể ẽ ả V i yêu c u nh trên, b ng cách s d ng các công c nh đã ư ầ t k m t report nh sau: ng d n hãy thi
255255
h
2013
ử ụ
ụ Line
S d ng công c
Trong đó:
Textbox bao gồm các ô như đã đánh mũi tên chỉ dẫn. Trong đó: -
hoten, ngaysinh, tenchucvu, tenphongban được tạo bằng cách kéo từ cửa sổ Field List lên phần Detail;
• Control Source là =Count([hoten]), • để ở phần Report footer.
Textbox đếm tổng số cán bộ:
• Control Source là =1; thuộc tính Running sum là Over Group.
Textbox để tự động đánh số thứ tự phải thiết lập như sau:
256256
Các hộp chữ còn lại dùng đối tượng Label; Toàn bộ bảng biểu sử dụng đối tượng Line. Chú ý các đường kẻ phải được nối khít với nhau. Nếu không khít sẽ tạo ra các khe hở và nét đứt (không liền nét).
2013
ứ
ố
ữ ệ ố ọ
Report có tham s là lo i Report có kh năng l c d li u khi in. VD: In danh sách cán b m t phòng ban nào đó? Lúc này ph i ả
ầ
6.5. Report ch a tham s ạ ả ộ ộ ố c n đ n report có tham s .
ể ế ậ ử ụ ố ế ề Có nhi u cách đ thi ư t l p và s d ng report có tham s nh :
257257
Thiết lập tham số trên Record Source của report; Thiết lập tham số trên điều kiện lọc (Where Condition) dùng Macro; Thiết lập tham số trong câu lệnh VBA DoCmd; …
2013
ậ
ố
ộ
t l p tham s trên thu c tính Record
ế Thi Source
Phòng ban cần in được chọn từ Combo box một form
như sau:
ộ ộ VD: In danh sách cán b m t phòng ban nào đó.
Sau khi chọn tên một phòng ban từ danh sách, nhấn nút In danh sách. Danh sách cán bộ phòng đã chọn sẽ được in ra một report.
258258
2013
ứ
ạ ư
ướ B c 1: T o Report đáp ng thông tin ầ c n in nh sau:
259259
2013
ạ
ầ
T o form theo yêu c u bài
ướ B c 2: toán:
Có thể sử dụng Combo Wizard để tạo Combobox lấy ra danh sách
các phòng ban từ bảng phongban;
Có thể sử dụng Command button Wizard để tạo các nút lệnh Đóng
và In danh sách;
260260
Cuối cùng được form như sau:
2013
ế ậ
ố
Thi
t l p tham s cho
ướ B c 3: Report:
Thiết lập tham số vào thuộc tính Record Source của Report như
• Mở report đã tạo được ở chế độ Design View (chế độ thiết kế); • Mở query được thiết lập ở thuộc tính Record Source –nơi tạo nguồn dữ liệu và thiết lập tham số cho trường phongbanID của query như sau:
261261
sau:
2013
ế ậ
ố
Thi
t l p tham s cho
ướ B c 3: Report:
Trong đó: tham số cho trường phongbanID là tên (Name) của ô Combo box chứa phòng ban được chọn trên form. Cú pháp viết tham chiếu tới một đối tượng trên form như sau:
Forms!!
Trong trường hợp này tên ô Combo đó là Combo1 và tên của form (Name của form) là frmIndsCB, cách viết tham số sẽ như sau:
Forms!frmIndsCB!Combo1
262262
2013
ử ụ
S d ng tính năng Build Expression
ể ử ụ
ứ ể ể ạ
trường phongbanID- nơi sẽ gõ vào tham số.
Một menu sổ xuống xuất hiện: Chọn Build hoặc có thể nhấn nút Build trên thanh công cụ Standard, hộp thoại Expression Builder xuất hiện:
263263
Có th s d ng tính năng Build Expression có ư ẵ s n trên Access đ giúp t o bi u th c này nh sau: Nhấn phải chuột lên ô Criteria của
2013
Ch n:ọ
ố ượ ầ
ố ượ
ạ
Forms| Forms|All frmIndsCB – đây là form ch a ứ ng combo box phòng đ i t ộ ọ ban c n l c. Khi đó m t danh sách các đ i t ng trên form frmIndsCB xu t ấ ộ gi a h p tho i; hi n ộ
Hãy nh n đúp chu t
ầ
lên ứ ố ượ ng ch a ượ ọ c
ế
ả
ệ ở ữ ấ Combo1 đ i t phòng ban c n l c, đ ư k t qu nh hình sau:
264264
2013
Bài t pậ
ươ ộ ự ầ ệ ng cán b th c hi n các yêu c u sau:
ộ ớ ả Trên CSDL Qu n lý l Bài s 1: ố ế ế Thi
ữ
t k report in danh sách cán b v i các thông tin: ả canboID, hoten, ngaysinh, gioitinh (ph i ghi rõ là Nam hay N ), tencv, tenpban.
ộ ộ ư Bài s 2: ố In danh sách cán b m t phòng ban nào đó nh sau:
ọ
ấ
Sau khi ch n tên m t phòng ban, nh n nút ộ
ộ
ọ
cán b phòng ban đã ch n s đ
In danh sách cán bộ, danh sách ộ c in ra m t report.
ế ế
ươ
ộ ơ
ồ
ẽ ượ ả
Bài s 3: ố
Thi
t k report in b ng l
ng cán b c quan, bao g m các thông
tin: Hoten, tencv, ngaysinh, luongchinh, phucapcv, dangphi, congdoanphi, thuclinh
265265
2013
Bài t pậ
ế ế ư ả ợ ộ Bài s 4: Thi ố ổ t k query in ra b ng t ng h p cán b nh sau:
ổ
ộ
STT
Tên ch c vứ ụ
ố T ng s cán b
ể ả ươ ủ Bài s 5: T o form và report đ xem và in b ng l ng c a các phòng
ạ ố ư ban nh sau:
ọ ể ộ
ộ ấ ả ị ươ ươ ả ng, b ng l ng các cán b phòng đó hi n ng riêng phòng ban
266266
ẽ ượ Sau khi ch n tên m t phòng ban, b ng l ả ươ th lên subform. Nh n nút In b ng l ộ c in ra m t report. đó s đ