Giáo trình Nhập môn hệ quản trị cơ sở dữ liệu: Phần 1 cung cấp cho người học các kiến thức: Tổng quan về microsoft access, bảng và mối quan hệ, truy vấn, mẫu biểu, macro và menu. Mời các bạn cùng tham khảo!
TRƢỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TRƢỜNG ĐẠICÔNG HỌC NGHỆ GIAO THÔNG VẬN TẢI KHOA THÔNG TIN KHOA CÔNG NGHỆ THÔNG TIN TS ĐẶNG THỊ THU HIỀN Th.S ĐỖ THANH THỦY Th.S NGUYỄN KIM SAO ĐẶNG THỊ THU HIỀN ĐỖ THANH THỦY GIÁO TRÌNH NHẬP MƠN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU BÀI GIẢNG NHẬP MÔN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ACCESS Hà nội, 01/2015 MỤC LỤC LỜI NÓI ĐẦU CHƢƠNG 1: TỔNG QUAN VỀ MICROSOFT ACCESS Giới thiệu Microsoft Office Làm việc với Microsoft Access 2.1 Khởi động Access 2.2 Tạo sở liệu 2.3 Làm việc với sở liệu tồn 10 CHƢƠNG 2: BẢNG VÀ MỐI QUAN HỆ 13 Cấu trúc bảng 13 Thiết kế bảng 13 2.1 Tạo bảng 13 2.2 Đặt khố 17 2.3 Thuộc tính trƣờng 18 2.4 Thuộc tính bảng 19 2.5 Cập nhật liệu vào bảng 20 2.6 Xoá đổi tên bảng 20 Thiết lập quan hệ bảng 21 3.1 Mối quan hệ 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 toàn vẹn tham chiếu 24 BÀI TẬP CHƢƠNG 26 CHƢƠNG 3: TRUY VẤN 29 Tổng quan truy vấn 29 Thao tác truy vấn 30 2.1 Các bƣớc tạo truy vấn 30 2.2 Đặt điều kiện truy vấn 34 2.3 Tạo trƣờng tính toán truy vấn 35 2.4 Thuộc tính trƣờng truy vấn 36 2.5 Các phép toán số hàm Access 37 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 59 CHƢƠNG 4: MẪU BIỂU 63 Tạo mẫu biểu Autoform Wizard 63 1.1 Tạo mẫu biểu AutoForm 63 1.2 Tạo mẫu biểu Form Wizard 64 Thiết kế Form chế độ Design 66 2.1 Các thành phần Form 66 2.2 Các bƣớc thiết kế Form 68 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 91 CHƢƠNG 5: BÁO BIỂU 93 Tạo báo biểu Autoreport 93 Tạo báo biểu dùng Report Wizard 94 Tạo báo biểu dùng Design View 98 Tạo nhãn dùng Label Wizard 102 BÀI TẬP CHƢƠNG 105 CHƢƠNG 6: MACRO VÀ MENU 107 Macro 107 1.1 Tạo 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 kiện Form/Report 109 1.4 Macro AutoExec 111 Menu Bar 112 BÀI TẬP CHƢƠNG 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 Giới thiệu lập trình Visual Basic Application 131 Module 132 2.1 Module chuẩn (Standard Module) 133 2.2 Module lớp (Class Module) 148 2.3 Module form/report (Form/report Module) 158 Kiểu liệu, biến 168 3.1 Kiểu liệu 168 3.2 Hằng 170 3.3 Biến 171 Các cấu trúc điều khiển 175 4.1 Cấu trúc 175 4.2 Cấu trúc rẽ nhánh 176 4.3 Cấu trúc lặp 179 Hàm thủ tục 182 5.1 Hàm 182 5.2 Thủ tục 184 Các mô hình truy cập sở 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) 214 BÀI TẬP CHƢƠNG 241 TÀI LIỆU THAM KHẢO 242 LỜI NÓI ĐẦU Trong phát triển kinh tế tri thức nay, khơng thể phủ nhận vai trò công nghệ thông tin Đặc biệt lĩnh vực sở liệu đƣợc nhiều ngƣời quan tâm Rất nhiều hệ quản trị sở liệu đƣợc ứng dụng nhƣ Foxpro, Access, SQL Server, Informix, Oracle,… Nhƣng đơn giản thân thiện hệ quản trị CSDL Access, khơng có công cụ hỗ trợ mạnh nhƣ Informix hay Oracle, nhƣng hỗ trợ tƣơng đối tốt mặt quản lý liệu vừa nhỏ, đồng thời cung cấp cơng cụ cho phép lập trình đƣợc Chính mà nhiều ta gọi ngơn ngữ Access Microsoft Access cung cấp hệ thống chƣơng trình ứng dụng mạnh, giúp ngƣời dùng mau chóng dễ dàng tạo lập trình ứng dụng từ nguồn liệu thông qua Query, Form, Report kết hợp với việc sử dụng số lệnh Access Basic hay gọi lập trình VBA Microsoft Access trải qua nhiều phiên bản, từ phiên Microsoft Access phát hành vào năm 1992 đến qua nhiều lần phát hành với 130 triệu Vì nói Access chƣơng trình sở liệu phổ biến giới Hiện số phiên đƣợc sử dụng rộng rãi Microsoft Access 2007, Microsoft Access 2010, Microsoft Access 2013 Trong tài liệu dùng phiên Access 2013 để minh hoạ Xuất phát từ thực tế nhu cầu học tập sinh viên chuyên nghành CNTT nói chung sinh viên trƣờng ĐH Giao Thơng Vận tải nói riêng Chúng tơi viết giáo trình bám sát theo đề cƣơng môn học trƣờng, để phục vụ cho sinh viên năm thứ theo học môn “Nhập môn hệ quản trị sở liệu” Giáo trình đƣợc xây dựng gồm chƣơng: Chƣơng 1: Giới thiệu khái niệm Microsoft Access Chƣơng 2: Trình bày cách tạo bảng cách sử dụng bảng để tổ chức liệu cho tốn Chƣơng 3: Trình bày cách tạo sử dụng truy vấn để tổng hợp, xếp tìm kiếm liệu Chƣơng 4: Trình bày cách thiết kế sử dụng mẫu biểu để tổ chức nhập liệu cho bảng, truy vấn bảng có quan hệ với Chƣơng 5: Trình bày cách sử dụng báo biểu để tổ chức in liệu bảng, truy vấn Chƣơng 6: Giới thiệu Macro Menu dùng thiết kế giao diện chƣơng trình Chƣơng 7: Trình bày lập trình Access Trong trình biên soạn giáo trình này, chúng tơi cố gắng nhƣng khơng tránh khỏi sai sót Chúng tơi mong nhận đƣợc ý kiến đóng góp độc giả để sách hoàn thiện Hà nội, ngày 12 tháng 01 năm 2015 Nhóm tác giả TS Đặng Thị Thu Hiền Th.S Đỗ Thanh Thủy Th.S Nguyễn Kim Sao CHƢƠNG 1: TỔNG QUAN VỀ MICROSOFT ACCESS Giới thiệu Microsoft Office Microsoft Access thành phần Microsoft Office, hệ quản trị sở liệu mơi trƣờng Windows, có sẵn công cụ hữu hiệu tiện lợi để dễ dàng xây dựng chƣơng trình cho số toán thƣờng gặp quản lý, thống kê, kế toán… Microsoft Access phƣơng tiện để trao đổi thông tin mạng Internet Intranet, giúp ngƣời dùng nhanh chóng tạo sử dụng chƣơng trình ứng dụng mạng Access dễ dàng liên kết thơng tin liên quan mà làm việc với nhiều nguồn liệu khác: dBASE, Paradox, SQL nhiều loại máy tính: máy tính văn phòng (PC), máy chủ (Server) máy mini máy lớn (mainframe) Access đảm nhận hai vai trò: phần mềm máy khách (client) máy chủ dễ dàng truy cập chƣơng trình ứng dụng khác nhƣ Microsoft Word, Exel, PowerPoint Mỗi tệp chƣơng trình thƣờng có có quy định, ví dụ tệp Microsoft Word có là.doc, tệp chƣơng trình Pascal có pas … Một tệp chƣơng trình Access 2003 tạo có là.MDB, Access 2013 tạo có là.ACCDB Một hệ chƣơng trình Access tạo gọi Database (cơ sở liệu) Trong ngôn ngữ nhƣ C, Pascal, Foxpro, hệ chƣơng trình gồm tệp chƣơng trình tệp liệu đƣợc tổ chức cách riêng biệt Nhƣng Access 2013 tồn chƣơng trình liệu đƣợc chứa tệp có ACCDB Nhƣ thuật ngữ hệ chƣơng trình hay sở liệu đƣợc hiểu tổ hợp bao gồm chƣơng trình liệu Để ngắn gọn nhiều ta gọi chƣơng trình thay cho thuật ngữ hệ chƣơng trình Nhƣ từ nói đến chƣơng trình hay hệ chƣơng trình hay sở liệu có nghĩa hệ phần mềm gồm chƣơng trình liệu Access tạo Làm việc với Microsoft Access 2.1 Khởi động Access Để khởi động (chạy) Microsoft Access bạn phải chắn Microsoft Office (trong có thành phần Microsoft Access) đƣợc cài đặt cách máy tính Có nhiều cách đề khởi động Microsoft Access phụ thuộc vào hệ điều hành máy tính bạn Cách 1: Chọn Start, Program, Microsoft Access Cách 2: Chạy từ icon Desktop TaskBar Cách 3: Trong trƣờng hợp không tìm thấy shortcut chƣơng trình Desktop menu start ta chạy trực tiếp tập tin Msaccess thƣ mục cài đặt Office thông thƣờng “C:\Program Files\Microsoft Office\Office” Để thuận tiện cho trình trình bày, dƣới sử dụng Access 2013 cho tất giao diện hƣớng dẫn thực hành Hình 1.1 giao diện Access, gồm: - Thanh tiêu đề Các công cụ lệnh Các đối tƣợng sở liệu hành Thanh trạng thái Hình 1.1: Cửa sổ Microsoft Access 2.2 Tạo sở liệu Trong Access 2013 tích hợp tất đối tƣợng tạo thành file có là.accdb Để tạo sở liệu ta làm nhƣ sau: Từ cửa sổ Microsoft Access: chọn menu File/ New/ Blank destop database Hình 1.2: Tạo CSDL Bấm nút Browse để chọn thƣ mục chứa tệp sở liệu cần tạo, hộp File Name, đặt tên sở liệu Sau bấm nút Create Lúc này, CSDL đƣợc tạo, ta làm việc với đối tƣợng Access Hình 1.3: Cửa sổ Database Cửa sổ hình 1.3 đƣợc gọi cửa sổ Database Đây cửa sổ quan trọng Access Cửa sổ bao gồm: Hệ thống khối lệnh ribbon với thanh: Home, Insert,… Tiêu đề Database: QLHangHoa tên sở liệu Các đối tƣợng sở liệu Access gồm (các mục): BÀI TẬP TỔNG HỢP BÀI TẬP Cơ sở liệu đƣợc lƣu file BT1.accdb nhƣ sau Quy định field khóa cho table nhƣ sau : LOP table LOP, MAHS table DSHS, MAHS table DIEM Thiết lập quan hệ cho table theo sơ đồ quan hệ nhƣ sau: LOP(LOP, 1) DSHS(LOP,∞) DSHS(MAHS, 1) DIEM(MAHS, 1) Tạo Query KET QUA THIchứa kết thi học sinh bao gồm thông tin: LOP, MAHS, HOTEN, NU, NAMSINH, TOAN, LY, HOA, VAN, DTN, DTB, XEPLOAI Biết rằng: DTN điểm thấp điểm TOAN, LY, HOA, VAN DTB = (TOAN*3+LY+HOA+VAN*2)/7 (lấy số lẻ) XEPLOAI học sinh nhƣ sau : * Lên Lớpnếu DTB>=5 DTN >=4 * Lƣu Ban ngƣợc lại Tạo Form dạng Main/Sub có tên LOP để xem thông tin kết thi lớp nhƣ sau: 116 Tạo Query HOC SINH XUAT SAC bao gồm học sinh có DTB>=8.5 DTN>=8 với field: LOP, MAHS, HOTEN, NAMSINH, NU, TOAN, LY, HOA, VAN, DTN, DTB Tạo Query HOC SINH GIOI TOAN bao gồm học sinh Lên Lớp có điểm TOAN lớn điểm LY, điểm HOA điểm VAN với field : LOP, MAHS, HOTEN, NAMSINH, NU, TOAN, LY, HOA, VAN, DTB Tạo query HOC SINH DAT THU KHOA KY THI bao gồm học sinh Lên Lớp có DTB lớn với field : LOP, MAHS, HOTEN, NAMSINH, NU, TOAN, LY, HOA, VAN, DTB Hãy tạo table gồm thông tin sau: SOMAY (Text, 3) HOTEN (Text, 30) NGAYSINH (Date/Time) NOISINH (Text, 20) - Qui định field SOMAY làm khóa - Lƣu table với tên SINH VIEN - Nhập liệu thông tin bạn vào field 117 Tạo Report GIAY BAO DIEM có dạng nhãn để báo kết thi học sinh theo mẫu sau: BÀI TẬP File Cơ sở liệu BT2.accdb nhƣ sau: Qui định field khóa cho Table: MaDKtrong tDangKy, LoaiKHtrong KhachHang, LoaiPhong tLoaiPhong, MaDK tChiTietKH Thiết lập quan hệ cho table nhƣ sau : tLoaiPhong( LoaiPhong, ) tDangKy( LoaiPhong,∞) tDangKy( MaDK, ) tChiTietDK( MaDk, ) tKhachHang( LoaiKH, ) tChiTietDK( LoaiKH,∞) Tạo Query qChiTietDangKygồm field sau : MaDK, LoaiKH, TenKH,NgaySinh, Phai, DiaChi, DienThoai, SoPhong, LoaiPhong, NgayVao, SoNgayO Trong Số Ngày = Ngày Ra – Ngày Vao Tạo Query qKhachHang99 gồm field nhƣ qChiTietDangKy nhƣng gồm khách hàng th phòng năm 1999 (tính theo Ngày Vào) Tạo Query qKhach-DienThoai gồm field nhƣ qChiTietDangKy nhƣng danh sách khách vãng lai mà khách sạn số điện thoại liên lạc 118 Tạo Query qKhachNu-Duoi30 gồm field nhƣ qChiTietDangKy nhƣng khách hàng Nữ phòng loại A dƣới 30 tuổi (tuổi < 30 ) Tạo Query qTinhTiengồm field MaDK, SoPhong, LoaiPhong, LoaiKH, TenKH, NgayVao, NgayRa, SoNgayO,DonGia, ThanhTien, GiamGiaA, GiamGiaB, ThucThu Trong : (a) Số Ngày Ở= Ngày Ra – Ngày Vào (b) ThanhTien : Tính theo yêu cầu sau : Nếu Số Ngày =7 * Khá TongDiem>=21 tất mơn >=6 * Trung Bình TongDiem>=15 tất môn >=4 * Trƣợt ngƣợc lại Tạo Query GIOI TOAN – VAN – ANH VAN bao gồm học sinh có mơn 10 có TongDiem>=25 bao gồm thông tin : SoBD, HoTen, Toan, Van, AnhVan, TongDiem, DienGiaiDT 122 Kết đƣợc xếp giảm dần theo TongDiem Tạo Query DANH SACH DAU (ĐẬU) gồm học sinh có XepLoai Giỏi, Khá Trung Bình với field : SoBD, HoTen, Phai, Tuoi, Toan, Van, AnhVan, TongDiem, XepLoai, DTDuThi Lƣu ý : Kết đƣợc tăng dần theo DTDuThi, DTDuThi giảm dần theo TongDiem Tạo query HOC SINH DAT THU KHOA KY THI bao gồm học sinh “ĐẬU” có TongDiem lớn với field : SoBD, HoTen, Phai, Tuoi, Toan, Van, AnhVan, TongDiem, DienGiaiDT Tạo Form dạng Main/Sub có tên XEM KET QUA để xem thơng tin kết thi theo đối tƣợng nhƣ sau : Tạo Report dạng nhãn GIAY BAO KET QUA THI để báo kết thi học sinh theo mẫu sau : 123 BÀI TẬP Cho CSDL: BT5.accdb quy định field khóa cho table: MATRUONG table TRUONG, MAHS table DANHSACH, MAHS MON table DIEM Thiết lập quan hệ cho table theo hình sau: TRUONG( MATRUONG, 1) → DANH SACH( MATRUONG, ∞) DANH SACH( MAHS, 1) → DIEM( MAHS, ∞) Tạo Query Toan gồm field sau: MaHS, Toan Trong đó, Toan cột điểm tốn, HS dòng Tạo Query Van gồm field sau: MaHS, Van Trong đó, Van cột điểm văn, HS dòng Tạo Form TRUONG VA DSHS để xem thông tin trƣờng danh sách học sinh trƣờng, form có dạng sau: 124 Trong đó: (a) TD tổng điểm toán văn (b) Xếp loại theo tiêu chuẩn sau: Giỏi TD>=16 mơn dƣới 7, Khá TD>=14 khơng có mơn dƣới 6, TB TD>=10 khơng có mơn dƣới 4, Kém - lại Tạo Report Giay Bao Diem có dạng nhãn cho tất học sinh tƣơng tự Tạo Query DSHS_LQD_NTMK_10 gồm field: MaHS, Ho, Ten, Toan, Van, TD Kết vấn tin danh sách học sinh thuộc trƣờng Lê qúy Đôn (LQD) trƣờng Nguyễn Thị Minh Khai (NTMK) nhƣng có mơn có điểm 10 Tạo Query DSHS_Dau gồm field: MaHS, Ho, Ten, Toan.Van, TD Kết vấn tin danh sách học sinh đậu, có tổng điểm từ trở lên khơng có mơn nhỏ BÀI TẬP Cho CSDL: BT6.accdb quy định field khóa cho Table: LOP LOP, SoBD HOCSINH, SoBD DIEM Thiết lập quan hệ cho Table: LOP(LOP, 1) → HOCSINH(LOP, ∞); HOCSINH(SoBD, 1) → DIEM(SoBD, 1) Tạo Form HOC SINH VA DIEM có dạng sau: 125 Lƣu ý: - Không đƣợc tạo query làm liệu nguồn cho form, mà lấy trực tiếp từ Table - Mục đích form dùng xem/nhập thông tin điểm thi học sinh) Tạo Form LOP VA DSHS có dạng Main/SubForm để xem thông tin lớp danh sách học sinh lớp đó, form có dạng sau: Trong đó: * TD tổng điểm môn * XếpLoại: Giỏi TD>=24, Khá TD>=21, TB TD>=15, Kém - lại Tạo Report PHIEU DIEM nhãn, nhãn phiếu điểm học sinh u cầu trang in có cột nhãn tƣơng tự Tạo Query DSHS_KHEN THUONG gồm có field sau: SoBD, Ho, Ten, Toan, Van, NN, TD Kết vấn tin DS học sinh có xếp loại giỏi nhƣng phải có mơn có điểm 10 Tạo Query DSHS_LUU BAN gồm field sau: SoBD, Ho, Ten, Toan, Van, NN, TD, Lop Kết vấn tin DS học sinh có tổng điểm nhỏ 14 mơn có điểm nhỏ BÀI TẬP Cho CSDL: BT7.accdb quy định field khóa cho Table: MaHD tbl Hoa don, MaHD MaSP tbl Chi tiet hoa don, MaKH tbl Khach hang, MaNV tbl Nhan vien, MaSP tbl San pham 126 Thiết lập quan hệ cho 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, ∞ ) Tạo Form HOA DON VA CTHD có dạng Main/SubForm để xem/nhập hố đơn chi tiết theo hố đơn có dạng sau: (ThànhTiền Số lƣợng nhân giá bán) 127 Tạo Report GIAY MOI nhãn, nhãn giấy mời khách hàng yêu cầu trang in có cột nhãn, có dạng sau: Tạo Query QUA TANG gồm có field sau: MaHD, MaKH, NgayLapHD, TenSp, Soluong, Giaban, ThanhTien, Giamgia, Quatang Trong đó: ThànhTiền Số lƣợng nhân giá bán Giảmgiá 10% ThànhTiền thành tiền sản phẩm không dƣới 500 Soluong sản phẩm bán phải từ 35 trở lên Quà tặng đƣợc tính nhƣ sau: thành tiền 1000 khơng đƣợc vé nào, từ 1000 đến