Hệ quản trị cơ sở dữ liệu Microsoft Access 2003

Tài liệu Hệ quản trị cơ sở dữ liệu Microsoft Access 2003: GIỚI THIỆU Microsoft Access là một trong bộ phần mềm ứng dụng văn phòng của Microsoft Office (Microsoft Word, Microsoft Excel, Microsoft PowerPoint, Microsoft Access). Là phần mềm quản trị cơ sở dữ liệu quan hệ dễ dùng nhất, Microsoft Access đã trở thành một trong những hệ quản trị cơ sở dữ liệu không thể thiếu đối với ai quan tâm đến cơ sở dữ liệu quan hệ. Chương 1  Giới thiệu HQT CSDL Access ......................................................... 2  Chương 2  Tạo lập Cơ sở dữ liệu ....................................................................... 6  Chương 3  Thiết kế truy vấn ............................................................................ 15  Chương 4  Thiết kế biểu mẫu, báo cáo ............................................................ 36  Chương 5  BÀI TẬP CSDL QUẢN LÝ SINH VIÊN ..................................... 52  Tài liệu tham khảo từ: Do các giảng viên Khoa CNTT, ĐHSP Hà Nội biên soạn. Hệ quản trị CSDL Microsoft Access 2003 T...

pdf60 trang | Chia sẻ: Khủng Long | Lượt xem: 1935 | Lượt tải: 1download
Bạn đang xem trước 20 trang mẫu tài liệu Hệ quản trị cơ sở dữ liệu Microsoft Access 2003, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
GIỚI THIỆU Microsoft Access là một trong bộ phần mềm ứng dụng văn phòng của Microsoft Office (Microsoft Word, Microsoft Excel, Microsoft PowerPoint, Microsoft Access). Là phần mềm quản trị cơ sở dữ liệu quan hệ dễ dùng nhất, Microsoft Access đã trở thành một trong những hệ quản trị cơ sở dữ liệu không thể thiếu đối với ai quan tâm đến cơ sở dữ liệu quan hệ. Chương 1  Giới thiệu HQT CSDL Access ......................................................... 2  Chương 2  Tạo lập Cơ sở dữ liệu ....................................................................... 6  Chương 3  Thiết kế truy vấn ............................................................................ 15  Chương 4  Thiết kế biểu mẫu, báo cáo ............................................................ 36  Chương 5  BÀI TẬP CSDL QUẢN LÝ SINH VIÊN ..................................... 52  Tài liệu tham khảo từ: Do các giảng viên Khoa CNTT, ĐHSP Hà Nội biên soạn. Hệ quản trị CSDL Microsoft Access 2003 Trang 2 Chương 1 Giới thiệu HQT CSDL Access ™ Mục đích: - Giúp sinh viên nắm được mô hình CSDL quan hệ. - Giúp sinh viên hiểu được khái niệm HQT CSDL quan hệ và các chức năng của một HQT CSDL. - Sinh viên biết được khả năng ứng dụng của Microsoft Access đối với các bài toán quản lý vừa và nhỏ. - Giúp cho sinh viên có cái nhìn tổng quan về môi trường làm việc của Microsoft Access. ™ Nội dung - Một số khái niệm cơ bản - HQT CSDL Microsoft Access - Môi trường làm việc của Microsoft Access 1. Một số khái niệm cơ bản 1.1 Khái niệm HQT CSDL quan hệ - Cơ sở dữ liệu (Database): là một tập hợp các dữ liệu có liên quan với nhau chứa thông tin về một tổ chức nào đó (như một trường đại học, một ngân hàng, một công ty, một nhà máy, ...), được lưu trữ trên các thiết bị nhớ thứ cấp (như băng từ, đĩa từ, ) để đáp ứng nhu cầu khai thác thông tin của nhiều người sử dụng với nhiều mục đích khác nhau. - Mô hình CSDL quan hệ: Theo mô hình này, dữ liệu được thể hiện trong các bảng. Mỗi bảng gồm các dòng và cột, mỗi cột có một tên duy nhất. Mỗi dòng cho thông tin về một đối tượng cụ thể trong quản lý (mỗi dòng thường được gọi là một bản ghi hay một bộ). - HQTCSDL quan hệ: là phần mềm để tạo lập CSDL theo mô hình CSDL quan hệ và thao tác trên CSDL đó. 1.2 Các tính năng của HQT CSDL quan hệ - Khả năng lưu trữ dữ liệu lâu dài. - Truy nhập số lượng lớn thông tin một cách hiệu quả. - Được xây dựng trên mô hình dữ liệu (quan hệ). - Ngôn ngữ cấp cao để định nghĩa và thao tác dữ liệu. - Đồng bộ các truy nhập cạnh tranh. - Kiểm tra tính đúng đắn của dữ liệu và thẩm quyền truy nhập. - Phục hồi. TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 3 2. HQT CSDL Access 2.1 Khả năng và ứng dụng của Access - Access là HQTCSDL quan hệ, phù hợp với các bài toán quản lý vừa và nhỏ. - Access cung cấp hệ thống công cụ phát triển (Development tools) khá mạnh giúp các nhà phát triển phần mềm đơn giản trong việc xây dựng trọn gói các dự án phần mềm quản lý qui mô vừa và nhỏ. - Access được dùng để: + Xây dựng hệ cơ sở dữ liệu (phần cơ sở dữ liệu, còn phần phát triển phần mềm có thể sử dụng các công cụ khác để làm như: Visual Basic, Visual C, Delphi, .Net, ). + Xây dựng chọn gói các phần mềm quản lý quy mô vừa và nhỏ. 2.2 Chế độ làm việc của Access - Chế độ sử dụng công cụ có sẵn: Giúp cho người sử dụng không chuyên có thể xây dựng chương trình quản lý. - Chế độ lập trình: Dùng ngôn ngữ VBA (Visual Basic for Application), người sử dụng chuyên nghiệp có thể phát triển ứng dụng, kiểm soát chặt chẽ dữ liệu, phân quyền truy nhập. 2.3 Ngôn ngữ định nghĩa và thao tác dữ liệu - Ngôn ngữ QBE (Query By Example): cho phép bạn xây dựng các truy vấn dữ liệu bằng cửa sổ thiết kế và bằng các công cụ có sẵn. - Ngôn ngữ SQL (Structure Query Language): cho phép bạn truy vấn dữ liệu bằng các câu lệnh có cấu trúc. 3. Môi trường làm việc của Microsoft Access 3.1 Khởi động Access - Trên màn hình desktop của Window, kích chuột vào nút Start chọn Progams/Microsoft Office/Micorosoft Office Access. Hệ quản trị CSDL Microsoft Access 2003 Trang 4 3.2 Hệ thống menu chính của Access - File: Các thao tác cơ bản trên tệp. - Edit: Các thao tác soạn thảo. - Create Shortcut: tạo lối tắt trên màn hình Windows. - View: Các chế độ quan sát đối tượng. - Insert: Thêm một thành phần vào đối tượng đang thiết kế. - Tools: Các công cụ, tiện ích CSDL. Relationship: Xem mối quan hệ giữa các bảng trong CSDL. Database utilities: Các tiện ích cơ sở dữ liệu như: + Chuyển đổi dữ liệu giữa các phiên bản (Convert). + Nén tệp CSDL (Compact). + Tạo menu nhờ công cụ sẵn có (Switch Board). + Chia nhỏ tệp CSDL (Split). + Tạo tệp MDE, để che giấu các thiết kế. + Bảo mật quyền truy nhập (Security). - Windows: Cách sắp đặt các cửa sổ trên màn hình. - Help: Trợ giúp TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 5 3.3 Các thành phần của CSDL Access - Bảng (tables): Nơi trực tiếp chứa dữ liệu. Access có thể gộp tới 32 768 đối tượng (tổ hợp các bảng, biểu mẫu, báo biểu, ), và có thể mở cùng một lúc tới 1 024 bảng nếu như có đủ sẵn tài nguyên. Có thể nhập khẩu, kết nối các bảng từ các ứng dụng cơ sở dữ liệu khác như Paradox, Excel, FoxPro, dBase, - Truy vấn (Queries): Tạo nguồn dữ liệu cho các giao diện nhập liệu, các báo cáo của người sử dụng trực tuyến, - Biểu mẫu (Form): Hiển thị dữ liệu có trong các bảng hay truy vấn và cho phép bổ sung các dữ liệu mới, đồng thời hiệu chỉnh hay xóa dữ liệu hiện có. Có thể kết hợp ảnh và đồ thị vào biểu mẫu, thậm chí cả âm thanh. - Báo cáo (Report): In dữ liệu từ các bảng hoặc các bộ hỏi theo hầu như bất kỳ dạng thức nào bạn muốn. Access cho phép bổ sung đồ họa vào báo cáo. - Macro: là một hình thức lập trình đơn giản. Nó được dùng để gắn kết các đối tượng chính trong chương trình như liên hệ giữa các form, tạo menu. - Module: Là chương trình viết bằng VBA. Hệ quản trị CSDL Microsoft Access 2003 Trang 6 Chương 2 Tạo lập Cơ sở dữ liệu ™ Mục đích - Giúp sinh viên biết cách mở một CSDL đã tồn tại. - Giúp sinh viên biết cách tạo một CSDL mới hoàn toàn, cách xây dựng các bảng cho CSDL này. ™ Nội dung - Tạo CSDL mới - Mở CSDL đã tồn tại - Tạo bảng - Thiết kế các thuộc tính của bảng - Tạo quan hệ giữa các bảng 1. Tạo CSDL mới 1.1 Tạo CSDL trống - Chọn File/New trên thanh menu chính sẽ xuất hiện cửa sổ new file bên phải của sổ làm việc của Access. - Trong cửa sổ new file chọn Blank Database xuất hiện cửa sổ File new database - Đặt tên CSDL cần tạo vào mục File name, chọn vị trí đặt tệp CSDL trong mục Save in, sau đó kích chuột vào nút Create để tạo CSDL. Access tạo ra một tệp CSDL có tên trùng với tên CSDL và có đuôi là .mdb. - Khi tạo mới một CSDL theo cách này, của sổ làm việc của CSDL sẽ mở ra và người sử dụng (NSD) phải tự thiết kế tất cả các bảng dữ liệu, các đối tượng khác cho CSDL. 1.2 Tạo CSDL theo mẫu có sẵn - Chọn File/new - Trong cửa sổ New file chọn mục On my computer, xuất hiện cửa sổ Template. - Trong cửa sổ Template chọn trang Databases, chọn một CSDL mẫu có sẵn và kích nút OK, cửa sổ File new database xuất hiện để bạn đặt tên cho CSDL. Chương trình Database Wizard sẽ được khởi động để sinh ra cơ sở dữ liệu mẫu mà bạn đã chọn. Tạo mới một CSDL theo cách này chúng ta được một CSDL mới đã có sẵn một số bảng, form, report, ... 2. Mở cơ sở dữ liệu Để mở một CSDL đã tồn tại chúng ta chọn File/ Open, cửa sổ Open sẽ xuất hiện. Trong cửa sổ này bạn phải chọn tệp CSDL có đuôi .mdb, rồi chọn Open. - Hoặc, Chọn biểu tượng trên thanh công cụ (Toolbar). - Kết quả của thao tác trên là mở ra cửa sổ làm việc của CSDL. TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 7 - 3. Tạo bảng 3.1 Các kiểu dữ liệu - Text: Xâu ký tự có độ dài £ 255. - Memo: Văn bản độ dài đến khoảng 65000 ký tự. - Number: Số thực, số nguyên. - Date/Time: Ngày giờ. - Curency: Tiền tệ. - Autonumber: Số nguyên, tự động tăng thêm khi có bản ghi mới. - Yes/No: Dữ liệu logic, giá trị thực 0, 1. - OLE Object: ảnh hoặc văn bản lớn. - Hyperlink: Địa chỉ trang web. 3.2 Tạo cấu trúc bảng Bước 1: Mở cửa sổ thiết kế cấu trúc bảng Cách 1: Từ cửa sổ Database, trong mục Object chọn Tables -> Create table in Design view -> Design Cách 2: Từ cửa sổ Database, trong mục Object chọn Tables -> , cửa sổ New Table như sau xuất hiện. Trong cửa sổ này ta chọn Design View -> OK. Màn hình tạo bảng Hệ quản trị CSDL Microsoft Access 2003 Trang 8 Kết thúc bước 1 ta có cửa sổ tạo cấu trúc bảng như sau: Bước 2: Thiết kế các trường (cột) của bảng Từ cửa sổ Table ở trên, chúng ta lần lượt thiết kế từng trường dữ liệu như sau: - Nhập tên trường trong mục Field Name. - Chọn kiểu dữ liệu của trường trong mục Data Type - Ghi mô tả của trường trong mục Description - Nhập các thuộc tính (ràng buộc) của trường này trong các phần General, phần Lookup Bước 3: Ghi lại cấu trúc bảng vừa tạo - Chọn biểu tượng trên thanh công cụ. Cửa sổ Save As xuất hiện TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 9 - Nhập tên bảng trong phần Table Name -> OK. 4. Ràng buộc dữ liệu khi thiết kế bảng Để xác định thuộc tính của trường có thể dùng ngay hộp thoại tạo bảng. - Field size (độ rộng): Độ rộng của trường số hoặc xâu ký tự. - Format (khuôn dạng): Khuông dạng của dữ liệu khi hiển thị, phụ thuộc vào kiểu dữ liệu: số, ngày, giờ, logic, khuôn dạng đặc biệt. - Input Mask (Mặt nạ nhập): Dạng của dữ liệu nhập. Đó là một xâu ký tự, chứa những ký tự sau: Ký tự Ý nghĩa 0 Các chữ số. Bắt buộc nhập 9 Các chữ số hoặc dấu cách. Không bắt buộc nhập. # Các chữ số, dấu + - hoặc dấu cách. Không bắt buộc nhập. L Chữ cái . Bắt buộc nhập. ? Chữ cái. Không bắt buộc nhập. A Chữ cái hoặc chữ số. Bắt buộc nhập. a Chữ cái hoặc chữ số. Không bắt buộc nhập. & Ký tự bất kỳ hoặc khoảng trống. Bắt buộc nhập. . , : - / Các dấu phân cách cho kiểu dữ liêu số và ngày giờ < Đổi các ký tự bên phải ký tự này thành chữ thường. > Đổi các ký tự bên trái ký tự này thành chữ hoa. Ký tự khác Hiện nguyên dạng ký tự đó. Không được lưu trong bảng. Tương tự thuộc tính format. Dùng cách này người sử dụng dễ hiểu hơn. Password Che giấu thông tin khi nhập. Nếu không quen sử dụng, kích hoạt nút để gọi Wizard. - Default Value: Giá trị ngầm định. Thường là một biểu thức, có xuất hiện hằng, các hàm mẫu và các phép toán. - Required: (Yes/No, ngầm định là No) không cho phép đưa giá trị Null vào trường. - AlloZeroLength: (Yes/No, ngầm định là No) chỉ dùng cho các trường kiểu Text hoặc Memo, cho phép nhận giá trị là xâu rỗng. - Caption (Phụ đề): Tên cột khi hiện bảng ở chế độ Datasheet. - Validation Rule: Một điều kiện mà dữ liệu nhập vào trường phải thỏa. Điều kiện có thể dùng: Hệ quản trị CSDL Microsoft Access 2003 Trang 10 + Các hằng: Phải dùng các dấu phân cách: Cặp nháy kép cho xâu kư tự, cặp # cho ngày giờ. + Các phép toán so sánh: =, >, =, <=. + Các phép toán logic: NOT, AND, OR, XOR, IMP, EQV. + Các toán tử đặc biệt khi thao tác dữ liệu: Between, Like, In, - Validation Text: Dòng thông báo được hiển thị khi dữ liệu nhập vào trường vi phạm luật được nêu trong Validation Rule. - Indexed: Có dùng chỉ số cho trường đang xét không. Chỉ số cho phép sắp xếp dữ liệu theo trường đang xét để tăng tốc độ tìm kiếm. Sau khi xác định chỉ số tại thuộc tính của trường, Access sẽ điền thêm 1 chỉ số mới vào bảng chỉ số. Muốn thay đổi thông tin liên quan đến chỉ số, chọn View-Indexs. - Lookup: Khi muốn kiểm soát dữ liệu đảm bảo dữ liệu nhập vào một trường chỉ nhận một trong số các giá trị hoặc lấy từ một trường nào đó ở bảng khác, chuyển thành trường dạng Lookup. + Display Control: Có thể chọn List Box, hoặc ComboBox thay cho dạng Text Box thông thường. + Row Source Type: Kiểu nguồn dữ liệu, dạng bảng hoặc danh sách giá trị. + Row Source: Nguồn dữ liệu, Bảng/truy vấn hoặc danh sách giá trị. + Bound Column: Số thứ tự của cột cho giá trị. + Column Count: Tổng số cột hiển thị trong hộp. + Column width: Độ rộng cột. Chú ý: Khi xác định những kiểm soát dữ liệu liên quan đến nhiều trường khác nhau, phải xác định tại Table Properties 5. Tạo quan hệ giữa các bảng Bước 1: Mở cửa số Relationship bằng cách: • Chọn Tools -> Relationship • Hoặc kích hoạt biểu tượng trên thanh công cụ • Hoặc từ cửa sổ Database click chuột phải -> Relationship. TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 11 Màn hình Show Table Từ cửa sổ Show Table chọn các bảng - Tables (hoặc truy vấn – Queries) cần thiết lập quan hệ bằng cách: Chọn tên bảng (tên truy vấn) ->Add. Bước 2: Thiết lập quan hệ giữa các bảng - Xác định quan hệ giữa 2 bảng + Xác định các trường dùng để kết nối 2 bảng. Đặt con trỏ tại trường liên quan ở bảng này, giữ chuột trái và kéo rê sang trường liên quan ở bảng kia. Bảng như sau xuất hiện: Trong bảng này chúng ta thực hiện: + Xác định toàn vẹn tham chiếu (ràng buộc khi sửa dữ liệu, ràng buộc khi xóa dữ liệu) trong mục Enforce Referential Integrity. + Xác định kiểu quan hệ giữa 2 bảng bằng cách chọn Join Type Trong cửa sổ này chúng ta chọn một kiểu quan hệ phù hợp -> OK -> OK. - Chọn biểu tượng trên thanh công cụ để ghi lại kết quả. - Cách hiệu chỉnh quan hệ Hệ quản trị CSDL Microsoft Access 2003 Trang 12 Bước 1: Mở cửa sổ Relationships như trong bước 1 của phần a. Cửa sổ Relationships xuất hiện như sau: Trong cửa sổ này chúng ta muốn hiệu chỉnh quan hệ giữa 2 bảng nào chúng ta chọn đường liên kết giữa 2 bảng đó -> click chuột phải ->Edit Relationship Bước 2: Cửa sổ Edit Relationship xuất hiện như trong bước 2 của phần a. Trong cửa sổ này chúng ta thực hiện các hiệu chỉnh cần thiết tương tự như bước 2 của phần a. TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 13 6. Bài tập thực hành Một cơ quan quản lý nhân viên gồm các thông tin sau: - Thông tin về phòng làm việc của các nhân viên: mã phòng, tên phòng, địa chỉ phòng. Mỗi phòng có thể có nhiều nhân viên. - Thông tin cá nhân của nhân viên: mã nhân viên, họ tên, giới tính, mã phòng làm việc - Thông tin về trình độ ngoại ngữ của nhân viên: Mỗi nhân viên có thể biết một hoặc nhiều ngoại ngữ khác nhau hoặc có thể không biết một ngoại ngữ nào. Ngược lại cũng có những ngoại ngữ được liệt kê trong danh sách nhưng chưa có nhân viên nào học. Cơ sở dữ liệu thiết kế cho bài toán trên như sau: Bảng PHONG lưu trữ thông tin về các phòng ban trong cơ quan. STT Tên trường Kiểu Độ rộng Ý nghĩa Ràng buộc 1 MAPHONG Text 3 Mã phòng ban 3 chữ cái 2 TENPHONG Text 40 Tên phòng ban 3 DIACHI Text 50 Địa chỉ phòng ban 4 TEL Text 10 Số điện thoại Số hoặc dấu cách Bảng DMNN lưu trữ danh mục các ngoại ngữ STT Tên trường Kiểu Độ rộng Ý nghĩa Ràng buộc 1 MANN Text 2 Mã ngoại ngữ 2 chữ số 2 TENNN Text 20 Tên ngoại ngữ Bảng NHANVIEN lưu trữ thông tin chung về nhân viên: STT Tên trường Kiểu Độ rộng Ý nghĩa Ràng buộc 1 MANV Text 5 Mã nhân viên 2 ký tự đầu là chữ cái, 3 ký tự còn lại là chữ số 2 HOTEN Text 40 Họ và tên 3 NAM Yes/No Giới tính Nam:True, Nữ:False 4 NGAYSINH Date/Time Ngày sinh Nhân viên từ 18 đến 70 tuổi 5 LUONG Number Long Integer Lương chính Từ 540000 đến 6000000 6 MAPHONG Text 3 Mã phòng ban Phải tồn tại trong bảng PHONG 7 ANH OLE Object ảnh nhân viên 8 NGAYBC Date/Time Ngày vào biên chế Ngày biên chế < ngày sinh 18 năm trở lên. Hệ quản trị CSDL Microsoft Access 2003 Trang 14 Bảng TDNN lưu trữ thông tin về trình độ ngoại ngữ của các nhân viên trong cơ quan. STT Tên trường Kiểu Độ rộng Ý nghĩa Ràng buộc 1 MANV Text 5 Mã nhân viên Phải tồn tại trong bảng NHANVIEN 2 MANN Text 2 Mã ngoại ngữ Phải tồn tại trong bảng DMNN 3 TDO Text 1 Trình độ ngoại ngữ A, B, C, D, E, F Ghi chú: Các trường in đậm thuộc khóa chính TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 15 Chương 3 Thiết kế truy vấn ™ Mục đích - Giúp sinh viên biết cách lọc và tìm kiếm thông tin trong cơ sở dữ liệu bằng cách thực hiện truy vấn QBE, SQL. Nội dung - Tổng quan về truy vấn - Các toán tử trong Microsoft Access - Thiết kế truy vấn QBE - Thiết kế truy vấn SQL 1. Tổng quan về truy vấn a. Tác dụng của truy vấn - Dùng để trả lời các câu hỏi có tính chất tức thời. - Bộ hỏi được dùng để lựa chọn các bản ghi (record), cập nhật các bảng và bổ sung các bản ghi mới vào bảng. - Dùng làm nguồn dữ liệu cho các biểu mẫu, báo cáo. - Tạo lập, cập nhật CSDL. b. Trong Access, người ta chia truy vấn thành các loại chính sau: - Truy vấn chọn (Select Query): Thực hiện việc tìm kiếm (kể cả tính toán). - Truy vấn Crosstab: Thực hiện thống kê trên CSDL. - Truy vấn hành động (Action Query): Cho phép cập nhật CSDL gồm bổ sung, loại bỏ hay thay đổi. - Truy vấn định nghĩa dữ liệu, truy vấn hợp. - Truy vấn Pass Through: Gửi lệnh SQL tới CSDL qua ODBC (ví dụ như CSDL SQL server) trên server để thao tác dữ liệu trên đó. c. Kết quả của truy vấn hiển thị dưới dạng bảng. - Bảng này có thể thuộc 2 loại: Dynaset, Snapshot. d. Ngôn ngữ để xây dựng truy vấn - QBE: Dùng thiết kế các truy vấn thao tác dữ liệu ở mức tương đối đơn giản. - SQL: Xây dựng tất cả các loại truy vấn. 2. Các toán tử trong Access a. Toán tử số học Toán tử Mô tả Ví dụ + Cộng hai toán hạng [lương]+[phụ cấp] Hệ quản trị CSDL Microsoft Access 2003 Trang 16 - Trừ hai toán hạng Date-30 -(toán tử đơn) Thay đổi dấu của một toán hạng -12345 * Nhân hai toán hạng [hệ số]*[lương cơ bản] / Chia một toán hạng voái một toán hạng khác 15.2/12.55 \ Chia một toán hạng số nguyên với một toán hạng số nguyên khác. \2 Mod Trả về số dư của phép chia với một số nguyên. 5 Mod 2 ^ Nâng lũy thừa một toán hạng (số mũ) 4^3 b. Toán logic Toán tử Mô tả Ví dụ Kết quả And Và lôgic True And True True And False True False Or Or baog gồm True Or False False Or False True False Not Không lôgic Not True Not False False True Xor Or loại trừ True Xor False True Xor True True False c. Hàm ngày và giờ Hàm Mô tả Ví dụ Trả về Date() Trả về ngày hiện tại của hệ thống Date() 22/1/2005 Day (exp) Trả về một ngày trong một tháng Day (#7/15/2004#) 15 Month(exp) Trả về một tháng trong một năm Month(#7/15/2004#) 7 Weekday(exp) Trả về một ngày trong tuần Weekday(#1/23/2005#) 2 Year(exp) Cho biết năm của biểu thức Year(#1/23/2005#) 2005 d. Hàm xử lý kiểu dữ liệu trường Text Hàm Mô tả Ví dụ Trả về Format(exp) Định dạng biểu thức theo các dạng thức thích hợp. Format(Date(), “dd- mm-yyyy” ) 23- Jul- 2005 TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 17 LCase(exp) Trả về phiên bản chữ thường của một chuỗi. LCase(“Lan”) lan UCase(exp) Trả về phiên bản chữ hoa của một chuỗi. UCase(“Lan”) LAN LTrim(exp) Xóa tất cả các dấu cách ở đầu chuỗi. LTrim (“ Lan”) Lan RTrim(exp) Xóa tất cả các dấu cách ở cuối chuỗi. RTrim(“Lan ”) Lan Trim(exp) Xóa tất cả các dấu cách ở đầu và cuối chuỗi. Trim (“ Lan ”) Lan Str(exp) Chuyển một số thành một chuỗi. Str(123.45) 123.45 Val(exp) Chuyển một chuỗi thành một số Val(“123.45”) 123.45 e. Hàm toán học và hàm lượng giác Hàm Mô tả Ví dụ Trả về Abs(exp) Trả về giá trị tuyệt đối của một số Abs(-1234.5) 1234.5 Atn(exp) Hàm arctang, tính theo radian. Atn(1) 0.7853982 Cos(exp) Hàm cosin, tính theo radian. Cos(pi/4) 0.7071067 19949 Exp(ex) Hàm ex Exp(2.302585) 9.9999990 70 Int(exp) Trả về phần nguyên của giá trị số Int(13.5) Int(-13.5) 13.5 -13.5 Log(exp) Hàm logarit cơ số e. Log(10) 2.302585 Sgn(exp) Hàm dấu Sgn(-13.5) Sgn(13.5) -1 0 Sin(exp) Hàm sin, tính theo radian. Sin(pi/4) 0.7071068 42423 Sqr(exp) Hàm căn bậc hai. Sqr(144) 12 Tan(exp) Hàm tang, tính theo radian. Tan(pi/4) 1.0000001 723 f. Các toán tử khác Toán tử Mô tả Ví dụ Is Được dùng với Null để xác định một giá trị nào đó có phải là Null hay Not Null Is Null Is Not Null Like Xác định một giá trị chuỗi có bắt đầu bằng một hay nhiều ký tự. (Để Like làm việc Like “Jon*” Like “FILE????” Hệ quản trị CSDL Microsoft Access 2003 Trang 18 đúng đắn, ta phải bổ sung một dấu đại diện *, hoặc một hay nhiều dấu ?) In Xác định một giá trị chuỗi có thuộc một thành phần của danh sách các giá trị hay không. In (“CA”, “OR”, “WA”) Between Xác định một số có nằm trong một miền giá trị đã chỉ định hay không. Between 1 And 5 TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 19 3. Thiết kế truy vấn QBE 3.1 Các bước để tạo truy vấn QBE: Bước 1: Từ cửa sổ Database ta làm theo một trong hai cách sau: - Cách 1: Từ cửa sổ Database, trong mục Object chọn Query -> New -> Design View -> OK - Cách 2: Từ cửa sổ Database, trong mục Object chọn Query -> Create Query in Design View -> Sau bước một ta có cửa sổ thao tác như sau: Bước 2: Từ cửa sổ Show Table chọn các bảng dữ liệu hoặc các truy vấn liên quan đến câu hỏi, bằng cách Chọn tên bảng (hoặc tên truy vấn) -> Add. Kết thúc quá trình chọn bảng, truy vấn chọn Close. Ví dụ, câu hỏi liên quan đến 2 bảng PHONG, NHANVIEN chúng ta có cửa sổ: Hệ quản trị CSDL Microsoft Access 2003 Trang 20 - Field: Các trường liên quan đến truy vấn. Có thể xuất hiện ở kết quả hoặc điều kiện tìm kiếm. Trường kết xuất có dạng : - Table: Bảng chứa trường được lựa chọn. - Sort: Sắp thứ tự kết quả theo thứ tự tăng hoặc giảm. - Show: Trường xuất hiện ở kết quả. - Criteria: Điều kiện chọn có dạng: Hoặc Hai biểu thức trên có thể viết trên một dòng sẽ tổ hợp thành điều kiện and. Or: Tìm kiếm theo điều kiện Or. Có thể thêm dòng. Buớc 3: Lựa chọn các trường cần hiển thị trong kết quả của truy vấn hoặc liên quan đến các điều kiện tìm kiếm. Sau đó, soạn thảo các điều kiện tìm kiếm trong phần Criteria. Bước 4: Thực hiện truy vấn bằng một trong hai cách sau: - Cách 1: Chọn biểu tượng ! trên thanh công cụ. - Cách 2: Trên thanh menu chọn Query\Run. Bước 5: Ghi lại kết quả truy vấn (nếu muốn) bằng cách: - Cách 1: Chọn biểu tượng đĩa mềm trên thanh công cụ. - Cách 2: Trên thanh menu chọn File\Save. 3.2 Một số truy vấn QBE a. Truy vấn lựa chọn Ví dụ 1: Cho biết họ tên, tên phòng làm việc của các nhân viên có đủ tiêu chuẩn về hưu trong năm nay: nam từ 60 tuổi trở nên, nữ từ 55 tuổi trở nên. TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 21 Ví dụ 2: Đưa ra danh sách nhân viên nữ trong cơ quan b. Truy vấn tính toán Các bước thiết kế một truy vấn tính toán: - Tạo một truy vấn mới như trong phần 3.1 - Chuyển từ truy vấn chọn thông thường trong phần a (truy vấn chọn) sang truy vấn tính toán bằng cách chọn biểu tượng totals trên thanh công cụ hoặc trên thanh menu chọn View -> Totals. Hệ quản trị CSDL Microsoft Access 2003 Trang 22 Sau khi thực hiện các bước trên, cửa sổ của truy vấn tính toán có dạng như sau: Trong mục Total của mỗi cột có những lựa chọn sau: - Group by: Dùng để chỉ ra trường nào là trường phân nhóm. - Sum: Tính tổng. - Avg: Tính trung bình. - Min: Tìm giá trị nhỏ nhất. - Max: Tìm giá trị lớn nhất. - Count: Đếm. - StDev: Tìm độ lệch chuẩn. - Var: Tìm phương sai. - First: Tìm bản ghi đầu tiên. - Last: Tìm bản ghi cuối cùng. - Expression: Một biểu thức trong tính toán, đi kèm với một tính toán bằng hàm thư viện khác. - Where: Điều kiện lọc các bản ghi tham gia vào tính toán. Ví dụ 1: Tính tiền thưởng cho nhân viên phòng “Kỹ thuật” bằng 2,5 lương trung bình. TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 23 Ví dụ 2: Thiết kế truy vấn nguồn dữ liệu cho bảng tổng hợp lương trong toàn cơ quan bao gồm: tên phòng, tổng lương mà phòng đó được nhận. Ví dụ 3: Đếm số nhân viên nữ trong cơ quan c. Truy vấn tham số Khi thực hiện truy vấn, màn hình nhập giá trị tham số sẽ xuất hiện: Hệ quản trị CSDL Microsoft Access 2003 Trang 24 Truy vấn sẽ được thực hiện với giá trị tham số được nhập từ bàn phím cho kết quả hoặc điều kiện. Cách tạo truy vấn tham số - Thực hiện các bước tạo truy vấn như trong phần 3.1 - Để biến một đối tượng nào thành truy vấn, chỉ cần bao nó bởi cặp ngoặc vuông Ví dụ 1: Thiết kế truy vấn chuẩn bị nguồn dữ liệu cho danh sách nhân viên nữ nhận tiền thưởng 8-3. Số tiền nhập vào từ bàn phím. Ví dụ 2: Đưa ra danh sách nhân viên một phòng, gồm mã nhân viên, họ tên, ngày sinh, tên phòng. Mã phòng nhập từ bàn phím. TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 25 d. Phân biệt quan hệ kiểu Inner Join và Outer Join Ví dụ: Tính tổng số nhân viên trong các phòng của cơ quan. Có thể có phòng mới thành lập chưa có nhân viên. Khi đó, tổng số nhân viên của phòng phải là không. Nếu dùng inner Join thì không đưa ra được những phòng có số nhân viên là 0. Muốn thể hiện đúng kết quả phép kết nối trong truy vấn phải là outer Join (Left Join). Trường hợp 1: Dùng inner Join Kết quả: Hệ quản trị CSDL Microsoft Access 2003 Trang 26 Trường hợp 2: Dùng Outer Join Cách tạo truy vấn Outer Join Sau khi mở cửa sổ thiết kế truy vấn. Chọn kiểu truy vấn thích hợp: truy vấn chọn, truy vấn tính toán, truy vấn tham số, Muốn chuyển liên kết giữa 2 bảng nào thành Outer Join, ta kích chuột phải vào liên kết đó -> chọn Join Properties. Màn hình có dạng Chọn 2, hoặc 3 là kiểu kết nối Outer Join. Chọn 1 là kiểu kết nối Inner Join. Sau đó thực hiện truy vấn bằng cách chọn biểu tượng ! hoặc trên thanh menu chọn Query -> Run. Trong trường hợp của ví dụ này, chúng ta đang cần đếm số nhân viên của một phòng, có thể có những phòng chưa có nhân viên. Do đó, chúng ta chọn kiểu quan hệ giữa bảng NHANVIEN và bảng PHONG là kiểu số 2. Sau khi chọn kiểu quan hệ là 2 thì cửa sổ truy vấn có dạng: Kết quả thực hiện truy vấn : TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 27 e. Truy vấn bổ sung Khi cần bổ sung dữ liệu vào CSDL có thể thực hiện theo các cách sau: - Bổ sung các bảng ghi đơn lẻ: Mở bảng hoặc form, thêm một số dòng. - Bổ sung dữ liệu có sẵn từ các bảng hoặc query khác vào bảng cần lưu bằng cách: lập truy vấn bổ sung. Để tạo truy vấn bổ sung mới bằng QBE ta làm như sau: - Tạo truy vấn mới như trong 3.1 - Trên màn hình thiết kế truy vấn chọn mới, chuyển sang truy vấn bổ sung bằng cách chọn menu Query -> Append Query. Cửa sổ sau xuất hiện. Chọn bảng cần bổ sung thông tin trong mục Table Name, sau đó chọn OK. - Xác định các giá trị sau: Field: Các trường liên quan - trường cho dữ liệu hoặc có mặt trong điều kiện chọn. Table: Tên bảng chứa trường được chọn. Sort: Sắp xếp dữ liệu sẽ bổ sung theo thứ tự tăng hoặc giảm của trường được chọn. Append To: Trường nhận dữ liệu. Ngầm định là trường trùng tên trong bảng nhận. Criteria: Điều kiện chọn các bản ghi để bổ sung. - Chọn biểu tượng ! để thực hiện truy vấn. - Mở bảng LUU để xem kết quả. - Mở truy vấn ở chế độ Datasheet để xem dữ liệu thêm vào CSDL có đúng như ta mong muốn không. Ví dụ 1: Đưa vào bảng LUU thông tin về nhân viên với mã nhân viên nhập từ bàn phím. - Đầu tiên tạo truy vấn mới như trong 3.1 - Chọn các bảng chứa thông tin liên quan: NHANVIEN, PHONG. - Chọn menu Query -> Append Query. Trong cửa sổ Append, chọn LUU trong Table Name. Hệ quản trị CSDL Microsoft Access 2003 Trang 28 - Bổ sung các điều kiện cần thiết như trong hình sau: f. Truy vấn loại bỏ Nếu loại bỏ một số bản ghi đơn lẻ, có thể loại bỏ trực tiếp trên bảng hoặc form. Truy vấn loại bỏ được sử dụng khi loại bỏ các bản ghi thỏa mãn điều kiện nào đó có thể được thiết kế bằng QBE hoặc bằng SQL để chạy tự động trong chương trình. Các bước để tạo truy vấn loại bỏ: - Tạo truy vấn mới, trên màn hình Show Table chọn các bảng liên quan đến truy vấn. Gồm một bảng cần loại bỏ và các bảng liên quan đến điều kiện để loại bỏ. - Trên thanh menu chọn Query -> Delete Query. Cửa sổ thiết kế truy vấn loại bỏ như sau: Field: Bảng cần xóa thông tin, các trường liên quan đến điều kiện. Delete: Access tự điền là From hoặc Where. Criteria và Or: Điền điều kiện chọn bản ghi để loại bỏ. - Kích hoạt biểu tượng Datasheet View. TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 29 Chú ý: Khi thiết kế truy vấn loại bỏ phải nhớ thiết lập thuộc tính Cascade Delete (trong cửa sổ thiết lập quan hệ giữa các bảng) để tránh phải thực hiện những thao tác không cần thiết. Ví dụ 1: Xóa thông tin về một nhân viên, với mã nhân viên nhập từ bàn phím. g. Truy vấn thay đổi. Thay đổi các giá trị đơn lẻ: Trực tiếp trên bảng hoặc Form. Khi cần thay đổi hàng loạt bản ghi thỏa mãn điều kiện nào đó: Tạo truy vấn thay đổi. Các bước tạo truy vấn thay đổi: - Tạo truy vấn mới, chọn các bảng liên quan: Một bảng cần thay đổi dữ liệu và các bảng liên quan đến điều kiện. - Trên thanh menu chọn Query -> Update Query. Cửa sổ thiết kế truy vấn thay đổi như sau: Field: Trường cần thay đổi hoặc có liên quan đến điều kiện. Update To: Giá trị mới của trường. Criteria: Điều kiện chọn bản ghi để thay đổi. Hệ quản trị CSDL Microsoft Access 2003 Trang 30 Trước khi thực hiện truy vấn thay đổi, cũng cần xem trước những bản ghi được thay đổi xem sự thay đổi đó có phù hợp với yêu cầu không? Chú ý: Tương tự như thao tác loại bỏ chú ý đến việc xác lập tùy chọn Cascade Update để tránh những thao tác thay đổi không cần thiết. Ví dụ 1: Thực hiện những thay đổi sau đây với những nhân viên vào biên chế trước 1/1/1995. Đổi ngày biên chế thành 1/1/95, tăng gấp đôi số lương. Dùng trong các biểu mẫu thống kê. Đặc trưng quan trọng là có thể chuyển dữ liệu trong bảng thành tiêu đề cột, hàng. Ví dụ, kết quả của 1 truy vấn Crosstab cho biết số nhân viên nam của mỗi phòng, số nhân viên nữ của mỗi phòng có dạng: Các bước tạo truy vấn Crosstab: - Tạo truy vấn mới, chọn bảng hoặc truy vấn nguồn dữ liệu liên quan. - Trên thanh menu chọn Query -> Crosstab Query - Chọn các trường để nhóm theo hàng. - Chọn các trường để nhóm theo cột. - Chọn giá trị để lưu ở các ô (giao của một hàng và một cột), ở đó có thể dùng các hàm thư viện SUM, COUNT, . . . để tính toán. Ví dụ 1: Một truy vấn để tính tổng số nam, nữ trong từng phòng, chuẩn bị nguồn dữ liệu cho báo cáo về tỷ lệ nam, nữ trong từng phòng: TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 31 Kết quả của truy vấn 4. Thiết kế truy vấn SQL 4.1 Cách mở cửa sổ thiết kế truy vấn SQL Bước 1: Từ cửa sổ Database, trong mục Objects chọn đối tượng Querys -> Create query in Design view. Sau bước này cửa sổ Show tables xuất hiện (như trong phần thiết kế truy vấn QBE). Bước 2: Đóng cửa sổ Show table này lại, trên menu chọn View -> SQL View. Cửa sổ thiết kế SQL xuất hiện, và chúng ta soạn câu lệnh SQL trong cửa sổ này. Bước 3: Để thực hiện câu lệnh SQL chọn biểu tượng ! trên thanh công cụ 4.2 Cú pháp của câu lệnh SQL SELECT [DISTINCT|ALL]{*| | [AS <tên mới>]} FROM [] [, ] [WHERE ] [GROUP BY ] [HAVING <điều kiện lựa chọn nhóm>] [ORDER BY ] Trong đó: Hệ quản trị CSDL Microsoft Access 2003 Trang 32 - biểu thức cột: là tên của một cột hoặc một biểu thức. - tên bảng: là tên của một bảng hoặc một khung nhìn. - bí danh: là một tên viết tắt của tên bảng. - GROUP BY dùng để nhóm các bản ghi có cùng giá trị trong danh sách tên cột dùng để gộp nhóm thành một nhóm. - HAVING dùng để lọc các nhóm thỏa mãn điều kiện lựa chọn nhóm. - ORDER BY qui định thứ tự các bản ghi trong kết quả trả ra, thứ tự các bản ghi được sắp xếp dựa vào giá trị trong của các cột trong danh sách cột dùng để sắp xếp. Khi viết lệnh SQL cần chú ý: - Phần đặt trong cặp dấu [ ]: là phần có thể sử dụng hoặc không. - Những phần đặt trong cặp dấu {} : bắt buộc phải lựa chọn một số giá trị trong cặp dấu ngoặc này. - Phần đặt trong cặp dấu : là phần bắt buộc phải có khi viết lệnh SQL. Một số loại điều kiện có thể đặt sau từ khóa WHERE - So sánh giá trị của hai biểu thức. - Kiểm tra xem giá trị của một biểu thức có nằm trong một khoảng giá trị đã xác định không. - Kiểm tra xem giá trị của một biểu thức có bằng một trong các giá trị thuộc một tập hợp đã xác định không. - Kiểm tra xem một cột có chứa giá trị null không. Một số toán tử dùng trong SQL - Toán tử so sánh: >, =, - Toán tử logic: NOT, AND, OR, đây cũng là thứ tự ưu tiên của các phép toán logic. - Các toán tử khác: LIKE, IN, IS, - Kí hiệu % dùng để sánh hợp với mọi xâu. Kí hiệu _ (dấu nối dưới) dùng để sánh hợp với mọi kí tự. Ví dụ 1 Cho biết mã nhân viên, họ tên, đơn vị và lương của những nhân viên có lương lớn hơn 2300000. SELECT manv, hoten, ma_dv, luong FROM nhan_vien WHERE luong>2300000 Ví dụ 2 Tìm tên các nhân viên có mã đơn vị là ‘P4’ và lương thấp hơn 2500000. SELECT manv, ho_ten, ma_dv, luong FROM nhan_vien WHERE ma_dv=’P4’ AND luong < 2500000 4.3 Kết nối các bảng Trong trường hợp câu hỏi liên quan đến nhiều bảng chúng ta cần kết nối các bảng với nhau. Có 2 kiểu kết nối là kết nối trong (INNER JOIN) và kết nối ngoài (LEFT JOIN, RIGHT JOIN). Ví dụ, kết nối bảng nhanvien va bảng phong dựa trên điều kiện kết nối TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 33 nhanvien.maphong=phong.maphong - Kết nối trong: một bộ trong bảng nhanvien sẽ được kết nối với một bộ trong bảng phong khi và chỉ khi maphong của hai bộ này bằng nhau. - Kết nối ngoài: Nếu nhanvien LEFT JOIN phong ON nhanvien.maphong=phong.maphong thì với một bộ t trong bảng nhanvien được ghép với một bộ k trong bảng phong nếu hai bộ này có maphong bằng nhau, nếu không tìm thấy bộ nào trong bảng phong có maphong bằng maphong của bộ t thì bộ t được ghép với một bộ có giá trị null trong bảng phong. Kết nối nhanvien RIGHT JOIN phong ON nhanvien.maphong = phong.maphong cho kết quả bằng kết nối phong LEFT JOIN nhanvien ON nhanvien.maphong=phong.maphong. Ví dụ 1: Tìm những ngoại ngữ mà chưa có nhân viên nào học? Cách 1: SELECT mann, tenn FROM dmnn LEFT JOIN tdnn ON dmnn.mann=tdnn.mann WHERE tdnn.mann IS null Cách 2: SELECT mann, tenn FROM dmn WHERE mann NOT IN (SELECT DISTINCT mann FROM tdnn) Ví dụ 2: Cho biết mã nhân viên, họ tên, lương của các nhân viên làm ở phòng "kỹ thuật”? Cách 1: SELECT manv, hoten, luong FROM nhanvien INNER JOIN phong ON nhanvien.maphong=phong.maphong WHERE tenphong="kỹ thuật" Cách 2:SELECT manv, hoten, luong FROM nhanvien, phong WHERE nhanvien.maphong = phong.maphong AND tenphong="kỹ thuật" Ví dụ 3:Cho biết mã nhân viên, họ tên, ngày sinh của những nhân viên có tiếng Anh đạt trình độ từ C trở lên. SELECT nhanvien.manv, hoten, ngaysinh FROM (nhanvien INNER JOIN tdnn ON nhanvien.manv=tdnn.manv) INNER JOIN dmnn ON tdnn.mann=dmnn.mann WHERE tennn=’Anh’ AND tdo>=’C’ Hệ quản trị CSDL Microsoft Access 2003 Trang 34 Chú ý: Khi sử dụng nhiều bảng trong câu lệnh SQL với những thuộc tính xuất hiện ở nhiều bảng, khi sử dụng cần chỉ rõ chúng ta dùng thuộc tính đó ở bảng nào, bằng cách viết: .. 4.4 Sử dụng các hàm gộp, GROUP BY, HAVING SQL sử dụng một số hàm gộp sau: - COUNT: đếm số các giá trị trong một cột. - SUM: tính tổng các giá trị trong một cột. Hàm này chỉ áp dụng cho các giá trị kiểu số. - AVG: tính trung bình cộng của các giá trị trong một cột. Hàm này chỉ áp dụng cho các giá trị kiểu số. - MIN: tìm giá trị nhỏ nhất trong số các giá trị của một cột. - MAX: tìm giá trị lớn nhất trong số các giá trị ở một cột. Trừ hàm COUNT(*), còn các hàm khác đều bỏ qua các giá trị null trong các giá trị đầu vào của chúng. Ví dụ 1: Cho biết số nhân viên, và tổng lương của toàn cơ quan? SELECT COUNT(manv) AS sonv, SUM(luong) AS tongluong FROM nhanvien Ví dụ 2: Cho biết lương cao nhất, lương trung b́nh của mỗi đơn vị? Thông tin đưa ra gồm: mã phòng, tên phòng, lương cao nhất, lương trung bình của phòng đó. SELECT phong.maphong, tenphong, MAX(luong) AS maxluong, AVG(luong) AS luongtb FROM nhanvien INNER JOIN phong ON nhanvien.maphong=phong.maphong GROUP BY phong.maphong, tenphong Ví dụ 3: Cho biết số nhân viên làm việc ở đơn vị có mã số ‘P1’ và tổng lương của họ. SSELECT COUNT(manv) AS sonv, SUM(luong) AS tongluong FROM nhanvien WHERE maphong=’P1' Ví dụ 4:Đưa ra lương cao nhất và tổng lương của những đơn vị có tổng lương trên 4 triệu. SELECT maphong, MAX(luong) AS maxluong, SUM(luong) AS tongluong FROM nhanvien GROUP BY maphong HAVING SUM(luong)>4000000 4.5 Truy vấn lồng nhau Một truy vấn con là một biểu thức SELECTFROMWHERE được lồng trong một truy vấn khác. Kết quả của truy vấn con được sử dụng cho câu truy vấn SELECTFROMWHERE bên ngoài. Truy vấn con có thể xuất hiện trong WHERE, HAVING của truy vấn ngoài, hoặc xuất hiện trong các câu lệnh INSERT, UPDATE, DELETE. TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 35 Một số lượng từ thường dùng trong câu truy vấn lồng nhau: ALL (tất cả), SOME (một vài), EXIST (tồn tại). Ví dụ 1: Tìm mã số và tên những nhân viên phòng Kỹ thuật. SELECT manv, ho_ten FROM nhan_vien WHERE ma_dv = (SELECT ma_dv FROM phong WHERE ten_phong="Kỹ thuật’) Ví dụ 2: Cho biết tên và lương của những người có lương cao hơn lương của mọi nhân viên thuộc đơn vị mã P2. SELECT ho_ten, luong FROM nhan_vien WHERE luong> ALL (SELECT luong FROM nhan_vien WHERE ma_dv=’P2’) Ví dụ 3: Cho biết tên phòng có lương trung bình cao nhất. SELECT ten_phong FROM phong WHERE ma_dv IN (SELECT ma_dv FROM nhan_vien GROUP BY ma_dv HAVING AVG(luong)>=ALL SELECT AVG(luong) FROM nhan_vien GROUP BY ma_dv) Hệ quản trị CSDL Microsoft Access 2003 Trang 36 Chương 4 Thiết kế biểu mẫu, báo cáo ™ Mục đích - Giúp sinh viên biết cách thực hiện các công việc sau: - Tạo các cửa sổ để tra cứu và cập nhật thông tin thông qua việc thiết kế các biểu mẫu (form). - Tạo các báo cáo (report) mang tính chất thống kê, tổng hợp thông tin từ dữ liệu có trong CSDL. ™ Nội dung - Thiết kế biểu mẫu (form) - Thiết kế báo cáo (report) 1. Thiết kế biểu mẫu (form) Biểu mẫu (form) là giao diện chủ yếu giữa người và máy. Do vậy biểu mẫu thường dùng trong các trường hợp sau: - Thiết kế màn hình nhập dữ liệu. - Thiết kế menu. - Thiết kế các màn hình tra cứu thông tin. - Tạo các màn hình giới thiệu, trợ giúp. Yêu cầu khi thiết kế giao diện phải làm sao thật thuận tiện cho người sử dụng, tức là hoàn toàn giống với những gì mà người sử dụng thường dùng trong thực tế. Access hỗ trợ nhiều công cụ để giải quyết yêu cầu này. Mọi đối tượng xuất hiện trên form được gọi là điều khiển. Điều khiển được chia thành 3 loại chính: 1. Điều khiển bị buộc (Bound Control): là điều khiển có nguồn dữ liệu lấy từ CSDL. Nhờ điều khiển bị buộc ta có thể: - Tra cứu thông tin trong CSDL. - Cập nhật thông tin vào CSDL. 2. Điều khiển không bị buộc (Unbound Control): Điều khiển mà thông tin không gắn với nguồn dữ liệu. Thường gặp dưới dạng tiêu đề đường kẻ Cũng có thể là hộp văn bản (text box) dùng để nhập dữ liệu trong trường hợp đặc biệt. 3. Điều khiển tính toán được (Calculate Control): Điều khiển mà giá trị của nó được tính toán từ giá trị của các điều khiển khác. 1.1 Thiết kế biểu mẫu mới Cách 1: Từ cửa sổ database, trong phần Objects chọn Form -> Create form in Design view hoặc Create form by using winzard -> TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 37 Cách 2: Từ cửa sổ database, trong phần Objects chọn Form/New, cửa sổ New Form như sau xuất hiện Trong cửa sổ New Form chọn Design View. Màn hình thiết kế form như sau xuất hiện: Trong cửa sổ thiết kế form này, quan trọng nhất là Fieldlist và Toolbox, chúng ta có thể làm xuất hiện hay ẩn 2 công cụ này bằng cách: từ cửa sổ thiết kế form trên, chọn View/Fieldlist (để làm xuất hiện hoặc ẩn Fieldlist), chọn View/Toolbox (để làm xuất hiện hoặc ẩn Toolbox). Hệ quản trị CSDL Microsoft Access 2003 Trang 38 - Fieldlist: Dùng trong trường hợp form bị buộc vào nguồn dữ liệu nào đó. - Hộp công cụ ToolBox: Để thiết kế các điều khiển trên form 1.2 Thiết kế các điều khiển trên biểu mẫu a. Vị trí của các điều khiển Khi thiết kế các điều khiển, người ta quan tâm đến vị trí của nó trên form. Màn hình thiết kế form: TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 39 - Page header/Page fooder: là tiêu đề đầu và cuối mỗi trang. - Form header/Form fooder: Form header, dùng để chứa các tiêu đề (như tên form, tên trường). Form fooder, dùng để chứa các nút lệnh thao tác trên bản ghi hoặc các dòng tổng cộng. - Detail: Phần quan trọng nhất của form. Với những form có dữ liệu, đây chính là phần lặp lại với mỗi bản ghi. Do vậy muốn dữ liệu được hiển thị như những phiếu nhập dữ liệu, dàn dọc các điều khiển trên phần Detail. Muốn dữ liệu hiển thị dưới dạng bảng, dàn hàng ngang các điều khiển trên phần Detail. Riêng với form dạng Datasheet, chỉ cần kéo đủ các điều khiển vào detail của form, không cần quan tâm đến vị trí của nó. b. Căn chỉnh các điều khiển Có thể sao chép, cắt dán, xóa các điều khiển (Tất nhiên chỉ với một số loại nào đó) - Đánh dấu các điều khiển: Đánh dấu theo cột Đánh dấu theo hàng Đánh dấu theo khung Đánh dấu các điều khiển rời rạc (shift+nhắp chuột) - Căn chỉnh các điều khiển: Chọn mục format Gióng đều: Align Khoảng cách giữa các điều khiển: Vertical Spacing,Horizontal Spacecing Làm cho các điều khiển có cùng độ rộng, chiều cao: Size c. Điều khiển hộp văn bản (Textbox) Hộp văn bản là điều khiển quan trọng nhất trên form. Đây là loại điều khiển có thể thuộc cả 3 loại: Bị buộc, không bị buộc, và tính toán được. Hệ quản trị CSDL Microsoft Access 2003 Trang 40 - Nếu điều khiển không là bị buộc, thường điều khiển đó nằm trong form không có nguồn dữ liệu. Như vậy, nó dùng để nhập dữ liệu vào một biến nhớ dùng trong so sánh, tính toán hoặc để làm trung gian khi nhập dữ liệu vào bảng. Để tạo điều khiển dạng này, kéo từ toolbox vào. - Nếu điều khiển là bị buộc thì form đó phải có nguồn dữ liệu. Hiện Fieldlist để hiển thị danh sách các trường. Kéo từ Fieldlist vào form, ta có textbox bị buộc với các trường được lựa chọn. - Nếu là điều khiển tính toán thì trước hết tạo như một điều khiển không bị buộc, sau đó đưa các biểu thức vào + Chính ô điều khiển + Thuộc tính Control Source của điều khiển, ở đây còn có thể gọi Expression Builder. Có thể quan tâm đến các thuộc tính của điều khiển TextBox: (Đã giải thích ý nghĩa khi tạo bảng). + Không bị buộc + Bị buộc, dữ liệu trong toàn bảng không thỏa các thuộc tính nhưng dữ liệu được nhập tại form lại phải thỏa những thuộc tính đó. Các thuộc tính khác có thể quy định khuôn dạng của điều khiển, chẳng hạn mầu nền, font chữ, cách căn lề (trái, phải), thanh cuộn (ScrollBar). d. Nhãn - Nhãn dùng làm tiêu đề, chú giải, - Chủ yếu quan tâm đến hình thức trình bày trên nhãn: font, màu sắc, Có thể kích hoạt vào biểu tượng hoặc đổi giá trị thuộc tính. - Khi dòng chữ trong nhãn quá lớn so với kích cỡ của nhãn, có thể chỉnh tự động bằng cách dùng format/size/to fit. - Muốn xuống dòng giữa chừng: Ctrl+Enter. e. Điều khiển ảnh Trong Access điều khiển ảnh có thể là: - Image: Cho phép chọn một số tệp ảnh: bmp, wmf, Ít tốn không gian nhớ, tải ảnh lên form nhanh. Để trang trí hoặc làm trung gian để tải ảnh vào CSDL. - Bound object frame: Gắn với trường có kiểu dữ liệu OLE, có thể thay đổi khi hiện form ở chế độ form view. Chỉ cần kéo trường OLE từ field list vào form là có ngay điều khiển OLE bị buộc. - Unbound object frame: Điều khiển không bị buộc. Có thể thay đổi khi hiển thị form ở chế độ form view (Enabled = yes, Locked = no). Có thể dùng nhiều loại tệp ảnh hơn, chẳng hạn như jpg. Khi dùng điều khiển ảnh cần chú ý các thuộc tính sau: + Size mode + Special Effect + Border style, Back style f. Hộp kiểm tra, nút chọn, nút bật, tắt TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 41 Có thể có 2 trường hợp: - Nếu điều khiển bị buộc: nó luôn được gắn với trường kiểu yes/no. Tùy yêu cầu thực tế mà chọn kiểu nút cho phù hợp. - Nếu điều khiển không bị buộc: Quan tâm đến thuộc tính value-1/0 để lập trình xử lý sự kiện. g. Nhóm lựa chọn Nhóm lựa chọn là tập hợp gồm nhiều điều khiển thuộc một trong 3 dạng: Option Button, Check Box, Toggle Button. - Nếu là điều khiển bị buộc: Nó dùng để kiểm soát sao cho dữ liệu nhập vào một trường chỉ có thể nhận một trong số ít giá trị. Để tạo nhóm lựa chọn có thể dùng một trong hai cách sau: + Nếu dùng Wizard cần xác định các thông tin sau: - Chọn các nhãn - Giá trị ngầm định - Giá trị ứng với từng mục chọn – chú ý giá trị ngầm định là 1, 2, 3, - Kiểu nút - Kiểu khung - Tên của nhóm + Nếu không dùng Wizard - Tắt Control Wizard - Chọn Option Group - Chọn trường trên field list đưa vào form – Một khung xuất hiện. - Chọn kiểu nút đưa vào khung. Khi ấy phần bên trong khung sẽ đổi mầu. - Nếu giá trị nhập vào trường được chọn khác 1,2,3, thì phải đổi các giá trị đó tại thuộc tính Option Value. - Nếu là điều khiển không bị buộc: không cần chọn trường trên field list. Khi tạo điều khiển xong, căn cứ vào giá trị của các nút lựa chọn mà lập trình xử lý sự kiện. h. Hộp liệt kê (List Box) và Combo (Combo box) Khi muốn chọn một trong nhiều giá trị để nhập vào trường (trên 5 giá trị) người ta dùng List box hoặc Combo box. Những trường Lookup khi kéo vào form đã có sẵn hộp List box/Combo box. - Combo box: thường được dùng nhiều trên màn hình nhập dữ liệu, tìm kiếm. - List box: thường được dùng trong màn hình hiển thị, tra cứu. Hệ quản trị CSDL Microsoft Access 2003 Trang 42 Có thể thêm giá trị khác (không có trong danh sách giá trị) vào hộp Combo Box, trong khi không thể thêm một giá trị mới vào trong List box. Mở thuộc tính của List box/Combo box, xác định các thuộc tính sau: - Row Source Type: Chọn Table/Query hoặc Value List. - Row Source: Tên bảng hoặc truy vấn nếu Row Source Type là table/query. Nếu Row Source Type là Value list thì để danh sách giá trị phân cách bằng dấu ; (Có thể là dấu khác nếu đặt lại ở Regional Setting). Cũng có thể là một lệnh Selecte của SQL nếu muốn hiển thị dữ liệu trong hộp này hay nhập vào trường giá trị của những cột bất kỳ. - Bound Column: Cột cho giá trị. - Column Count: Số các cột sẽ hiển thị dữ liệu trong hộp (tính từ cột 1) - Limit to list (yes/no): Dùng riêng cho Combo box. Khi thêm giá trị mới vào, giá trị này sẽ được cập nhật vào nguồn nếu thuộc tính này đặt là No. Tuy nhiên, không thêm giá trị này vào danh sách lựa chọn của hộp Combo. i. Nút lệnh (Command Button) Khi ta kích hoạt nút lệnh, HQTCSDL sẽ thực hiện một công việc gì đó. Công việc đó có thể đơn giản là mở một form cũng có thể là tính điểm trung bình của sinh viên của một trường đại học. Để tạo nút lệnh có thể dùng Wizard hoặc lập trình - Không dùng Wizard: + Tắt Control Wizard + Chọn nút lệnh, đưa vào form + Lập trình xử lý sự kiện trên nút lệnh: sự kiện quan trọng nhất là Click (Macro hoặc Code). j. Điều khiển Tab Dùng khi cần nhập dữ liệu cho nhiều bảng độc lập khác nhau trên cùng một form hoặc khi form nhập dữ liệu quá dài. Các thao với điều khiển Tab: + Đưa điều khiển tab + Thêm trang + Bớt trang + Đổi thứ tự trang + Xác định thuộc tính cho tab và cho từng trang k. Thuộc tính của form - Thuộc tính về hình thức trình bày của form: + Default View: Dạng hiển thị ngầm định của form. + Scroll Bars: Các thanh cuộn để chuyển điều khiển lên – xuống. + Navigation Button: Các nút để dịch chuyển bản ghi. + Dividing Lines: Đường phân chia các bộ phận của form. TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 43 + Picture: Hình ảnh trên toàn form. + MinMax Buttons: Nút cho phép thu nhỏ, phóng to kích cỡ của form. - Thuộc tính liên quan đến dữ liệu của form: + Records Source: Tên truy vấn, bảng nguồn dữ liệu hoặc văn bản SQL của nguồn dữ liệu. + Allow Filters: Cho phép lọc dữ liệu hiện trên form. + Allow Deletions: Cho phép xóa các bản ghi trên form. + Allow Edits: Cho phép chỉnh sửa dữ liệu trên form. + Allow Additions: Cho phép bổ sung bản ghi trên form - Các thuộc tính khác: + Popup: Form được mở trên các form khác. + Modal: Không thể kích hoạt bất cứ vị trí nào ngoài phạm vi form. + Menu Bar: menu hiện khi mở form. + Shortcut Menu: Menu hiện khi nhấn chuột phải. Ví dụ, tạo form để xem và cập nhật thông tin cho bảng phòng có dạng: Có thể làm như sau: - Từ cửa sổ Database, trong mục Object chọn Form -> Create form in Design view -> . Cửa sổ thiết kế xuất hiện. - Từ cửa sổ thiết kế form, chúng ta chọn nguồn dữ liệu của form là bảng PHONG. - Thiết kế các điều khiển trên form như sau: Kéo rê các trường cần hiển thị trên form (các trường này lấy từ nguồn dữ liệu của form – Field List) vào cửa sổ thiết kế, sau đó hiệu chỉnh lại các nhãn (Lables) trên form như sau: Hệ quản trị CSDL Microsoft Access 2003 Trang 44 1.3 Các thuộc tính của biểu mẫu a. Thuộc tính về hình thức trình bày của form: + Default View: Dạng hiển thị ngầm định của form. + Scroll Bars: Các thanh cuộn để chuyển điều khiển lên – xuống. + Navigation Button: Các nút để dịch chuyển bản ghi. + Dividing Lines: Đường phân chia các bộ phận của form. + Picture: Hình ảnh trên toàn form. + MinMax Buttons: Nút cho phép thu nhỏ, phóng to kích cỡ của form. b. Thuộc tính liên quan đến dữ liệu của form: + Records Source: Tên truy vấn, bảng nguồn dữ liệu hoặc văn bản SQL của nguồn dữ liệu. + Allow Filters: Cho phép lọc dữ liệu hiện trên form. + Allow Deletions: Cho phép xóa các bản ghi trên form. + Allow Edits: Cho phép chỉnh sửa dữ liệu trên form. + Allow Additions: Cho phép bổ sung bản ghi trên form c. Các thuộc tính khác: + Popup: Form được mở trên các form khác. + Modal: Không thể kích hoạt bất cứ vị trí nào ngoài phạm vi form. + Menu Bar: menu hiện khi mở form. + Shortcut Menu: Menu hiện khi nhấn chuột phải. 1.4 Biểu mẫu chính phụ Form chính – phụ để nhập dữ liệu đồng thời vào nhiều bảng. Có thể là form TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 45 chính phụ độc lập hoặc phụ thuộc. Cách tạo form chính – phụ phụ thuộc - Dùng Wizard: Trên màn hình thiết kế form chính, bật Control Wizard, chọn điều khiển Subform/Subreport sau đó xác định: + Chọn bảng nguồn hoặc form đã có sẵn. + Chọn trường đưa vào form phụ. + Chọn trường kết nối. + Chọn tên điều khiển form phụ. - Không dùng Wizard: + Tạo form chính. + Tạo form phụ một cách độc lập. + Mở cửa sổ thiết kế form chính đồng thời với cửa sổ Database. Kéo form phụ vào form chính. Ví dụ: Tạo một form chính “Danh sách phòng”, môi phòng tương ứng với một danh sách nhân viên trong form phụ “Danh sách nhân viên”. Cửa sổ thiết kế: Chú ý: Danh sách nhân viên trong form phụ hiển thị đúng là các nhân viên của phòng trong form chính. Vì bảng PHONG và bảng NHANVIEN kết nối (quan hệ) với nhau thông qua trường MAPHONG. Kết quả: Hệ quản trị CSDL Microsoft Access 2003 Trang 46 2. Thiết kế báo cáo Báo cáo dùng để in ra giấy những thông tin kết xuất từ CSDL theo khuôn dạng, yêu cầu của từng cơ quan. Báo cáo có nhiều dạng, nhưng thông dụng nhất là các dạng sau: - Báo cáo dạng văn bản, trong đó văn bản kết hợp với các thông tin lấy từ CSDL, ví dụ, giấy mời được giửi tới các thành viên mà danh sách được lưu trữ trong CSDL, thẻ ra vào, - Báo cáo dạng đơn giản với thông tin được lấy trực tiếp từ CSDL, ví dụ danh sách nhân viên, bảng lương. - Báo cáo thực hiện một số tính toán, thống kê. - Báo cáo dạng biểu đồ, nhãn thư, Nói chung rất ít khi phải tự động tạo báo cáo trong chương trình. Thông thường, khuôn dạng của báo cáo được tạo trước rồi sau đó muốn cho báo cáo được linh hoạt hơn thì dùng chương trình đổi nguồn dữ liệu 2.1 Tạo báo cáo mới Để tạo khuôn dạng của báo cáo ban đầu: Cách 1: Từ cửa sổ Database, trong phần Objects chọn Report -> Create report in Design view hoặc Create report by using winzard -> Cách 2: Từ cửa sổ Database, trong phần Objects chọn Report -> New, cửa sổ New Report với các lựa chọn như sau xuất hiện -> Design View -> OK. TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 47 Màn hình thiết kế báo cáo hiện ra với 3 chế độ song song tồn tại, đó là: - Design View: Thiết kế báo cáo. - Print Preview: Xem hình ảnh của báo cáo với kích thước thật và dữ liệu thật. - Layout Preview: Chỉ xem hình ảnh của báo cáo, còn dữ liệu chưa chắc chính xác, vì Access có thể bỏ qua các điều kiện chọn, kết nối, Cửa sổ thiết kế báo cáo: Trên màn hình thiết kế báo cáo cũng luôn để 2 công cụ là Toolbox và Fieldlist giống như trong cửa sổ thiết kế biểu mẫu. Các thành phần trong cửa sổ thiết kế báo cáo gồm: - Detail: Lặp lại theo từng bộ dữ liệu (từng bản ghi trong bảng hoặc truy vấn nguồn). - Page Header/Page Footer: Lập lại mỗi trang một lần. Phần này thường chứa số trang, ngày tháng lập báo cáo, - Report Header/Report Footer: Mỗi báo cáo lặp một lần. Phần này chứa tiêu đề chung của toàn báo cáo và các dạng tổng cộng. - Ngoài ra các báo cáo có phân nhóm còn chứa Group Header/Footer dùng làm tiêu đề và các dòng tổng cộng cho từng nhóm trong báo cáo. 2.2 Thiết kế các một số dạng báo cáo a. Thiết kế báo cáo dạng văn bản Gồm những văn bản giống nhau được gửi tới mỗi đối tượng có thông tin trong CSDL. Đặc trưng của các báo cáo dạng này là văn bản trộn lẫn với thông tin trong CSDL. Vì vậy, toàn bộ thiết kế nằm trong phần Detail. Trong báo cáo thường gồm các điều khiển: - Nhãn: Chứa các đoạn văn bản với font chữ theo yêu cầu thực tế. - Textbox: Có thể chứa thông tin lấy trực tiếp từ nguồn dữ liệu hoặc kết xuất từ những thông tin trong CSDL. Do vậy Text box gồm 2 loại: bị buộc và tính toán được. Hệ quản trị CSDL Microsoft Access 2003 Trang 48 - Ảnh: Có thể bị buộc hoặc không bị buộc. b. Thiết kế báo cáo đơn giản dạng bảng - Tiêu đề: Nếu tiêu đề xuất chỉ xuất hiện ở trang đầu chọn Report Header. Nếu tiêu đề xuất hiện trên mọi trang chọn Page Header. - Đầu cột: Thường để ở Page Header (trừ trường hợp dán nối các trang thì đẻ ở Report Header). - Text box chứa dữ liệu nguyên dạng: Kéo các dữ liệu xuất hiện trong bảng từ Field List vào phần Detail. Xóa nhãn đi kèm điều khiển. Việc căn chỉnh giống như căn chỉnh điều khiển trên form. + Nếu muốn các giá trị trùng nhau chỉ xuất hiện 1 lần, ví dụ tên người đi kèm tên ngoại ngữ mà người đó biết, mở thuộc tính của Textbox đặt Hide Duplicate là Yes. + Để có các textbox có độ cao giống nhau, nên chọn cách sao chép hoặc tác động vào thuộc tính của điều khiển. Tạo các Textbox (điều khiển tính toán được) chứa dữ liệu kết xuất dạng: = Trong đó đặc biệt là điều khiển số thứ tự. Nhưng phải đặt thuộc tín Running Sum là Over All. - Có những Textbox được dùng làm trung gian để tính giá trị cho những textbox khác. Khi ấy phải đặt thuộc tính Visible là No. - Dòng tổng cộng đặt tại Report Footer. - Số trang hoặc ngày lập báo cáo có thể để ở Page Footer. Hàm Page, cho biết số của trang hiện thời. Hàm Pages, cho biết tổng số trang của báo cáo. - Muốn kẻ khung dùng các điều khiển dạng Line. Muốn chính xác sử dụng thuộc tính left, width, top, height. Tại Textbox đặt thuộc tính Borderr Style chọn Solid/Dashes Cuối báo cáo (Report Footer) thường có các dòng tổng cộng là các điều khiển dạng tính toán được với các hàm thư viện hoặc các hàm thư viện có điều kiện, đó là: = Sum| Avg| StDev| StDevP| Var| VarP () =Count| Min| Max () = DSum| DAvg| DStDev| DStDevP| DVar| DVarP (; <Tên nguồn dữ liệu>; ) =DCount| DMin| DMax (;;) c. Thiết kế báo cáo thống kê Nguồn dữ liệu của các báo cáo này trong trường hợp đơn giản là các truy vấn dạng crosstab, ngoài ra có thể dùng bảng trắng và viết mã lệnh VBA để tính toán dữ liệu, dồn vào bảng. 2.3 Sắp xếp và phân nhóm trên báo cáo Muốn dữ liệu xuất hiện trong báo cáo được sắp xếp theo một thứ tự nào đó, không nhất thiết phải sắp xếp trên truy vấn. Có thể sắp xếp ngay trên báo cáo. Để thực hiện công việc này, cần mở hộp thoại Sorting and Grouping (Có thể mở hộp thoại Sorting and Grouping bằng cách chọn View hoặc kích chuột phải). Cửa sổ Sorting and Grouping có dạng như sau: TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 49 Sau khi sắp xếp xong có thể phân nhóm dữ liệu – cũng làm việc trên hộp thoại nói trên. Nếu đặt Group Header/Footer là Yes, sẽ xuất hiện tiêu đề trên và dưới cho mỗi nhóm và do vậy có thể dùng tiêu đề, kẻ đầu cột cũng như tính toán ứng với mỗi nhóm. Có thể phân nhóm theo nhiều trường cũng như phân nhóm theo trường kết xuất. 2.4 Báo cáo chính phụ Cũng như trên form, khi tạo báo cáo với nguồn dữ liệu lấy từ nhiều bảng và phải đảm bảo đúng khuôn dạng thực tế, người ta phải dùng báo cáo chính-phụ, ví dụ phiếu xuất vật tư, lý lịch nhân viên, Cách tạo báo cáo chính – phụ cũng giống như trên Form, gồm các bước sau: - Tạo báo cáo chính. - Tạo báo cáo phụ như một báo cáo độc lập. - Mở đồng thời cửa sổ thiết kế báo cáo chính và cửa sổ Database. Kéo báo cáo phụ từ cửa sổ Database vào. - Mở thuộc tính của điều khiển Subreport trên báo cáo chính. Kiểm tra sự kết nối dữ liệu qua các thuộc tính LinkMasterFields và LinkChildFields. Chú ý rằng các thuộc tính LinkMasterFields và LinkChildFields còn xuất hiện cả trong biểu đồ. (Không cần tạo báo cáo phụ dạng biểu đò mà nên dùng Insert\Chart). Do vậy có thể liên kết dữ liệu ở dạng báo cáo chính và dữ liệu ở biểu đồ trong đó. 2.5 Một số ví dụ về thiết kế báo cáo Ví dụ 1: Thiết kế báo “Thẻ ra vào”, có nội dung được trình bày như sau: THẺ RA VÀO Số thẻ: Họ tên: Nam/nữ ẢNH Năm sinh: Đơn vị: Để có được nguồn dữ liệu cho báo cáo, cần thiết kế truy vấn: Tìm Mã NV, Họ tên, Năm sinh, Giới tính (Nam/nữ), Tên phòng. Dữ liệu cho truy vấn này được lấy từ bảng nhân viên và bảng Phòng.Vì thẻ ra vào được in cho từng nhân viên, có nghĩa là toàn bộ thông tin trên tờ thẻ được lặp lại với mỗi bản ghi về nhân viên nên toàn bộ các thông tin trên thẻ đều được để trong phần Detail. Thiết kế của thẻ ra vào được thể hiện như sau: Hệ quản trị CSDL Microsoft Access 2003 Trang 50 Bước 1: Mở cửa sổ thiết kế báo cáo (report) Từ cửa sổ Database, trong phần Objects chọn Report -> Create report in Design view - > Bước 2: Chọn nguồn dữ liệu cho báo cáo là bảng NHANVIEN Bước 3: Thiết kế các điều khiển trên báo cáo Kéo rê các trường cần hiển thị trên report (các trường này lấy từ nguồn dữ liệu của report – Field List) vào cửa sổ thiết kế, sau đó hiệu chỉnh lại các nhãn (Lables) và text box để hiển thị giới tính trên report như sau: Ví dụ 2: Tạo danh sách nhân viên toàn cơ quan nhận tiền, lý do nhận tiền và số tiền nhận nhập từ bàn phím, theo mẫu sau: DANH SÁCH NHÂN VIÊN TOÀN CƠ QUAN NHẬN TIỀN PHÒNG TỔ CHỨC STT HỌ TÊN SỐ TIỀN KÝ NHẬN Tổng toàn phòng PHÒNG TÀI VỤ STT HỌ TÊN SỐ TIỀN KÝ NHẬN Tổng toàn phòng Tổng cộng toàn cơ quan. Các bước thiết kế báo cáo như sau: - Tạo nguồn dữ liệu là một truy vấn tham số gồm các thông tin: tên phòng, họ tên nhân viên, số tiền nhận (số tiền là 1 tham số được nhập từ bàn phím). TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 51 - Đặt con trỏ trên báo cáo, click chuột phải -> Sorting and Grouping, cửa sổ Sorting and Grouping xuất hiện, trong cửa sổ này chúng ta thiết kế như sau: - Kéo rê các trường cần hiển thị trên report (các trường này lấy từ nguồn dữ liệu của report – Field List) vào cửa sổ thiết kế, sau đó hiệu chỉnh lại các nhãn (Lables) và thêm các các nhãn, các text box mới trên report như sau: Hệ quản trị CSDL Microsoft Access 2003 Trang 52 Chương 5 BÀI TẬP CSDL QUẢN LÝ SINH VIÊN Tạo Database với tên QLSV.MDB Câu 1: Tạo cấu trúc các Table như sau: a. DMKHOA (Danh mục khoa) Field Name Data Type Field Size Format Required MaKH Text 6 > Yes TenKhoa Text 30 Yes b. SINHVIEN (Sinh Viên) Field Name Data Type Field Size Format Required MaSV Text 6 > Yes HoSV Text 30 Yes TenSV Text 15 Yes GioiTinh Yes/No Yes NgaySinh Date/Time Short Date Yes NoiSinh Text 50 DiaChi Text 50 Quan Text 10 MaKH Text 6 Yes HocBong Number Long Integer c. MONHOC (Môn học) Field Name Data Type Field Size Format Required MaMH Text 6 > Yes TenMH Text 50 Yes SoTiet Number byte Yes d. KETQUA (Kết quả) Field Name Data Type Field Size Format Required MaSV Text 6 > Yes MaMH Text 6 > Yes Diem Number Single Lưu ý: Các Khóa chính trong bảng là in đậm và gạch dưới Câu 2: Thiết lập mối quan hệ (Relationships) cho các bảng như sau: TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 53 Câu 3: Nhập liệu cho các bảng như sau: (nhập bên nhánh 1 trước). Thứ tự nhập là: DMKhoa, SinhVien, MonHoc, KetQua Table:DMKhoa MaKhoa TenKhoa AV Anh văn TH Tin Học TR Triết Học VL Vật Lý Table: SinhVien MaSV HoSV TenSV GioiTinh NgaySinh NoiSinh DiaChi Quan MaKhoa HocBong A01 Nguyễn thị Hải Nữ 23/02/77 Sài Gòn 12 B Võ văn Tần Q3 TH 10000 A02 Trần văn Chính Nam 24/12/77 Sài Gòn 34 Nguyễn Bỉnh Khiêm Q1 TH 120000 A03 Lê Bạch Yến Nữ 21/02/96 Hà Nội 765 PasTeur Q3 TH 140000 A04 Trần anh Tuấn Nam 20/11/77 Long An 12 Điện biên Phủ BT AV 80000 A05 Trần thanh Triều Nam 13/02/77 Hà Nội 3 Nguyện thiện thuật Q3 AV 80000 A06 Nguyễn văn Chinh Nam 31/12/75 Sài Gòn 12 lê Lợi Q5 AV B01 Trần Thanh Mai Nữ 12/08/77 Bến tre 32 Lê lai Q1 TH B02 Trần thu Thủy Nữ 01/01/77 Sài gòn 45 Nguyễn Thái sơn BC TH B03 Lê thị Thanh Nử 01/01/75 Sài gòn 345 Nguyễn Kiệm Q1 AV B04 Trần trọng Kim Nam 20/12/77 Sài gòn 123 Lê văn sỹ Q1 AV 120000 C01 Tào hồng Thiên Nam 01/07/78 Sài gòn 56 Hòang Diệu TB TH C02 Hòang minh Châu Nam 03/05/76 Sài gòn 102 Kỳ Đồng TB AV C03 Phan quỳnh Hương Nữ 05/05/79 Sài gòn 234 Phạm văn hai GV AV Table : MONHOC MaMH TenMH SoTiet 01 Cơ sở Dữ liệu 45 02 Trí tuệ Nhân tạo 45 03 Truyền Tin 45 04 Đồ Họa 60 05 Văn Phạm 60 06 Đàm thọai 60 07 Vật Lý Nguyên Tử 45 08 Vật Lý Địa Cầu 45 09 Triết học Đông Phương 75 10 Triết Học Tây Phương 75 Table: KETQUA MaSV MaMH Diem A01 01 2 A01 03 7 A02 01 5 A02 03 10 Hệ quản trị CSDL Microsoft Access 2003 Trang 54 A02 05 9 A02 06 6.5 A03 01 5 A03 03 3 A03 05 10 A04 05 4 A05 06 8 A06 01 7 B01 03 3 B01 02 6 B02 04 10 B02 01 7 B03 03 6 B04 05 3 B04 06 4 Câu 4: Thực hiện các truy vấn sau: A- Sử dụng Select Query 1. Hiển thị danh sách sinh viên gồm các thông tin sau:Masv, HoSV, TenSV, NgaySinh, GioiTinh 2. Hiển thị danh sách sinh viên như câu 1 nhưng sắp xếp theo MaSV tăng dần 3. Hiển thị danh sách sinh viên gồm các thông tin sau: Masv, HoSV, TenSV, NgaySinh, GioiTinh, MaKH, HocBong (sắp xếp MaKH tăng dần, MaSV giảm dần) 4. Hiển thị bảng điểm sinh viên gồm các thông tin: MaSV, HoSV, TenSV, MaMH, Diem B- Sử dụng Select Query (Field, Sort, Show, Criteria) 1. Hiển thị danh sách sinh viên có tên là “Chính” 2. Hiển thị danh sách sinh viên có Nơi sinh là “Sài Gòn” 3. Hiển thị danh sách sinh viên có Nơi Sinh là “Hà Nội” và học Khoa “TH” 4. Hiển thị danh sách sinh viên có Họ là “Trần” và học Khoa “AV” 5. Hiển thị danh sách sinh viên có Mã số bắt đầu là B và học Khoa “AV” 6. Hiển thị danh sách sinh viên có Phái là “Nữ” và nơi sinh là “Bến tre” 7. Hiển thị danh sách sinh viên có ngàysinh>=01/01/1977 8. Hiển thị danh sách sinh viên không có Học Bổng 9. Hiển thị danh sách sinh viên có Học bổng và học Khoa “TH” C- Sử dụng Select Query với các cột tính tóan tự tạo ra thông qua các Hàm (IIF,MONTH, YEAR,DAY,TRIM, LEFT, RIGHT) 1. Hiển thị danh sách sinh viên gồm các cột sau: MaKH, MaSV, HoSV,TenSV, Namsinh, Tuoi, sắp xếp tuổi theo thứ tụ tăng dần. Biết rằng tuổi sẽ là Năm hiện Hành – Năm Sinh 2. Hiển thị danh sách sinh viên gồm các cột sau: MaSV, HoTenSV, Phai, MaKH, TenKhoa. biết rằng HoTenSV= HoSV & TenSV 3. Hiển thị danh sách sinh viên gồm các thông tin sau: MaSV, HoTenSV, Ngaysinh, NoiSinh nhưng chỉ lọc Sinh viên sinh vào tháng 12 4. Hiển thị danh sách sinh viên gồm các thông tin sau: MaSV, HoTenSV, Ngaysinh, NoiSinh nhưng chỉ lọc Sinh viên sinh vào tháng 11 và năm 1977 TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 55 5. Hiển thị danh sách sinh viên gồm các thông tin sau: MaSV, HoTenSV, HocBong, MaKhoa, TenKhoa, HocBongMoi. Biết rằng Học bổng mới = 10% +HocBong cũ 6. Hiển thị danh sách sinh viên gồm các thông tin sau: MaSV, HoTenSV,TenMH, Diem, ĐánhGia. Biết rằng nếu điểm <5 là Rớt, ngược lại là Đậu. D- Sử dụng Select Query với dòng ToTal (nhóm dữ liệu) và các Hàm: Count, Sum, AVG, Min, Max 1. Cho biết Tổng số Sinh viên của từng Quận, thông tin gồm: Quan, TongSoSV 2. Cho biết Tổng số Sinh viên của từng Khoa thông tin gồm:MaKH, TenKhoa, TongSoSV 3. Cho biết Học Bổng cao nhất, thấp nhất thông tin hiển thị: MaKhoa, TenKhoa,HBMax,HBMin 4. Cho biết Tổng số Sinh Viên Nam của từng Khoa là Bao nhiêu, thông tin gồm:MaKhoa, TenKhoa, TongSVNam 5. Cho biết Tổng số Sinh Viên Nữ của từng Khoa là Bao nhiêu, thông tin gồm:MaKhoa, TenKhoa, TongSVNu 6. Cho biết Độ tuổi trung bình của Sinh viên trong từng Khoa là Bao nhiêu thông tin gồm : MaKhoa, TenKhoa, TuoiTB 7. Hiển thị bảng điểm tổng hợp của sinh Viên gồm thông tin:MaSV, HoTenSV, DiemTB, TongSoMonThi. Trong đó DiemTB là điểm trung bình của các Môn thi, TongSoMonThi là tổng số các môn thi của các sinh viên.Điểm TB lấy 2 số lẻ 8. Cho biết Tổng Sinh viên của từng Môn Học thông tin gồm: MaSV, TenMH, TongSoSV 9. Cho biết điểm thi cao nhất của môn học Cơ sở dữ liệu E- Sử dụng Make- Table Query (truy vấn tạo Bảng) 1. Từ Bảng SinhVien hãy tạo ra 2 bảng SinhVien_TH và SinhVien_AV trong đó chứa các Sinh viên của Khoa Tin Học và Anh văn trong đó sắp xêp MASV tăng dần 2. Từ bảng SinhVien, KetQua, MonHoc sao chép thành bảng BangDiemSV gồm các thông tin: MaSv, HoTenSV, TenMH, Diem, KetQua. Trong đó Kết quả sẽ là Đậu nếu Điểm >=5 và ngược lại là Rớt 3. Từ Bảng DMKHOA sao chép thành bảng HocBongKhoa gồm các thông tin: MaKh, TenKhoa, TongHocBong. Trong đó tổng học bổng là tổng số học bổng của sinh viên trong từng Khoa 4. Từ bảng SinhVien và KetQua sao chép thành Bảng DiemTB gồm các thông tin: MaSV, TenSV, TongDiem, TongMT, DiemTB. Trong đó Tổng điểm là tổng điểm thi của từng sinh viên, TongMT là tổn số ôn thi của từnh Sinhviên, DiemTB là điểm trung bình của từng Sinh viên được tính bằng TongDiem/TongMT F- Sử dụng Update Query (truy vấn cập nhật) 1. Tăng học bổng cho sinh viên Khoa Tin học mỗi sinh viên là 50000 2. Cộng thêm 0.5 điểm thi môn học Cơ sở dữ liệu cho những sinh viên có điểm thi thấp hơn 5 G- Sử dụng Append Query (truy vấn nối thêm) 1. Thêm một Khoa mới gồm thông tin : “KT”, “Kinh Tế” vào bảng DMKhoa 2. Thêm một Môn học Mới gồm thông tin MaMH= “11”, Tên môn học =”Access”, Sốtiết = 90 Hệ quản trị CSDL Microsoft Access 2003 Trang 56 H- Sử dụng Delete Query (truy vấn xóa) 1. Trong bảng SinhVien_TH xóa các sinh viên có Nơi sinh là Sài Gòn 2. Trong bảng sinhVien_AV xóa các sinh viên có năm sinh là 1977 và ở Q3 I- Sử dụng Crosstab Query (truy vấn chéo):Thống kê điểm sinh viên theo dạng sau: MaSV Ho và Tên Cơ sở dữ liệu Đàm Thọai Đồ Họa Trí tuệ Nhân Tạo Truyền Tin Văn Phạm A01 Nguyễn thị Hải 2 9 A02 Trần văn Chính 7.5 6.5 10 9 A03 Lê Bạch Yến 5 3 10 A04 Trần Anh Tuấn 4 A05 Trần Thanh Triều 8 A06 Nguyễn văn Chinh 7 J- Sử dụng Truy vấn con: 1. Cho biết danh sách các sinh viên thi môn Cơ sở dữ liệu với số điểm lớn nhất 2. Cho biết danh sách các sinh viên trong Khoa Tin Học có điểm thi thấp nhất Câu 5: a) Tạo Form theo mẫu sau và cho phép nhập dữ liệu vào bảng DMKHOA: b) Tạo Form theo mẫu sau và cho phép nhập dữ liệu vào bảng SINHVIEN: TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 57 c) Tạo Form theo mẫu sau: Form chính và Form phụ (Form chính lấy từ bảng DMKHOA, Form phụ lấy từ bảng SINHVIEN) d) Tạo Form theo mẫu sau :đặt tên F_TimSV, đặt tên Textbox: txtMaSV Yêu cầu: B1-Thiết kế Query như sau:đặt tên là Q_Indiem B2 -Thiết kế Report đặt tên là R_bangdiem lấy dữ liệu từ Query trên, mẫu Report như sau: Hệ quản trị CSDL Microsoft Access 2003 Trang 58 B3- Thiết kế Macro đặt tên là M_Indiem cho phép mở Report trên B4 - Ở nút In trong Form trong Properties chuyển sang tag Event chọn sự kiện On Click M_Indiem TRUNG TÂM TIN HỌC - NGOẠI NGỮ MỸ Á ĐC: 5 Ngô Gia Tự - Hội An, ĐT: 916740 Trang 59 MỤC LỤC Chương 1  Giới thiệu HQT CSDL Access .................................................................... 2  1.  Một số khái niệm cơ bản .................................................................................... 2  1.1  Khái niệm HQT CSDL quan hệ ...................................................................... 2  1.2  Các tính năng của HQT CSDL quan hệ ......................................................... 2  2.  HQT CSDL Access ............................................................................................ 3  2.1  Khả năng và ứng dụng của Access ................................................................. 3  2.2  Chế độ làm việc của Access ........................................................................... 3  2.3  Ngôn ngữ định nghĩa và thao tác dữ liệu........................................................ 3  3.  Môi trường làm việc của Microsoft Access ....................................................... 3  3.1  Khởi động Access ........................................................................................... 3  3.2  Hệ thống menu chính của Access ................................................................... 4  3.3  Các thành phần của CSDL Access ............................................................... 5  Chương 2  Tạo lập Cơ sở dữ liệu .................................................................................. 6  1.  Tạo CSDL mới ................................................................................................... 6  1.1  Tạo CSDL trống .............................................................................................. 6  1.2  Tạo CSDL theo mẫu có sẵn ............................................................................ 6  2.  Mở cơ sở dữ liệu ................................................................................................ 6  3.  Tạo bảng ............................................................................................................. 7  3.1  Các kiểu dữ liệu .............................................................................................. 7  3.2  Tạo cấu trúc bảng ........................................................................................... 7  4.  Ràng buộc dữ liệu khi thiết kế bảng .................................................................. 9  5.  Tạo quan hệ giữa các bảng ............................................................................... 10  Chương 3  Thiết kế truy vấn ....................................................................................... 15  1.  Tổng quan về truy vấn ..................................................................................... 15  2.  Các toán tử trong Access ................................................................................. 15  3.  Thiết kế truy vấn QBE ..................................................................................... 19  3.1  Các bước để tạo truy vấn QBE: ................................................................... 19  3.2  Một số truy vấn QBE .................................................................................... 20  4.  Thiết kế truy vấn SQL ...................................................................................... 31  4.1  Cách mở cửa sổ thiết kế truy vấn SQL ......................................................... 31  4.2  Cú pháp của câu lệnh SQL ........................................................................... 31  4.3  Kết nối các bảng ........................................................................................... 32  Hệ quản trị CSDL Microsoft Access 2003 Trang 60 4.4  Sử dụng các hàm gộp, GROUP BY, HAVING ........................................... 34  4.5  Truy vấn lồng nhau ...................................................................................... 34  Chương 4  Thiết kế biểu mẫu, báo cáo ....................................................................... 36  1.  Thiết kế biểu mẫu (form) ................................................................................. 36  1.1  Thiết kế biểu mẫu mới .................................................................................. 36  1.2  Thiết kế các điều khiển trên biểu mẫu .......................................................... 38  1.3  Các thuộc tính của biểu mẫu ........................................................................ 44  1.4  Biểu mẫu chính phụ ...................................................................................... 44  2.  Thiết kế báo cáo ............................................................................................... 46  2.1  Tạo báo cáo mới ........................................................................................... 46  2.2  Thiết kế các một số dạng báo cáo ................................................................ 47  2.3  Sắp xếp và phân nhóm trên báo cáo ............................................................. 48  2.4  Báo cáo chính phụ ........................................................................................ 49  2.5  Một số ví dụ về thiết kế báo cáo ................................................................... 49  Chương 5  BÀI TẬP CSDL QUẢN LÝ SINH VIÊN ................................................ 52 

Các file đính kèm theo tài liệu này:

  • pdftailieu.pdf