Giáo trình Nhập môn hệ quản trị cơ sở dữ liệu - Đặng Thị Thu Hiền (Phần 1)
MỤC LỤC
LỜI NÓI ĐẦU . 5
CHƢƠNG 1: TỔNG QUAN VỀ MICROSOFT ACCESS . 7
1. Giới thiệu về Microsoft Office. 7
2. Làm việc với Microsoft Access . 7
2.1 Khởi động Access . 7
2.2 Tạo một cơ sở dữ liệu mới . 8
2.3 Làm việc với cơ sở dữ liệu đã tồn tại. 10
CHƢƠNG 2: BẢNG VÀ MỐI QUAN HỆ . 13
1. Cấu trúc của một bảng . 13
2. Thiết kế bảng. 13
2.1 Tạo bảng. 13
2.2. Đặt khoá chính . 17
2.3 Thuộc tính của trƣờng. 18
2.4 Thuộc tính của bảng. 19
2.5 Cập nhật dữ liệu vào bảng. 20
2.6 Xoá và đổi tên bảng . 20
3. Thiết lập quan hệ giữa các bảng. 21
3.1 Mối quan hệ giữa các bảng . 21
3.2 Cách tạo quan hệ . 22
3.3 Chỉnh sửa quan hệ. 23
3.4 Tạo các toàn vẹn tham chiếu. 24
BÀI TẬP CHƢƠNG 2. 26
CHƢƠNG 3: TRUY VẤN. 29
1. Tổng quan về truy vấn . 29
2. Thao tác trên truy vấn . 30
2.1 Các bƣớc tạo một truy vấn mới. 30
2.2 Đặt điều kiện trong truy vấn . 34
2.3 Tạo trƣờng tính toán trong truy vấn. 352
2.4 Thuộc tính của trƣờng và truy vấn. 36
2.5 Các phép toán và một số hàm trong Access . 37
3. Các loại truy vấn khác. 43
3.1 Truy vấn tính tổng (Totals) . 43
3.2 Truy vấn thông số (Parameter Query) . 45
3.3 Truy vấn Crosstab . 47
3.4 Truy vấn tạo bảng (Make Table Query) . 51
3.5 Truy vấn bổ sung (Append Query) . 53
3.6 Truy vấn xoá (Delete Query) . 54
3.7 Truy vấn chỉnh sửa (Update Query) . 56
BÀI TẬP CHƢƠNG 3. 59
CHƢƠNG 4: MẪU BIỂU. 63
1. Tạo mẫu biểu bằng Autoform và Wizard. 63
1.1 Tạo mẫu biểu bằng AutoForm . 63
1.2 Tạo mẫu biểu bằng Form Wizard . 64
2. Thiết kế Form ở chế độ Design. 66
2.1 Các thành phần trong một Form . 66
2.2 Các bƣớc thiết kế Form. 68
3. Hộp công cụ Toolbox. 73
3.1 Điều khiển Text box. 74
3.2 Điều khiển Combo Box. 75
3.3 Điều khiển Command Button . 83
3.4 Thiết kế dạng Main – Sub Form . 84
BÀI TẬP CHƢƠNG 4. 91
CHƢƠNG 5: BÁO BIỂU . 93
1. Tạo báo biểu bằng Autoreport . 93
2. Tạo báo biểu dùng Report Wizard . 94
3. Tạo báo biểu dùng Design View. 98
4. Tạo các nhãn dùng Label Wizard .102
BÀI TẬP CHƢƠNG 5.1053
CHƢƠNG 6: MACRO VÀ MENU .107
1. Macro .107
1.1 Tạo và sử dụng Macro .107
1.2 Các hành động Macro thƣờng dùng.109
1.3 Gắn Macro với các sự kiện trên Form/Report .109
1.4 Macro AutoExec .111
2. Menu Bar.112
BÀI TẬP CHƢƠNG 6.115
BÀI TẬP TỔNG HỢP .116
CHƢƠNG 7: LẬP TRÌNH CƠ SỞ DỮ LIỆU TRONG MS ACCESS.131
1. Giới thiệu lập trình Visual Basic Application.131
2. Module .132
2.1 Module chuẩn (Standard Module) .133
2.2 Module lớp (Class Module) .148
2.3 Module của form/report (Form/report Module).158
3. Kiểu dữ liệu, hằng và biến .168
3.1 Kiểu dữ liệu.168
3.2 Hằng .170
3.3 Biến .171
4. Các cấu trúc điều khiển.175
4.1 Cấu trúc tuần tự.175
4.2 Cấu trúc rẽ nhánh .176
4.3 Cấu trúc lặp .179
5. Hàm và thủ tục .182
5.1 Hàm.182
5.2 Thủ tục .184
6. Các mô hình truy cập cơ sở dữ liệu .184
6.1 Kiến trúc chƣơng trình ứng dụng MS Access.184
6.2 Kiến trúc DAO (Data Access Objects) .185
6.3 Kiến trúc ADO (ActiveX Data Objects).2144
BÀI TẬP CHƢƠNG 7.241
TÀI LIỆU THAM KHẢO.242
gày ở * 0.9 (Giảm10%) (c) GiamGiaA : ( Khuyến mãi nhân dịp 30/4 và 1/5 ). Đối với khách hàng đến khách sạntrong tháng 5 ( tính theo Ngày vào) thì : GiamGiaA = 15% * ThanhTien. Ngoài ra : GiamGiaA = 0 (d) GiamGiaB: ( Khách hàng đặc biệt ) Khách loại 3 : GiamGiaB = 10%*ThanhTien Khách loại 2 : GiamGiaB = 5%*ThanhTien Khách loại 1 : GiamGiaB = 0 (e) ThucThu= ThanhTien – GiamGiaA – GiamGiaB 8. Tạo From fKH-LoaiPhong nhƣ sau : 9. Tạo Report rTinhTien có dạng nhãn nhƣ sau cho tất cả các khách hàng: 120 10. Tạo Table THISINHcó các field sau :SoMay(Number–Integer), HoTen (Text-35), Ca(text-35). Không qui dịnh field khóa chính. Nhập dữ liệu là thông tin của chính bạn BÀI TẬP 3 1. Tạo một cơ sở dữ liệu chứa 3 table có nội dung nhƣ hình sau: Yêu cầu: • Tự xác định cấu trúc các table căn cứ vào dữ liệu chứa trong đó • Qui định khóa chính cho các table nhƣ sau: ChiTietVanTai là MaVT, TrongTai là MaTrongTai, LoTrinh là MaLoTrinh 2. Thiết lập quan hệ giữa các table theo sơ đồ quan hệ sau: TrongTai ( MaTrongTai, 1 ) ChiTietVanTai ( MaTrongTai, ) LoTrinh ( MaLoTrinh, 1 ) ChiTietVanTai ( MaLoTrinh, ) 3. Tạo query tên CuocPhiVanTai gồm các field SoXe, MaLoTrinh, SoLuongVT, NgayDi, NgayDen, ThoiGianVT, CuocPhi, Thuong. Trong đó: • ThoiGianVT: là 1 nếu vận chuyển trong ngày, là (NgayDen-NgayDi) trong trƣờng hợp ngƣợc lại. 121 • CuocPhi: là SoLuongVT x DonGia x 105% nếu SoLuongVT nhiều hơn TrongTaiQD, là SoLuongVT x DonGia trong trƣờng hợp ngƣợc lại. • Thuong: là 5% của CuocPhi nếu ThoiGianVT vuot ThoiGianQD, là 0 trong trƣờng hợp ngƣợc lại. 4. Tạo một form tên CuocPhiVanTai có dạng sau: 5. Tạo query tên BangChietTinhCPVT gồm các field SoXe, TenLoTrinh, SoLuongVT, NgayDi, NgayDen, CuocPhi. 6. Tạo một report tên BangChietTinhCPVT theo mẫu sau: (góc phải dƣới của mỗi trang phải có số thứ tự trang ) 7. Tạo query tên Câu 8để lập danh sách các xe có lộ trình vận tải là Hà Nội. 122 Query gồm các field SoXe, MaTrongTai, SoLuongVT, NgayDi, NgayDen. 8. Tạo query tên Cau 9 để lập danh sách các xe có lộ trình vận tải là Nha Trang hoặc có SoLuongVT vƣợt trọng tải qui định. Query gồm các field SoXe, TenLoTrinh, SoLuongVT, TronTaiQD, NgayDi, NgayDen. 9. Tạo query tên Cau 10 để lập danh sách các xe có lộ trình Pleiku đƣợc thƣởng hoặc các xe có CuocPhi từ 30000 đến 50000. Query gồm các field SoXe, TenLoTrinh, CuocPhi, Thuong. BÀI TẬP 4 CSDL: BT4.accdb và quy định các field khóa chính cho các table nhƣ sau : DTDUTHI trong table ChiTietDT, SOBD trong table DanhSach, SOBD trong table DiemThi. 1. Thiết lập quan hệ cho các table theo sơ đồ quan hệ nhƣ sau : ChiTietDT( DTDUTHI, 1 ) DanhSach( DTDUTHI, ∞ ) DanhSach( SOBD, 1 ) DiemThi( SOBD, ∞ ) 2. Tạo Query KET QUA chứa kết quả thi của từng học sinh bao gồm các thông tin : SoBD, HoTen, Phai, Tuoi, Toan, Van, AnhVan, TongDiem, XepLoai, DTDuThi Biết rằng : TongDiem = Toan + Van + AnhVan + DiemUT XepLoai học sinh nhƣ sau : * Giỏi nếu TongDiem>=24 và tất cả các môn >=7 * Khá nếu TongDiem>=21 và tất cả các môn >=6 * Trung Bình nếu TongDiem>=15 và tất cả các môn >=4 * Trƣợt nếu ngƣợc lại 3. Tạo Query GIOI TOAN – VAN – ANH VAN bao gồm các học sinh có ít nhất 1 môn 10 và có TongDiem>=25 bao gồm các thông tin : SoBD, HoTen, Toan, Van, AnhVan, TongDiem, DienGiaiDT 123 Kết quả đƣợc sắp xếp giảm dần theo TongDiem 4. Tạo Query DANH SACH DAU (ĐẬU) gồm các học sinh có XepLoai là Giỏi, Khá hoặc Trung Bình với các field : SoBD, HoTen, Phai, Tuoi, Toan, Van, AnhVan, TongDiem, XepLoai, DTDuThi Lƣu ý : Kết quả đƣợc sắp tăng dần theo DTDuThi, cùng DTDuThi thì sắp giảm dần theo TongDiem 5. Tạo query HOC SINH DAT THU KHOA KY THI bao gồm các học sinh “ĐẬU” có TongDiem lớn nhất với các field : SoBD, HoTen, Phai, Tuoi, Toan, Van, AnhVan, TongDiem, DienGiaiDT 6. Tạo Form dạng Main/Sub có tên XEM KET QUA để xem thông tin và kết quả thi theo từng đối tƣợng nhƣ sau : 7. Tạo Report dạng nhãn GIAY BAO KET QUA THI để báo kết quả thi của học sinh theo mẫu sau : 124 BÀI TẬP 5 Cho CSDL: BT5.accdb và quy định các field khóa chính cho các table: MATRUONG trong table TRUONG, MAHS trong table DANHSACH, MAHS và MON trong table DIEM 1. Thiết lập quan hệ cho các table theo hình sau: TRUONG( MATRUONG, 1) → DANH SACH( MATRUONG, ∞) DANH SACH( MAHS, 1) → DIEM( MAHS, ∞) 2. Tạo Query Toan gồm các field sau: MaHS, Toan. Trong đó, Toan là cột điểm toán, mỗi HS một dòng. 3. Tạo Query Van gồm các field sau: MaHS, Van. Trong đó, Van là cột điểm văn, mỗi HS một dòng. 4. Tạo Form TRUONG VA DSHS để xem thông tin của trƣờng và danh sách học sinh của từng trƣờng, form có dạng sau: 125 Trong đó: (a) TD là tổng điểm của toán và văn. (b) Xếp loại theo tiêu chuẩn sau: Giỏi nếu TD>=16 và không có môn nào dƣới 7, Khá nếu TD>=14 và không có môn nào dƣới 6, TB nếu TD>=10 và không có môn nào dƣới 4, Kém - còn lại. 5. Tạo Report Giay Bao Diem có dạng nhãn cho tất cả các học sinh tƣơng tự bài 4. 6. Tạo Query DSHS_LQD_NTMK_10 gồm các field: MaHS, Ho, Ten, Toan, Van, TD. Kết quả vấn tin là danh sách học sinh thuộc trƣờng Lê qúy Đôn (LQD) và trƣờng Nguyễn Thị Minh Khai (NTMK) nhƣng có ít nhất 1 môn có điểm 10. 7. Tạo Query DSHS_Dau gồm các field: MaHS, Ho, Ten, Toan.Van, TD. Kết quả vấn tin là danh sách học sinh đậu, có tổng điểm từ 9 trở lên và không có môn nào nhỏ hơn 4. BÀI TẬP 6 Cho CSDL: BT6.accdb và quy định các field khóa chính cho các Table: LOP trong LOP, SoBD trong HOCSINH, SoBD trong DIEM. 1. Thiết lập quan hệ cho các Table: LOP(LOP, 1) → HOCSINH(LOP, ∞); HOCSINH(SoBD, 1) → DIEM(SoBD, 1) 2. Tạo Form HOC SINH VA DIEM có dạng sau: 126 Lƣu ý: - Không đƣợc tạo query làm dữ liệu nguồn cho form, mà lấy trực tiếp từ các Table. - Mục đích form dùng xem/nhập các thông tin và điểm thi của từng học sinh) 3. Tạo Form LOP VA DSHS có dạng Main/SubForm để xem thông tin từng lớp và danh sách học sinh của các lớp đó, form có dạng sau: Trong đó: * TD là tổng điểm của 3 môn. * XếpLoại: Giỏi nếu TD>=24, Khá nếu TD>=21, TB nếu TD>=15, Kém - còn lại. 4. Tạo Report PHIEU DIEM là các nhãn, mỗi nhãn là phiếu điểm của một học sinh và yêu cầu trên trang in có ít nhất 2 cột nhãn tƣơng tự bài 4. 5. Tạo Query DSHS_KHEN THUONG gồm có các field sau: SoBD, Ho, Ten, Toan, Van, NN, TD. Kết quả vấn tin là DS học sinh có xếp loại là giỏi nhƣng phải có ít nhất một môn có điểm là 10. 6. Tạo Query DSHS_LUU BAN gồm các field sau: SoBD, Ho, Ten, Toan, Van, NN, TD, Lop. Kết quả vấn tin là DS học sinh có tổng điểm nhỏ hơn 14 hoặc một trong các môn có điểm nhỏ hơn 4. BÀI TẬP 7 Cho CSDL: BT7.accdb và quy định các field khóa chính cho các Table: MaHD trong tbl Hoa don, MaHD và MaSP trong tbl Chi tiet hoa don, MaKH trong tbl Khach hang, MaNV trong tbl Nhan vien, MaSP trong tbl San pham. 127 1. Thiết lập quan hệ cho các Table: tbl Nhan Vien(MaNV,1) → tbl Hoa Don(MaNV,∞) tbl Khach Hang(MaKH,1) → tbl Hoa Don(MaKH, ∞ ) tbl Hoa Don(MaHD,1) → tbl Chi tiet Hoa don(MaHD,∞) tbl San Pham(MaSp,1) → tbl Chi tiet Hoa don(MaSp, ∞ ) 2. Tạo Form HOA DON VA CTHD có dạng Main/SubForm để xem/nhập hoá đơn và chi tiết theo hoá đơn có dạng sau: (ThànhTiền bằng Số lƣợng nhân giá bán) 128 3. Tạo Report GIAY MOI là các nhãn, mỗi nhãn là giấy mời của một khách hàng và yêu cầu trên trang in có ít nhất 2 cột nhãn, có dạng sau: 4. Tạo Query QUA TANG gồm có các field sau: MaHD, MaKH, NgayLapHD, TenSp, Soluong, Giaban, ThanhTien, Giamgia, Quatang. Trong đó: ThànhTiền là Số lƣợng nhân giá bán. Giảmgiá là 10% của ThànhTiền nếu thành tiền của sản phẩm không dƣới 500 và Soluong sản phẩm bán phải từ 35 trở lên. Quà tặng đƣợc tính nhƣ sau: nếu thành tiền ít hơn 1000 thì không đƣợc vé nào, từ 1000 đến <2000 đƣợc 1 vé ca nhạc, từ 2000 đến <3000 đƣợc 2 vé ca nhạc, v.v (ví dụ: nếu thànhtiền = 4000 thì Quàtặng là 4 vé ca nhạc). Sắp xếp theo MaHD theo thứ tự tăng dần. 5. Tạo Query DSHD RUOU_97 gồm các field sau: MaHD, NgayLapHD, SOLUONG, THANHTIEN. Kết qủa vấn tin là DSHĐ đƣợc lập trong năm 97 có ghi bán sản phẩm “Rƣợu”. 6. Tạo Query DSHD THANG 1_2_PNAM gồm các field sau: MaHD, NgaylapHD, TenCty, ThanhPho. Kết quả vấn tin là danh sách hóa đơn đƣợc lập cho các khách hàng ở “Tp HCM” và “Cần Thơ” trong các tháng 1 và 2. Sắp xếp theo ngày lập hđ với thƣ tự tăng dần. BÀI TẬP 8 Cho CSDL: BT8.accdb và quy định các field khóa chính cho các Table: MaPBtrong PHONG BAN, MaNVtrong NHAN VIEN, MaNVtrong CHI TIET. 129 1. Thiết lập quan hệ cho các Table: PHONG BAN(MaPB, 1) NHAN VIEN(MaPB, ) NHAN VIEN(MaNV, 1) CHI TIET(MaNV, 1 ) 2. Tạo Form PHONG BAN VA DSNVcó dạng Main/SubForm để xem thông tin từng phòng ban và danh sách nhân viên của các phòng ban đó, form có dạng sau: (Lƣơng bằng HSLƣơng nhân 250000) 3. Tạo Report PHIEU LUONG là các nhãn, mỗi nhãn là phiếu lƣơng của một nhân viên và yêu cầu trên trang in có ít nhất 2 cột nhãn, report có dạng sau: 130 4. Tạo Query DSNV_TROCAP_PHUCAPgồm có các field sau: MaNV, Ho, Ten, ChucVu, ThamNien, Luong, TroCap, PhuCapTN. Trong đó: ThâmNiên là số năm làm việc của nhân niên trong công ty, đƣợc tính dựa và ngày bắt đầu làm việc (NgayBD). Lƣơng là hệ số lƣơng (HSLuong) nhân 250000. TrợCấp là 150000 cho các nhân viên có ngày sinh trƣớc ngày 30/4/75. PhụCấpTN (phụ cấp thâm niên): chỉ đƣợc tính cho các nhân viên có thâm niên không dƣới 5 năm, và cứ mỗi năm thâm niên sau 5 năm đƣợc tính 50000 (ví dụ: ThamNien=5 có PhuCapTN=50000, 6 năm – 100000, 7 năm – 150000, 8 năm – 200000 v.v) 5. Tạo Query DSNV_70_TKgồm các field sau: MaNV, Ho, Ten, NTNS, Luong. Kết quả vấn tin là DS nhân viên sinh vào năm 1970 và làm việc trong phòng có mã là TK. 6. Tạo Query DSNV_TL_TK_6gồm các field sau: MaNV, Ho, Ten, ChucVu, Luong. Kết quả vấn tin là DSNV có chức vụ là thƣ ký (TK) và trợ lý (TL) và có thâm niên từ 6 năm trở lên.
File đính kèm:
- giao_trinh_nhap_mon_he_quan_tri_co_so_du_lieu_dang_thi_thu_h.pdf