Giáo trình Lập trình quản lý bao gồm 7 chương, cụ thể như sau: Tổng quan về Hệ quản trị cơ sở dữ liệu MicroSoft Access; Xây dựng cơ sở dữ liệu; Truy vấn dữ liệu; Thiết kế giao diện; Thiết kế báo cáo; Macro; Module. Mời các bạn cùng tham khảo!
Giới thiệu về Hệ quản trị CSDL Microsoft Access
Microsoft Access là hệ quản trị cơ sở dữ liệu quan hệ cho phép lưu trữ dữ liệu bên ngoài vào máy tính dưới dạng các bảng có cấu trúc và hỗ trợ tính toán, xử lý dữ liệu ngay trên các bảng đã lưu Phần mềm giúp tạo quan hệ giữa các bảng, thực hiện truy vấn để trích xuất thông tin cần thiết, và xây dựng biểu mẫu cùng báo cáo để trình bày dữ liệu một cách trực quan Với khả năng quản lý dữ liệu hiệu quả và dễ sử dụng, Access thích hợp cho các dự án quản lý dữ liệu quy mô nhỏ đến trung bình, từ danh sách khách hàng, theo dõi tồn kho đến quản lý dữ liệu giảng dạy.
Là tập hợp dữ liệu được lưu trữ một cách có tổ chức nhằm giúp việc xem, tìm kiếm, lấy thông tin được nhanh chóng và chính xác
1.1.2 Mô hình Cơ Sở Dữ Liệu quan hệ:
Dữ liệu bên ngoài được nhập vào máy tính và thể hiện dưới dạng bảng dữ liệu Mỗi bảng có nhiều cột và nhiều dòng Mỗi cột mang tên riêng mô tả một thuộc tính của thực thể mà chúng ta quản lý, được gọi là trường hoặc vùng (field) Mỗi dòng mô tả thông tin chi tiết về các thuộc tính của một đối tượng cụ thể trong quản lý, được gọi là một bản ghi hoặc một bộ (record).
1.1.3 Hệ Quản Trị Cơ Sở Dữ Liệu quan hệ:
Là phần mềm dùng để tạo lập Cơ Sở Dữ Liệu theo mô hình Cơ Sở Dữ Liệu quan hệ và thao tác trên CSDL đó
1.1.4 Đặc điểm của Microsoft Access
Hỗ trợ cơ chế tự động kiểm tra khóa chính, miền giá trị của dữ liệu bên trong các bảng
Với công cụ trình thông minh (wizard ) cho phép người dùng sử dụng có thể thiết kế các đối tượng trong Microsoft Access một cách nhanh chóng
QBE (Query By Example) là công cụ hỗ trợ truy vấn dữ liệu cho người dùng mà không cần quan tâm đến cú pháp của ngôn ngữ SQL Với giao diện trực quan, người dùng có thể mô tả dữ liệu mong muốn thông qua ví dụ và hệ thống sẽ tự động chuyển đổi thành câu lệnh SQL chuẩn, giúp tiết kiệm thời gian viết truy vấn và giảm thiểu sai sót cú pháp QBE tối ưu hóa trải nghiệm người dùng khi thực hiện các truy vấn và trả về kết quả nhanh chóng, phù hợp cả với người mới bắt đầu lẫn nhà phân tích dữ liệu làm việc với cơ sở dữ liệu lớn.
Đối tượng kết nhúng OLE cho phép người dùng nhúng nội dung từ các ứng dụng khác vào cơ sở dữ liệu Access một cách liền mạch, tăng tính linh hoạt cho quản trị dữ liệu Với OLE, bạn có thể chèn các đối tượng như tài liệu Word, bảng tính Excel, tập tin âm thanh và hình ảnh vào các trường trong bảng Access, giúp trình bày và xử lý dữ liệu trở nên trực quan hơn Người dùng có thể chọn nhúng hoặc liên kết nội dung từ nguồn gốc, tùy nhu cầu về tính đồng bộ và khả năng chỉnh sửa Tính năng nhúng OLE tối ưu hóa việc tích hợp nội dung đa phương tiện và tài liệu trong Access, hỗ trợ quản trị dữ liệu đa dạng mà không phải lưu trữ rời rạc ngoài cơ sở dữ liệu.
Tất cả các đối tượng của ứng dụng được lưu trong tập tin cơ sở dữ liệu duy nhất và có phần mở rộng là mdb
Start \ Programs \ Microsoft Office \ Microsoft Access 2013 hay khởi động shortcut Microsoff Access 2013 từ Desktop
1.1.6 Các thành phần của Microsoft Access
Trong cửa sổ làm việc của Access gồm có những thành phần cơ bản của một ứng dụng trên Windows (hình 1.1)
Hình 1 1 Cửa sổ Navigation Pane
Thanh Ribbon chứa các Tab lệnh : Home, Create, External Data, và Database Tools, mỗi Tab chứa các nhóm lệnh liên quan
Tab Home chứa các chức năng sau :
Chọn chế độ hiển thị
Sao chép và dán từ clipboard
Thao tác trên các record
Lọc sắp xếp dữ liệu trên record
Tab Create chứa các chức năng sau :
Tạo một Table mới sử dụng Template
Tạo mới một Table trống ở chế độ Design view
Tạo mới một Form từ Table hoặc Query
Tạo mới một Report từ Table hoặc Query
Tạo mới một Macro hoặc Module
Tab External Data chứa các chức năng sau :
Import hoặc liên kết dữ liệu với bên ngoài
Thu thập và cập nhật dữ liệu từ Email
Làm việc với danh sách offline SharePoint
Tab Database Tools chứa các chức năng sau :
Chạy Visual Basic hay Macro
Tạo và hiển thị mối liên kết giữa các bảng
Ẩn hiển các đối tượng
Di chuyển dữ liệu tới MS – SQL sever hoặc tới cơ sở dữ liệu khác
Microsoft Access’s Navigation Pane is a key component: a window in the workspace that lists essential database objects—Tables, Queries, Forms, Reports, Macros, and Modules—making it easy to navigate and manage your database This feature helps users quickly access data and application elements, improving productivity and workflow.
Tạo tập tin cơ sở dữ liệu
Tạo một cơ sở dữ liệu mới rỗng:
− Tại cửa sổ khởi động, click nút Blank Desktop Database
− File name: nhập tên tập tin cơ sở dữ liệu, trong Access 2013, tập tin cơ sở dữ liệu được lưu với tên có phần mở rộng là accdb
Để lưu tập tin mới, nếu không chỉ định đường dẫn, hệ thống sẽ tự động lưu vào thư mục Documents; ngược lại, bạn có thể nhấp vào biểu tượng thư mục để chọn đúng vị trí lưu tập tin, rồi nhấn nút Create để tạo tập tin cơ sở dữ liệu.
Các thao tác trên tập tin cơ sở dữ liệu
1.3.1 Mở một cơ sở dữ liệu
Tại cửa sổ khởi động, trong tab File\ Open…
Chọn tập tin cơ sở dữ liệu cần mở\Open
1.3.2 Thu gọn và chỉnh sửa cơ sở dữ liệu (Compact & Repair Database)
Khi tạo thêm đối tượng trong cơ sở dữ liệu thì dung lượng của tập tin cơ sở dữ liệu sẽ tăng lên, khi xóa một đối tượng thì vùng nhớ của nó sẽ rỗng, nhưng không sử dụng
6 được Chức năng Compact & Repair Database giúp thu hồi lại phần bộ nhớ bị rỗng, làm cho tập tin cơ sở dữ liệu gọn lại
− Mở cơ sở dữ liệu cần thu gọn và chỉnh sửa
− File \Info Chọn nút Compact & Repair Database
Mở cơ sở dữ liệu ở chế độ Exclusive bằng cách:
− Chọn tab File\ Chọn lệnh Info\ Click nút Encrypt with Password
− Mở cơ sở dữ liệu ở chế độ Exclusive: File\ Open\ Open Exclusive
− Trong tab File, chọn lệnh Info\ Click nút Decrypt Database
XÂY DỰNG CƠ SỞ DỮ LIỆU
Khái niệm cơ sở dữ liệu
Một cơ sở dữ liệu Access bao gồm tập hợp các bảng dữ liệu có quan hệ chặt chẽ, phù hợp để phục vụ lưu trữ dữ liệu cho một ứng dụng quản lý
Một cơ sở dữ liệu quản lý sinh viên được xây dựng từ bốn bảng chủ chốt là SINHVIEN, LOP, MONHOC và KETQUA, được liên kết hợp lý để phục vụ việc lưu trữ và truy vấn dữ liệu cho ứng dụng quản lý sinh viên Bảng SINHVIEN lưu giữ thông tin cá nhân và mã sinh viên, bảng LOP quản lý thông tin lớp học, bảng MONHOC quản lý danh sách môn học, còn bảng KETQUA ghi nhận kết quả thi và điểm số của từng sinh viên trên từng môn học Các bảng này được kết nối bằng khóa ngoại để liên kết hồ sơ sinh viên với lớp, môn học và kết quả học tập, cho phép thực hiện các thao tác như thêm/sửa sinh viên, quản lý danh sách lớp, quản lý môn học và tổng hợp kết quả học tập Thiết kế chuẩn hóa và tối ưu hóa cho lưu trữ dữ liệu sinh viên giúp hệ thống quản lý sinh viên vận hành hiệu quả và mở rộng cho các chức năng tương lai của ứng dụng.
Đối tượng Table
Bảng là thành phần cơ sở dữ liệu quan trọng nhất, được thiết kế dưới dạng bảng để lưu trữ chi tiết thông tin về các thực thể mà chương trình quản lý quan tâm Thông tin của mỗi loại thực thể được lưu trữ trong một bảng riêng, và số lượng bảng phụ thuộc vào số loại thực thể mà hệ thống xử lý Bảng ghi nhận tất cả các biến động thông tin phát sinh về các thực thể trong quá trình làm việc, giúp tối ưu hóa truy vấn và báo cáo dữ liệu.
Click chọn đối tượng Table trong cửa sổ Navigation Panel
Chọn Tab Create trên Ribbon
Chọn biểu tượng Table Design trong nhóm Table (Hình 2 1)
Hình 2 1 Tab Create trên thanh Ribbon
Xuất hiện một bảng mới để tạo cấu trúc bảng
Nhập tên field tương ứng vào Field Name và chọn kiểu dữ liệu tương ứng trong khung Data Type Tạo khóa chính cho field trên Tab Design
Hình 2 2 Màn hình hướng dẫn tạo khóa chính cho bảng
Nhấn CTRL +S hoặc click vào biểu tượng Save trên thanh Quick Access để lưu lại cấu trúc bảng (Hình 2 3)
Hình 2 3 Màn hình tạo cấu trúc bảng
Bạn có thể tạo bảng mới bằng cách chọn Table hoặc Table Templates và nhập dữ liệu ở chế độ Datasheet; MS Access sẽ tự động gán kiểu dữ liệu phù hợp cho từng trường khi người dùng nhập dữ liệu Nếu bạn muốn chỉnh sửa cấu trúc bảng, hãy chọn Design View để thực hiện các thay đổi.
Cách hiển thị qua lại giữa Datasheet và Design View :
Chọn tab Home / click vào biểu tượng View (xem Hình 2 4)
Hình 2 4 Chuyển đổi dạng hiển thị của bảng 2.2.1 Cấu trúc của Table
Field (cột hoặc trường) là cấu trúc nền tảng để xây dựng bảng trong cơ sở dữ liệu; mỗi bảng có ít nhất một field Mỗi field phải có một kiểu dữ liệu, và kiểu dữ liệu này xác định các giá trị có thể được lưu trữ trong field đó.
Record (dòng hoặc mẫu tin ) : Table lưu trữ dữ liệu theo từng record, mỗi record sẽ chứa giá trị của tất cả các field có trong bảng
Khóa chính (Primary Key) là tập hợp một hoặc nhiều cột trong một bảng, trong đó dữ liệu ở các cột này là duy nhất và không trùng lặp, đồng thời không được phép rỗng (NULL) Khóa chính đóng vai trò nhận diện duy nhất cho mỗi bản ghi và thường được dùng để tham chiếu giữa các bảng trong thiết kế cơ sở dữ liệu quan hệ.
Foreign key (khóa ngoại ) : Là một hay nhiều cột và các cột này là khóa chính của một bảng khác
Field Name (tên cột) : Giá trị của field name phải là duy nhất trong mỗi bảng
Data Type : Kiểu dữ liệu của Field Name (Xem Hình 2 5, bảng 2.1)
Hình 2 5 Các kiểu dữ liệu của Field Name
Text là kiểu chuỗi có giới hạn tối đa 255 ký tự, có thể lưu số hoặc chữ, nhưng không thể dùng để tính toán Memo là kiểu văn bản cho phép ghi chú dài hơn Text, với giới hạn ký tự lớn hơn và phù hợp cho mô tả chi tiết hoặc lưu trữ nội dung văn bản dài mà không bị giới hạn bởi 255 ký tự.
1GB cho ký tự) Number Kiểu số (số nguyên hoặc số thực)
Date / Time Kiểu ngày tháng năm
Currency Kiểu số có định dạng theo tiền tệ
AutoNumber Kiểu số (tự động tăng khi thêm một mẫu tin mới)
Yes/No Kiểu logic(chỉ có 2 giá trị là TRUE hay FALSE )
OLE Object Kết nối đến một đối tượng file khác ( word , Excel, picture
…) tối đa 1GB Hyperlink Kiểu chuỗi chỉ đường dẫn đến một địa chỉ
Attachment Lưu trữ file đính kèm tối đa 2GB
Lookup Wizard Tạo một cột để chọn giá trị và tìm kiếm từ một bảng khác
Bảng 2 1 Các kiểu dữ liệu của Field Name
Description (mô tả cột ): Giải thích ý nghĩa của field và được hiển thị dưới thanh trạng thái khi nhập dữ liệu (không bắt buộc )
1.2.2 Một số thuộc tính của Field (cột hoặc trường )
Field Size (độ rộng của cột) xác định kích thước tối đa có thể lưu trữ trong một cột và chỉ áp dụng cho các kiểu dữ liệu Text hoặc Number Việc thiết lập kích thước này giúp kiểm soát dung lượng lưu trữ, tối ưu hóa hiệu suất xử lý dữ liệu và đảm bảo dữ liệu được lưu trữ đúng giới hạn mong muốn (Xem Hình 2.6)
Hình 2 6 Các thuộc tính cơ bản của field
Với kiểu Text: Xác định số ký tự tối đa của chuỗi
Với kiểu Number : chọn các kiểu sau
Byte: Kiểu số nguyên, chứa con số có giá trị từ ( 0-> 225 )
Integer: Kiểu số nguyên, trong khoảng -32000->32000
Long integer: Kiểu số nguyên dài
Format (định dạng ): Thay đổi dạng hiển thị giá trị của Field
Tùy theo kiểu dữ liệu của Field mà ta có các dạng định dạng khác nhau
Genaral Number Đúng số đã nhập vào
Currency Có dấu phân cách và dấu $
Fixed Có dấu phân cách hàng ngàn và thập phân
Standard Có phân cách hàng ngàn , số lẻ
Scientific Số khoa học (số mũ )
Bảng 2 2 Các định dạng của kiểu Number
Kiểu Date/Time : Xem bảng 2.3
Genaral Date Ngày giờ đầy đủ
Long Date Thứ , tháng , ngày , năm
Medium Date Ngày tháng năm
Short Date Ngày – tháng – năm
Long Time Giờ phút giây AM/PM
Short Time Giờ phút dd/mm/yyyy Dạng tự tạo
Bảng 2 3 Các định dạng của kiểu Date/Time
> Làm thay đổi chữ IN
< Làm thay đổi chữ thường
@ dữ liệu bắt buộc nhập
& dữ liệu không bắt buộc nhập
Bảng 2 4 Các định dạng của kiểu Text
Decimal Places: Chỉ có khi kiểu dữ liệu của field là Number, xác định số chữ số lẻ sau phần thập phân
Input mask (mặt nạ nhập liệu) là công cụ định dạng dữ liệu được dùng để bắt buộc người dùng khi nhập liệu vào bảng phải tuân theo đúng định dạng đã quy định Mặt nạ nhập liệu giúp đảm bảo dữ liệu được thu thập đồng nhất và chính xác, giảm thiểu sai sót và nâng cao chất lượng dữ liệu cho bảng Khi người dùng nhập thông tin, hệ thống sẽ kiểm tra và bắt buộc theo các quy tắc đã thiết lập cho từng trường, ví dụ ngày tháng, số điện thoại hoặc mã định danh Để tham khảo chi tiết các quy tắc và kiểu định dạng áp dụng cho mặt nạ nhập liệu, xem bảng 2.5.
0 Ký số 0->9, không cho phép nhập dấu
9 Ký số 0->9, và khoảng trắng, không cho phép nhập dấu
# Ký số 0->9 , và khoảng trắng, cho phép nhập dấu
L Ký tự A->Z bắt buộc nhập dữ liệu
? Ký tự A->Z không bắt buộc nhập dữ liệu
A Ký tự và ký số, bắt buộc nhập dữ liệu a Ký tự và ký số, không bắt buộc nhập dữ liệu
& Bất kỳ ký tự nào, hoặc khoảng trắng, bắt buộc nhập dữ liệu
C Bất kỳ ký tự nào, hoặc khoảng trắng, không bắt buộc nhập dữ liệu
< Chuyển đổi các dữ liệu chuỗi sang chữ thường
> Chuyển đổi các dữ liệu chuỗi sang chữ IN
Password Thể hiện các ký tự * khi nhập dữ liệu (mật khẩu )
Bảng 2 5 Bảng định dạng mặt nạ dữ liệu
Caption( tiêu đề cột ): Nội dung của tiêu đề sẽ hiển thị khi đang mở table để nhập liệu.( Ví dụ : Mã khoa )
Default Value: Giá trị mặc định khi chưa nhập dữ liệu vào ( ví dụ : Mã khoa có kiểu Number, có giá trị mặc định là 0)
Validation Rule(quy tắc hợp lệ ): Kiểm tra miền giá trị của field khi thay đổi
Validation Text(thông báo lỗi ):Xuất ra chuỗi thông báo khi giá trị của field vi phạm nội dung được xây dựng trong thuộc tính Validation Rule
Required(yêu cầu): Nếu chọn là Yes thì khi thêm một Record mới giá trị của field phải được nhập, không được để trống
Allow Zero Length(cho phép chuỗi rỗng ): (Dùng cho field kiểu Text) Nếu là
Yes, giá trị của Field có thể là chuỗi rỗng, ngược lại, không chấp nhận chuỗi rỗng
Thiết kế dữ liệu kiểu dữ liệu Lookup wizard
Chọn kiểu dữ liệu Lookup Wizard trongk hộp thoại Data Type Xuất hiện hộp thoại lookup wizard như Hình 2 7
Hình 2 7 Hộp thoại Lookup Wizard bước 1
Chọn mục chọn như Hình 2 7
Chọn bảng hoặc Query cần đưa vào danh sách như Hình 2 8
Hình 2 8 Hộp thoại Lookup Wizard bước 2
Chọn các trường của Bảng hoặc query sẽ được hiển thị trên danh sách để đưa vào khung Selected Field như Hình 2 9
Hình 2 9 Hộp thoại Lookup Wizard bước 3
Chọn Field cần sắp xếp, nếu không sắp xếp thì bỏ trống như Hình 2 10
Hình 2 10 Hộp thoại Lookup Wizard bước 4
Xác định độ rộng của Field bằng cách kéo rê chuột trực tiếp trên cột hiển thị trong Hình 2 11
Hình 2 11 Hộp thoại Lookup Wizard bước 5
Đặt tên Field vào khung như Hình 2 12
Hình 2 12 Hộp thoại Lookup Wizard bước 6
Click Finish để hoàn tất
Khi đó xuất hiện hộp thoại yêu cầu lưu lại cấu trúc bảng như Hình 2 13
Hình 2 13 Hộp thoại lưu cấu trúc bảng
Chọn Yes để đồng ý lưu kiểu dữ liệu
Trong Access, một trường lưu kiểu Lookup Wizard nhưng trên bảng thiết kế vẫn có thể hiển thị ở dạng Text Nguyên nhân là trường được tham chiếu để lấy giá trị có kiểu dữ liệu là Text, ví dụ trường MaKhoa có kiểu Text, chứ không phải hiển thị Lookup Wizard Hiểu được điều này giúp bạn nhận biết cách dữ liệu liên kết hoạt động và tại sao giao diện thiết kế lại cho thấy Text thay vì Lookup Wizard.
1.2.3 Các thao tác trên Table
Tạo khóa chính (Primary key) :
Chọn một hoặc nhiều cột làm khóa chính
Chọn Tab Design trên thanh Ribbon
Chọn biểu tượng Primary Key
Hoặc Right click vào các cột cần tạo khóa / chọn Primary Key
Lưu lại cấu trúc bảng :
Click vào biểu tượng đĩa mềm trên thanh Quick Access
Khi tạo cấu trúc bảng mà ta không tạo khóa chính cho bảng thì Access sẽ thông báo hỏi bảng có hay không có khóa chính như hình 2.13
Hình 2 14 Hộp thoại thông báo chưa có khóa chính
Chọn Yes khi muốn Access tự động tạo khóa chính cho bảng (số tự động tăng )
Chọn No khi xác nhận không cần khóa chính tự động hoặc sẽ thêm khóa chính sau
Mở bảng ở chế độ thiết kế và cập nhật dữ liệu :
Xem hình 2.4 cách chuyển đổi qua lại giữa chế độ Design View và Datasheet
Sửa đổi cấu trúc bảng (Design View)
Chèn thêm một cột vào trong bảng: Chọn Tab Design trên thanh Ribbon sau đó chọn Insert Rows trong nhóm Tools
Xóa một hoặc nhiều cột: Chọn Tab Design trên thanh Ribbon sau đó chọn Delete Rows trong nhóm Tools
Sao chép cột : Khi các cột có kiểu dữ liệu và định dạng giống nhau thì ta có thể sao chép cột rồi thực hiện chỉnh sửa tên cột
Thay đổi vị trí các cột : Chọn các cột cần thay đổi vị trí / Kéo rê chuột đến vị trí mới
Mở bảng ở chế độ Datasheet View
Chọn font, size,… trong nhóm Font
Thay đổi chiều cao của các dòng và cột
Thực hiện kéo rê trực tiếp trên các biên của dòng và cột
Ẩn hoặc hiện các cột
Right click tại tên cột \ chọn Hide Column
Right click tại tên cột \ chọn Unhide Column
Hình 2 15 Hộp thoại Ẩn/ hiện cột
Chọn cột cần hiển thị như Hình 2 15 (Cột chưa được đánh dấu check)
Thay đổi vị trí các cột
Đánh dấu các cột muốn di chuyển
Kéo rê chuột đến vị trí mới
Khóa cột khi xem dữ liệu
Right click tại cột cần khóa
Right click tại cột cần khóa
Chèn đối tượng OLE Object vào bảng
Mở bảng ở chế độ Datasheet View
Right click tại ô có kiểu dữ liệu OLE Object cần chèn
Chọn đường dẫn đến đối tượng
Thiết lập mối quan hệ giữa các bảng
Quan hệ 1 – 1 (One-to-One)
Mỗi mẩu tin trong bảng này liên hệ với một mẩu tin trong bảng kia; nói cách khác, hai bảng sử dụng khóa chính của mình để liên kết với khóa chính của bảng kia Đây là cách biểu diễn mối quan hệ giữa hai bảng trong cơ sở dữ liệu quan hệ, nhờ đó dữ liệu có thể được ghép nối và truy vấn hiệu quả thông qua khóa chính.
Thí dụ: Quan hệ giữa Table T_HOSONV (danh sách nhân viên) với
T_CHAMCONG06 (chấm công tháng 06 cho nhân viên) là quan hệ 1-1
Quan hệ 1 – N (One-to-Many):
Một mẩu tin trong bảng này có quan hệ một-nhiều với nhiều mẩu tin ở bảng kia; nói cách khác, bảng này dùng khóa chính để liên kết với trường khóa ngoại ở bảng kia, tạo liên kết dữ liệu một cách nhất quán giữa hai bảng và giúp ghép dữ liệu dễ dàng hơn khi cần Thiết kế này giúp lưu trữ thông tin ở các bảng riêng biệt nhưng vẫn đảm bảo tính toàn vẹn và tối ưu cho việc truy vấn dữ liệu liên quan giữa các bảng.
Thí dụ: Quan hệ giữa Table KHOA (Danh mục khoa) và LOP (Danh sách lớp) là quan hệ một nhiều
Chọn Tab Database Tools trên thanh Ribbon\ Chọn biểu tượng Relationships Xuất hiện hộp thoại Show Table như Hình 2 16
Hình 2 16 Hộp thoại hiển thị các bảng
Chọn các Table muốn tạo quan hệ trong hộp thoại Show Table, nhấn nút Add để chèn các table vào cửa sổ quan hệ như Hình 2 17
Hình 2 17 Cửa sổ tạo quan hệ các bảng
Bạn có thể thiết lập quan hệ giữa các bảng bằng cách kéo và thả trường (field) từ bảng này sang bảng kia Thao tác này gán trường làm khóa chính ở bảng A sang trường tương ứng làm khóa ngoại ở bảng B, từ đó tạo liên kết dữ liệu và quan hệ giữa các bảng Thiết lập quan hệ bằng kéo thả giúp trực quan hóa cấu trúc dữ liệu, tăng tính nhất quán và dễ quản trị cho cơ sở dữ liệu Khi liên kết khóa chính với khóa ngoại, các bảng sẽ được kết nối một cách chặt chẽ, hỗ trợ truy vấn và đảm bảo tính toàn vẹn dữ liệu Việc sử dụng tính năng này tiết kiệm thời gian thiết kế mô hình dữ liệu và cải thiện hiệu suất quản lý dữ liệu.
Ví dụ field MaKhoa ở bảng KHOA và field MaKhoa ở bảng LOP
Lúc này cửa sổ thiết lập quan hệ sẽ xuất hiện như Hình 2 18
Hình 2 18 Hộp thoại thiết lập quan hệ 1-N
- Enforce Referential Integrity : Chọn/không chọn tạo mối quan hệ 1 – N
Cascade Update Related Fields cho phép tự động cập nhật các trường liên quan khi giá trị của một trường ở bảng một thay đổi Bạn có thể bật hoặc tắt tùy chọn cascade update; khi chọn cascade update, mỗi lần chỉnh sửa giá trị của trường ở bảng một sẽ khiến các trường liên kết ở bảng nhiều tự động được cập nhật theo để duy trì tính nhất quán dữ liệu giữa bảng một và bảng nhiều trong mối quan hệ một-nhiều Ngược lại, bỏ chọn cascade update sẽ ngăn các cập nhật tự động trên bảng liên kết khi có thay đổi ở bảng một, và dữ liệu ở bảng nhiều sẽ không bị ảnh hưởng Việc cấu hình đúng cascade update giúp giảm công sức cập nhật thủ công, đảm bảo dữ liệu đồng bộ và tránh lệch dữ liệu giữa các bảng.
Cascade Delete Related Records: Decide whether to enable cascade delete for a one-to-many relationship When you delete a record on the parent (one) table, enabling cascade delete will automatically remove all related records on the child (many) table, ensuring referential integrity and simplifying cleanup If cascade delete is not enabled, deleting the parent record may be blocked or leave orphaned child records, requiring manual deletion of related records first This behavior is a fundamental consideration in database design and foreign key constraints, helping maintain data consistency across related tables.
Nếu khóa chính gồm nhiều trường và khóa ngoại gồm nhiều trường thì ta chọn đúng các trường đó trong bảng Table/Query để thiết lập quan hệ, như được minh họa trong Hình 2.20, ví dụ Hình 2.19.
Hình 2 19 Ví dụ tạo mối quan hệ giữa các bảng có khóa chính và khóa ngoại gồm nhiều field
Hình 2 20 Tạo quan hệ 1-N giữa bảng PHIEU và CTPHIEU
Quy trình thiết kế cơ sở dữ liệu :
Tạo mới cơ sở dữ liệu
Tạo cấu trúc bảng (thiết lập các thuộc tính cho các field , tạo khoá chính cho field )
Thiết lập quan hệ ràng buộc giữa các bảng
Nhập dữ liệu vào bảng (Bảng có quan hệ đầu 1 nhập trước , bảng có quan hệ đầu nhiều nhập sau )
Một số lỗi thông dụng khi nhập liệu :
Hình 2 21 Lỗi sai kiểu dữ liệu
Giá trị nhập vào không tương thích với kiểu dữ liệu của trường đã chỉ định , chọn
Enter new value để nhập lại các giá trị đúng với kiểu dữ liệu đã khai báo
Hình 2 22 Lỗi khóa chính rỗng
Khóa chính không chứa giá trị rỗng Lỗi do Không nhập giá trị cho khoá chính
Hình 2 23 Lỗi trùng khóa chính
Thông báo trùng khóa chính xuất hiện khi giá trị của trường khóa chính bị trùng với một giá trị đã có trên bảng Lỗi này bắt nguồn từ dữ liệu nhập vào trùng với khóa chính hiện có, vi phạm ràng buộc duy nhất của bảng Nhấn OK để xác nhận và tiến hành chỉnh sửa giá trị trên dòng vừa nhập, đảm bảo giá trị mới không trùng với bất kỳ khóa chính nào đã tồn tại và bảng dữ liệu được lưu trữ đúng chuẩn.
Hình 2 24 Lỗi bỏ trống giá trị bắt buộc nhập
Mẫu tin vừa nhập liệu bị bỏ trống ở trường bắt buộc do trường này được thiết lập thuộc tính Required = Yes Để khắc phục, hãy nhập giá trị tương ứng vào trường đó để dữ liệu được lưu lại và hợp lệ, tránh lỗi nhập liệu.
Hình 2 25 Lỗi nhập chưa đúng dữ liệu theo nguyên tắc ràng buộc toàn vẹn
Lỗi do vi phạm các nguyên tắc ràng buộc toàn vẹn dữ liệu xuất hiện khi dữ liệu ở bảng có quan hệ một-nhiều (1-n) chưa được nhập đầy đủ hoặc dữ liệu nhập vào trong bảng liên quan không đúng Để khắc phục, hãy tìm và nhập lại dữ liệu từ bảng có quan hệ một-nhiều ở phía bảng cha, hoặc kiểm tra lại dữ liệu vừa nhập và nhập lại cho đúng để đảm bảo tính nhất quán và toàn vẹn dữ liệu của hệ thống.
Khái niệm truy vấn dữ liệu
Cơ sở dữ liệu đóng vai trò tổ chức lưu trữ thông tin và cung cấp các công cụ hỗ trợ quản lý, thao tác dữ liệu đang lưu Các thao tác thường gặp khi làm việc với cơ sở dữ liệu bao gồm tìm kiếm thông tin và cập nhật dữ liệu đã lưu Trong số các công cụ quản lý thông tin, truy vấn dữ liệu (Query) là thành phần quan trọng giúp người dùng truy xuất, lọc và thao tác dữ liệu một cách nhanh chóng và hiệu quả.
Các loại truy vấn dữ liệu
Tùy theo cấu trúc lệnh được sử dụng khi tạo query, ta có một số loại truy vấn sau:
Truy vấn SELECT là loại truy vấn chỉ cung cấp dữ liệu đã được lưu trữ trong các bảng, không sửa đổi thông tin gốc Kết quả truy vấn có thể được lọc theo điều kiện cụ thể để hiển thị đúng thông tin cần xem, và người dùng còn có thể tạo ra các cột tính toán hoặc thống kê dữ liệu trên bảng khi hiển thị Loại truy vấn này vừa phục vụ mục đích tìm kiếm vừa đáp ứng yêu cầu lọc thông tin của người dùng, giúp truy vấn và phân tích dữ liệu nhanh chóng mà không tác động đến dữ liệu nguồn.
Loại truy vấn này tương tự như Select Query, nhưng kết quả trả về là một đối tượng Table Đối tượng Table được lưu trữ trên tab Tables trong cửa sổ Windows Database, cho phép người dùng xem và thao tác với bảng dữ liệu một cách thuận tiện.
Câu lệnh INSERT được dùng để thêm mới một hay nhiều dòng dữ liệu vào một bảng trong cơ sở dữ liệu Mỗi câu truy vấn INSERT chỉ dùng để thêm mới dữ liệu cho một bảng duy nhất, đảm bảo dữ liệu được chèn đúng mục tiêu và phù hợp với cấu trúc của bảng.
Dùng để cập nhật dữ liệu đang lưu trữ trong các table của cơ sở dữ liệu
Dùng để thực hiện yêu cầu xóa dữ liệu hiện đang lưu trữ trong cơ sở dữ liệu
Dùng để thực hiện yêu cầu thống kê, tính toán và hiển thị dữ liệu theo dạng dòng và cột.
Tạo truy vấn bằng lưới QBE
3.3.1 Các thành phần trong màn hình lưới QBE
Nơi chứa các bảng dữ liệu nguồn cho một truy vấn
Lưới QBE được tổ chức theo hàng và cột; mỗi cột chứa một Field hoặc một biểu thức tính toán, và mỗi hàng mang ý nghĩa khác nhau tùy thuộc loại truy vấn cần tạo.
Hình 3 1 Lưới QBE tạo truy vấn
Field: Chứa tên của field có trong table hay chứa một biểu thức
Table: Chứa tên table tương ứng của field
Sort: Dùng để sắp xếp thứ tự field tăng hay giảm (thứ tự ưu tiên được tính từ trái qua phải )
Show: Hiển thị hay ẩn field khi xem kết quả của câu truy vấn (nếu có dấu check thì thông tin sẽ được hiển thị và ngược lại
Criteria: Chứa biểu thức điều kiện lọc dữ liệu.(Nếu có sử dụng tên Field thì phải đặt trong dấu [ ] )
3.3.2 Một số thao tác cơ bản để tạo truy vấn bằng QBE
Các bước tạo truy vấn :
Chọn tab Create trên thanh Ribbon
Chọn biểu tượng Query Design trên nhóm Other
Chọn bảng cần thực hiện rút trích thông tin trong hộp thoại show Table
Chọn biểu tượng loại truy vấn cần thiết kế trong nhóm Query Type trên thanh công cụ Design - Hình 3 2
Thực hiện tạo field và điều kiện theo yêu cầu truy vấn
Click biểu tượng Save để lưu truy vấn
Hình 3 2 Tab Design chứa biểu tượng các loại truy vấn
Thêm bảng vào vùng chứa bảng :
Click vào biểu tượng Show Table để hiển thị cửa sổ Show Table
Trong cửa sổ Show Table, chọn table cần thêm vào rồi nhấn nút Add
Sau khi thêm nhấn nút Close để đóng cửa sổ Show Table
Nhấn Delete tại bảng cần xóa
Thực thi câu truy vấn :
Tương tự như thực thi truy vấn bằng ngôn ngữ SQL
Từ cửa sổ Design View ta cũng có thể xem các câu lệnh SQL bằng cách click biểu tượng mũi tên View / chọn SQL View
Cho biết danh sách sinh viên lớp cao đẳng tin học khóa 1 Thông tin hiển thị gồm:
Mã sinh viên, Họ sinh viên, Tên sinh viên, Phái, Tên lớp
Đưa 2 bảng SINHVIEN và LOP vào vùng chứa bảng của lưới QBE
Kéo rê các field từ các bảng vào vùng lưới tương ứng (hoặc double click vào field cần hiển thị
Tạo điều kiện trong dòng criteria – Hình 3 1
Cho biết danh sách các sinh viên có Mã sinh viên bắt đầu là ký tự A Danh sách được sắp xếp giảm dần theo Ngày sinh
Hình 3 3 Màn hình lưới QBE tạo truy vấn ví dụ 19
Đề bài yêu cầu cung cấp danh sách sinh viên sinh sau ngày 20 tháng 11 năm 1985, với đầy đủ các trường thông tin gồm Mã sinh viên, Họ tên, Giới tính (hiển thị nam/nữ) và tuổi, và sắp xếp theo tuổi giảm dần để hiển thị những sinh viên lớn tuổi nhất trước.
Trong màn hình lưới QBE, để tạo thống kê trong vùng lưới ta thêm dòng Totals, tương ứng với nhóm dữ liệu như lệnh group by trong SQL, nhờ đó có thể tổng hợp và phân tích dữ liệu dễ dàng Dòng Total chứa các hàm tính toán cho thống kê, nhằm tạo báo cáo một cách nhanh chóng và trực quan Các hàm tại dòng Total gồm sum (tổng), avg (trung bình cộng), max (giá trị lớn nhất), min (giá trị nhỏ nhất) và count (số bản ghi); mỗi hàm mang ý nghĩa riêng: sum cho tổng giá trị, avg cho giá trị trung bình, max/min xác định giá trị cực trị của tập dữ liệu, và count đếm số mục, cho phép phân tích theo nhóm dữ liệu một cách hiệu quả.
Group By: Chọn cho các cột cần kết nhóm dữ liệu để thống kê
Sum: Tính tổng cho các cột dữ liệu số
Avg: Tính trung bình cho các cột dữ liệu số
Min: Lấy giá trị nhỏ nhất
Max: Lấy giá trị lớn nhất
Count: Đếm tổng số mẩu tin trên một cột khi gom nhóm
First: Lấy giá trị đầu tiên của nhóm
Last: Lấy giá trị sau cùng của nhóm
Expression: Biểu thức tính toán từ các cột dữ liệu
Where: Điều kiện lọc dữ liệu cho Query
Click vào biểu tượng Totals trong nhóm Show/Hide trên thanh công cụ Design
Ở dòng totals, với mỗi Field có sử dụng thống kê, hãy chọn Expression hoặc một hàm thống kê phù hợp; các Field không áp dụng thống kê nên chọn Group by để tổng hợp dữ liệu chính xác và tối ưu cho phân tích.
Thống kê tổng số sinh viên theo từng lớp Thông tin hiển thị: Mã lớp, Tên lớp, Tổng số sinh viên
Hình 3 5 Màn hình lưới QBE tạo truy vấn thống kê ví dụ 21
Điểm trung bình của mỗi sinh viên được cung cấp kèm theo mã sinh viên và họ tên Danh sách chỉ liệt kê những sinh viên có họ bắt đầu bằng chữ 'T' và có điểm trung bình lớn hơn 5.
Hình 3 6 Màn hình lưới QBE tạo truy vấn thống kê ví dụ 22
Cho biết lớp nào có tổng số sinh viên đông nhất Thông tin hiển thị gồm: Mã lớp,
Tên lớp, Tổng số sinh viên
Để tìm giá trị Max hoặc Min trên tổng các giá trị, ta không dùng các hàm Min hoặc Max mà tiến hành sắp xếp cột theo thứ tự tăng hoặc giảm rồi chọn giá trị ở vị trí đầu tiên (Top 1) làm kết quả.
Enter 1 into the Top value field in the Query Setup group on the Design toolbar, or right-click the query’s table container, select Properties, and input 1 in the Top value field.
Hình 3 7 Màn hình lưới QBE tạo truy vấn thống kê ví dụ 23
Các tham số trong câu truy vấn đơn giản chỉ là một chuỗi (tên tham số) và tên tham số đó không được trùng với tên bảng hay các trường hiện có trong cơ sở dữ liệu đang làm việc Điều này giúp ngăn chặn xung đột khi thực thi truy vấn và đảm bảo cú pháp hợp lệ Nếu tên tham số có chứa khoảng trắng, hãy đặt nó trong cặp dấu ngoặc vuông [] để đảm bảo nhận diện đúng bởi hệ quản trị cơ sở dữ liệu Việc đặt tham số đúng cách cũng tăng tính bảo mật và tối ưu hiệu suất của truy vấn.
Bài viết mô tả cách lấy danh sách sinh viên của một lớp bất kỳ, trả về Mã sinh viên, Họ tên và Tên lớp, với Mã lớp do người dùng nhập khi thực thi truy vấn để xác định lớp cần xem Kết quả hiển thị đầy đủ các sinh viên thuộc lớp được chọn và đi kèm thông tin cơ bản được liên kết với Mã lớp đã nhập Quá trình thực thi truy vấn giúp người dùng nắm được danh sách sinh viên hiện có trong lớp, hỗ trợ quản lý lớp học và tra cứu thông tin nhanh chóng cho từng sinh viên.
Lưu ý : Ta cần khai báo tham số trước khi thực thi câu truy vấn
Chọn Parameters trong nhóm Show/Hide trên thanh công cụ Design
Nhập tham số vào khung Query Parameter
Chọn kiểu dữ liệu trong khung Data Type
Hình 3 8 Hộp thoại khai báo tham số
Hình 3 9 Màn hình lưới QBE tạo truy vấn tham số ví dụ 24
Crosstab Query là một loại truy vấn thống kê được thiết kế để kết hợp dữ liệu ở hai chiều, gồm hàng và cột, nhằm hiển thị thông tin một cách gọn gàng trên một bảng duy nhất Khi thực thi, truy vấn cho ra kết quả là một hàng có nhiều cột, mỗi cột biểu thị một biến hoặc chỉ tiêu liên quan và cho phép so sánh nhanh các giá trị tương ứng Đặc điểm nổi bật của Crosstab Query là khả năng tổng hợp và sắp xếp dữ liệu theo các cột liên quan, giúp người dùng nhận diện xu hướng, mối quan hệ và mức độ phổ biến của từng yếu tố Đây là công cụ hữu ích trong xử lý dữ liệu, báo cáo thống kê và trình bày kết quả một cách trực quan, tiết kiệm thời gian rà soát thông tin và hỗ trợ ra quyết định dựa trên dữ liệu.
Thêm các bảng cần thiết vào vùng chứa bảng của lưới QBE
Click chọn biểu tượng Crosstab
Kéo rê các field cần hiển thị vào bảng
Xác định xem field nào là Row Heading, Column Heading, value , Notshow
Chọn Group by hay các hàm thống kê trên dòng totals
Nếu dòng Crosstab là Column Heading dòng Total phải là Group By
Nếu dòng Crosstab là Row Heading dòng Total có thể là Group By hoặc hàm thống kê (Sum, Count, …)
Nếu dòng Crosstab là Value dòng Total phải là hàm thống kê (Sum, Count, …)
Lưu ý : Nếu truy vấn có sử dụng tham số thì ta phải vào Parameter khai báo tham số cho truy vấn
Những thành phần của Crosstab query
Row heading quy định tập dữ liệu của các trường thuộc thành phần này sẽ được hiển thị trên từng dòng, giúp mỗi hàng dữ liệu rõ ràng và dễ theo dõi Trong Crosstab query, phải có ít nhất một trường thuộc Row Heading để đảm bảo bảng dữ liệu được hiển thị đúng theo hàng, tối ưu cho phân tích và trực quan hóa thông tin.
Trong một truy vấn crosstab, chỉ có một trường thuộc thành phần Column Heading Giá trị của trường này được hiển thị dưới dạng cột; số cột hiển thị sẽ phụ thuộc vào số giá trị mà truy vấn trả về cho trường đó, với mỗi giá trị tương ứng với một cột nhất định.
Value : là thành phần không thể thiếu và chỉ có duy nhất một field là Value Giá trị của field này thể hiện thông tin liên qua giữa Row Heading và Column Heading
Cho biết điểm thi lần 1 của sinh viên lớp cao đẳng tin học khóa 1 Thông tin hiển thị gồm: Mã sinh viên, Họ tên, Tên môn, điểm thi
Hình 3 10 Màn hình lưới QBE tạo truy vấn Crosstab ví dụ 25
Kết quả thực thi truy vấn
Hình 3 11 Kết quả thực thi truy vấn Crosstab ví dụ 25
Ví dụ 26 : Cho biết điểm thi lần 1 của sinh viên của một lớp bất kỳ (Mã lớp được nhập vào khi thực thi truy vấn) Thông tin hiển thị gồm: Mã sinh viên, Họ tên, Tên môn, điểm thi
Là loại query khi thực thi sẽ tạo ra một bảng mới dựa trên các bảng đã có trong cơ sở dữ liệu
Thiết kế query tạo ra bảng mới có tên là SINHVIENK1 thông tin gồm : Mã sinh viên, Họ sinh viên, Tên sinh viên, Phái, Mã lớp, Tên lớp
Tạo Select Query theo yêu cầu
Chọn biểu tượng trong nhóm Query Type trên thanh công cụ Design
Hình 3 12 Hộp thoại đặt tên bảng mới trong Make Table Query ví dụ 27
Đặt tên cho bảng cần tạo trong khung Table Name
Để xem trước dữ liệu của bảng mới ta click nút View
Để thực thi truy vấn ta click vào nút Run trên thanh công cụ
Xuất hiện hộp thoại thông báo là bạn có chắc là muốn tạo thêm 1 Table mới hay không ? Click Yes nếu đồng ý
Hình 3 13 Hộp thông thông báo tạo bảng mới 3.3.8 Append Query
Là loại truy vấn dùng để thêm mới dữ liệu vào bảng hoặc thêm dữ liệu từ bảng khác vào bảng khi thực thi truy vấn
Tạo query thêm vào bảng điểm thi những sinh viên lớp cao đẳng tin học khóa 1 (CDTH01) có điểm thi lần 1 môn Giáo dục thể chất (CDTH0101) là 0
Mở vùng lưới QBE ở chế độ thiết kế
Click chọn biểu tượng Append Query
Hình 3 14 Hộp thoại chọn tên bảng cần thêm trong Append Query ví dụ 28
Chọn bảng cần thêm vào trong khung Table Name
Hình 3 15 Màn hình lưới tạo truy vấn Append Query ví dụ 28
Gõ các giá trị cần thêm vào ở dòng Field của vùng lưới (nếu lấy từ bảng khác thì chọn field của bảng khác)
Các field được thêm vào tương ứng ở dòng Append To
Để xem trước dữ liệu cần thêm vào bảng ta click nút View
Để thực thi truy vấn ta click vào nút Run trên thanh công cụ
Xuất hiện hộp thoại thông báo là bạn có chắc là muốn thêm dữ liệu vào bảng hay không? Click Yes nếu đồng ý
Hình 3 16 Hộp thoại thông báo thêm dữ liệu vào bảng 3.3.9 Delete Query
Là loại query dùng để xóa dữ liệu trong bảng thỏa mãn với điều kiện cho trước Thực hiện :
Chọn Table chứa dữ liệu cần xóa hiển thị trong vùng lưới QBE
Chọn field cần xóa ở dòng field và điều kiện xóa ở dòng Criteria
Hình 3 17 Màn hình lưới tao truy vấn Delete Query ví dụ 29
Để xem trước dữ liệu cần xóa ta click nút View
Để thực thi truy vấn ta click vào nút Run trên thanh công cụ
Xuất hiện hộp thoại thông báo là bạn có chắc là muốn xóa dữ liệu trong bảng hay không? Click Yes nếu đồng ý
Hình 3 18 Hộp thoại thông báo xóa dữ liệu 3.3.10 Update Query
Là loại truy vấn dùng để cập nhập dữ liệu trong bảng thỏa mãn điều kiện cho trước
Tạo truy vấn cập nhật điểm thi lần 1 của sinh viên lớp cao đẳng tin học khóa 1 (CDTH01) học môn Giáo dục thể chất (CDTH0101) thành điểm 5
Chọn Table chứa dữ liệu cần chỉnh sửa hiển thị trong vùng lưới QBE
Chọn các Field cần chỉnh sửa ở dòng Field, các giá trị mới ở dòng Update to, ứng với điều kiện ở dòng Criteria
Hình 3 19 Màn hình lưới tạo truy vấn Update Query ví dụ 30
Để xem trước dữ liệu cần cập nhật ta click nút View
Để thực thi truy vấn ta click vào nút Run trên thanh công cụ
Xuất hiện hộp thoại thông báo là bạn có chắc là muốn cập nhật dữ liệu trong bảng hay không? Click Yes nếu đồng ý
Hình 3 20 Hộp thoại thông báo cập nhật dữ liệu
NHIỆM VỤ CỦA SINH VIÊN
Đọc bài giảng phần chương 3 trước khi đến lớp
Tham khảo tài liệu [1] Tập 1
Tham khảo tài liệu [2] Bài 4 từ trang 69 đến 91
Tham khảo tài liệu [4] Phần 1- Bài 3,4 : từ trang 19 đến trang 64
Thực hành các bài tập chương 3
BÀI TẬP THỰC HÀNH CHƯƠNG 3
Sử dụng cơ sở dữ liệu quản lý điểm sinh viên(QLDiem.accdb) thực hiện các câu truy vấn sau :
Lọc và sắp xếp dữ liệu
1 Cho biết danh sách sinh viên gồm các thông tin sau: Mã sinh viên, Họ tên sinh viên, Phái, Ngày sinh Danh sách sẽ được sắp xếp theo thứ tự Nam/Nữ
2 Cho biết danh sách các sinh viên lớp cao đẳng tin học khóa 1 gồm Mã sinh viên, họ sinh viên, tên sinh viên, phái, ngày sinh
3 Cho biết danh sách các môn học có tên bắt đầu bằng chữ T, gồm các thông tin: Mã môn, Tên môn, Số tiết lý thuyết, số tiết thực hành
4 Liệt kê danh sách những sinh viên có chữ cái cuối cùng trong tên là I, gồm các thông tin: Họ tên sinh viên, Ngày sinh, Phái
5 Cho biết danh sách những khoa có ký tự thứ hai của tên khoa có chứa chữ N, gồm các thông tin: Mã khoa, Tên khoa
6 Liệt kê những sinh viên mà họ có chứa chữ Thị
Giới thiệu đối tượng Form
Form (biểu mẫu) là một trong các đối tượng có sẵn trong Microsoft Access để xây dựng giao diện người dùng và kết nối giữa người dùng với ứng dụng Form cho phép kết nối và trình bày dữ liệu từ các bảng (Table), truy vấn (Query) và báo cáo (Report), đồng thời cung cấp màn hình nhập liệu và xem thông tin trực quan Thông qua Form, người dùng có thể dễ dàng xem, nhập, chỉnh sửa và tìm kiếm dữ liệu, giúp thao tác với cơ sở dữ liệu Access nhanh chóng và hiệu quả hơn.
Trong quá trình thiết kế Form, bạn có thể xem thông tin các thuộc tính của đối tượng qua cửa sổ thuộc tính (Properties Sheet) Cửa sổ này hiển thị đầy đủ các thuộc tính liên quan và cho phép chỉnh sửa nhanh các giá trị của đối tượng Để mở cửa sổ thuộc tính, bạn có thể sử dụng một trong các cách có sẵn trong giao diện thiết kế, tùy thuộc vào công cụ bạn đang dùng.
Double Click vào đối tượng cần xem thuộc tính
Hoặc click phải vào đối tượng cần xem thuộc tính, sau đó chọn chức năng Properties có trong menu vừa xuất hiện Hoặc nhấn ALT + ENTER
Khi cửa sổ thuộc tính đang mở, chỉ cần nhấp vào đối tượng khác, trang thuộc tính sẽ tự động hiển thị các thuộc tính của đối tượng được chọn, giúp người dùng nhanh chóng xem và chỉnh sửa thông tin thuộc tính mà không cần thêm thao tác.
Hình 5 1 Cửa sổ thuộc tính của form
4.1.2 Thành phần của một thuộc tính
Một thuộc tính được tạo bởi hai phần: Phần tên thuộc tính và phần giá trị
Phần giá trị của thuộc tính là các kiểu dữ liệu sau: String, Boolean, Enumerated (giá trị định sẳn cho thuộc tính), Numeric, Expression.
Các thuộc tính cơ bản trên form
Name: Tên đối tượng, là thuộc tính dùng để phân biệt giữa các đối tượng Giá trị của thuộc tính Name có một số lưu ý sau:
- Có thể là sự kết hợp của chuỗi, số, khoảng trắng, …
- Không có ký tự đặc biệt như: dấu chấm (.), dấu chấm than (!), dấu ngoặc vuông ([])
Tên thuộc tính Giá trị thuộc tính
- Mặc dù giá trị Name có thể có khoảng trắng nhưng ta không nên sử dụng vì sẽ gây khó khăn khi lập trình trong môi trường VBA
Record Source : Dữ liệu nguồn của form
Caption : Tên tiêu đề hay tên mô tả
Default view : Thể hiện loại màn hình Form
- Single form : thể hiện dạng cột ( chỉ thể hiện 1 dòng Record )
- Datasheet : thể hiện dạng dòng không có Header / Footer (giống Table / Query)
- Continuous forms : Thể hiện dạng dòng có Header / Footer
Picture: Hình nền thể hiện trên form
Record Selectors: Hiển thị hoặc không hiển thị ký hiệu chọn dòng hiện hành
Navigation buttons: Bộ nút di chuyển
Border Style: Dùng để thay đổi đường viền của Form
Max Min Buttons: Bộ nút phóng to hay thu nhỏ kích thước màn hình form
Allow edits: Cho phép hoặc không cho phép chỉnh sửa dữ liệu trên form
Allow Additions : Cho phép hoặc không cho phép thêm mới dữ liệu trên form
Allow Deletions : Cho phép hoặc không cho phép xóa dữ liệu trên form
Allow Filters : Cho phép hoặc không cho phép lọc dữ liệu trên form
Autoresize : Tự động thay đổi kích thước để hiển thị đủ mẩu tin
Autocenter : Tự động canh giữa khi mở Form
Modal : Xác lập trị Yes thì không thể chuyển qua cửa sổ khác khi Form chưa đóng
Pop Up :Nếu chọn Yes thì Form nằm trên các cửa sổ và Form khác
Close : Có / không có nút Close
Control Box : Hiện / không hiện Control Box
Scroll bars : Hiện hay không hiện thanh trượt của Form
Thiết kế Form
4.3.1 Thiết kế Form bằng Wizard
Chọn bảng hoặc query làm dữ liệu nguồn cho form
Chọn tab Create trên thanh Ribbon
Click chọn More Forms \ Form Wizard
Hình 5 2 Màn hình hướng dẫn tạo form bằng WiZard
Chọn các field cần thiết kế Click Next
Hình 5 3 Hộp thoại thiết kế Form bằng Wizard bước 1
Chọn dạng hiển thị của Fom Click Next
Hình 5 4 Hộp thoại thiết kế Form bằng Wizard bước 2
Chọn mẫu hiển thị Form Click Next
Hình 5 5 Hộp thoại thiết kế Form bằng Wizard bước 3
Đặt tiêu đề cho form cũng là tên form Click Finish
Hình 5 6 Hộp thoại thiết kế Form bằng Wizard bước 4
Hình 5 7 Màn hình form thiết kế bằng Wizard
Sau khi thiết kế form bằng Wizard chúng ta trở về màn hình Design View để chỉnh sửa cho phù hợp với yêu cầu
Các cách hiển thị Form :
- Form View : Chuyển Form về chế độ xem dữ liệu
Layout View cho phép chuyển Form về chế độ Layout, giống như chế độ Form View nhưng bổ sung khả năng chỉnh sửa vị trí và kích thước của các điều khiển trên Form Trong chế độ Layout, bạn có thể sắp xếp lại các điều khiển một cách trực quan, điều chỉnh căn chỉnh và kích thước để tối ưu bố cục giao diện trên Form.
- Design View : Chuyển Form về chế độ thiết kế
4.3.2 Thiết kế Form bằng design view :
Chọn Tab Create trên thanh Ribbon
Chọn biểu tượng trong nhóm Forms
Open the Design View window and focus on the Detail section Like a report, you can show or hide both the Form Header and Footer and the Page Header and Footer by right-clicking the respective header or footer to toggle their visibility.
Các thành phần trong cửa sổ Design View: Field List, Nhóm Controls và Properties Sheet
Đây là một cửa sổ nhỏ liệt kê tất cả các trường của các bảng trong cơ sở dữ liệu Nếu form chưa có dữ liệu nguồn, bạn có thể chọn dữ liệu nguồn cho form từ danh sách trường bằng cách nhấp đúp vào trường được chọn làm dữ liệu nguồn cho form Ngược lại, nếu form đã có dữ liệu nguồn, bạn có thể xem dữ liệu nguồn của form bằng cách nhấp chuột vào một dòng trong danh sách.
Show only fields in the current record source nằm ở dòng cuối cùng của Field List
Hình 5 8 Cửa sổ Field list trong chế độ Design View của Form
Chứa tập hợp các điều khiển dùng để thiết kế màn hình làm việc, cho phép hiển thị lên màn hình thông tin có sẵn trong nguồn hoặc các giá trị tính toán từ các trường nguồn.
Hình 5 9 Nhóm Controls trên thanh công cụ Form Design
Properties Sheet: Hiển thị các thuộc tính và hành động của một đối tượng đang được chọn trên form
4.3.3 Các dạng Form thường gặp
Columnar : Hiển thị thông tin của một dòng dữ liệu tại một thời điểm
Hình 5 10 Màn hình form dạng Columnar
Tabular : Hiển thị thông tin lưu trữ ở dạng tập hợp các dòng dữ liệu liên tục nhau
Hình 5 11 Màn hình form dạng Tabular
Datasheet :Dạng hiển thị của Form giống với đối tượng Table, hiển thị tất cả dữ liệu tại một thời điểm
Hình 5 12 Màn hình form dạng datasheet
THIẾT KẾ BÁO CÁO
Giới thiệu Report
Report cho phép người dùng trình bày thông tin lưu trữ trong bảng dưới dạng biểu mẫu báo cáo và xuất dữ liệu sang nhiều định dạng khác nhau như máy in, tập tin và hiển thị trên màn hình Người dùng có thể chọn trường dữ liệu, sắp xếp và lọc thông tin để hiển thị đúng nội dung cần thiết, từ đó tạo báo cáo trực quan, dễ in ấn và dễ chia sẻ Tính năng này tối ưu hóa quản lý dữ liệu, tăng tính linh hoạt và hiệu quả trong việc trình bày thông tin lưu trữ từ bảng một cách nhất quán.
Các dạng của Report
5.2.1 Tabular : Dữ liệu hiển thị các dòng liên tục nhau
Hình 4 1 Dạng hiển thị Tabular không phân nhóm
Hình 4 2 Dạng hiển thị Tabular phân nhóm theo lớp
5.2.2 Columnar : Dữ liệu hiển thị chi tiết từng mẫu tin
Hình 4 3 Dạng hiển thị Columnar
5.2.3 Các bước chuẩn bị trước khi tạo báo cáo :
Để trình bày thông tin trên báo cáo, hãy xác định và chọn các bảng dữ liệu hoặc câu truy vấn chứa thông tin cần hiển thị; đây được xem là nguồn dữ liệu của báo cáo Nguồn dữ liệu có thể là một bảng duy nhất hoặc nhiều bảng, hoặc một câu truy vấn lọc thông tin cần hiển thị Việc chọn đúng nguồn dữ liệu giúp báo cáo trình bày nội dung một cách đầy đủ và chính xác.
Để thiết kế báo cáo hiệu quả, xác định trước dạng thể hiện phù hợp giữa Tabular và Columnar dựa trên mục đích trình bày và cách người dùng đọc dữ liệu; đồng thời xác định xem báo cáo có phân nhóm hay không, nếu có thì làm rõ số nhóm và các trường (field) được chọn làm tiêu chí phân nhóm, nhằm đảm bảo cấu trúc báo cáo dễ hiểu và tối ưu cho việc phân tích cũng như tăng khả năng tối ưu hóa cho SEO nội dung liên quan.
Tạo Report bằng công cụ Report Wizard
5.3.1 Tạo báo cáo chi tiết :
Chọn dữ liệu nguồn cho báo cáo là bảng hoặc Query trên thanh Navigation Pane
Chọn Tab Create trên thanh Ribbon
Chọn biểu tượng trong nhóm Report
5.3.2 Tạo báo cáo phân nhóm :
Chọn dữ liệu nguồn cho báo cáo là bảng hoặc Query trên thanh Navigation Pane
Chọn Tab Create trên thanh Ribbon
Chọn biểu tượng trong nhóm Report
Chọn các field cần thiết kế trong Hình 4 4 Click Next
Hình 4 4 Hộp thoại Report Wizard tạo báo cáo bước 1
Chọn một cột muốn nhóm dữ liệu trên báo cáo Hình 4 5 Click Next
Hình 4 5 Hộp thoại Report Wizard tạo báo cáo bước 2
Chọn tiếp các cột muốn nhóm dữ liệu báo cáo Click Next
Hình 4 6 Hộp thoại Report Wizard tạo báo cáo bước 3
Chọn tên cột muốn sắp xếp bên trong chi tiết báo cáo Click Next
Hình 4 7 Hộp thoại Report Wizard tạo báo cáo bước 4
Chọn các thể hiện của báo cáo và hướng giấy in của báo cáo Click Next
Hình 4 8 Hộp thoại Report Wizard tạo báo cáo bước 5
Chọn các kiểu thể hiện tiêu đề, chi tiết cho báo cáo Click Next
Hình 4 9 Hộp thoại Report Wizard tạo báo cáo bước 6
Đặt tiêu đề cho báo cáo cũng là tên của report Click Finish
Hình 4 10 Hộp thoại Report Wizard tạo báo cáo bước 7
Hình 4 11 Kết quả tạo report R_DSsinhvien bằng Wizard
Click chọn biểu tượng để chỉnh sửa report
Chỉnh sửa Report bằng Design View
5.4.1 Các thành phần của Report
Hình 4 12 Màn hình hiển thị các thành phần của Report
Tiêu đề báo cáo là phần chứa các thông tin quan trọng được đặt ở vị trí đầu báo cáo và sẽ hiển thị ở trang đầu tiên của tài liệu Nội dung của phần này được trình bày một lần duy nhất tại phần mở đầu, giúp người đọc nhận diện nhanh chóng và tối ưu hóa khả năng tìm kiếm bằng các từ khóa liên quan đến tiêu đề và nội dung báo cáo.
Report Footer – Cuối báo cáo là khu vực chứa thông tin kết thúc của báo cáo Các nội dung bố trí ở đây sẽ xuất hiện ở cuối báo cáo và chỉ hiển thị một lần trên trang cuối cùng, giúp người đọc nắm được kết luận, ghi chú hoặc thông tin liên hệ một cách nhất quán mà không lặp lại ở các trang khác Việc tối ưu vị trí này cũng hỗ trợ SEO bằng cách cung cấp thông tin kết thúc rõ ràng, dễ nhận diện và cải thiện trải nghiệm người đọc.
Page Header – Tiêu đề của trang: Các thông tin được đặt trong phần này sẽ xuất hiện ở đầu mỗi trang của báo cáo
Page Footer – Cuối trang: Các thông tin được đặt trong thành phần này sẽ xuất hiện ở cuối mỗi trang của báo cáo
Detail – Chi tiết: Thể hiện các thông tin chi tiết (thông tin chính) của báo cáo
Ngoài các thành phần cơ bản đã giới thiệu ở trên, còn có 2 thành phần sau:
Group Header – Đầu nhóm: Các thông tin được đặt trong phần này sẽ xuất hiện ở đầu mỗi nhóm dữ liệu của báo cáo
Group Footer – Cuối nhóm: Các thông tin được đặt trong phần này sẽ xuất hiện ở cuối mỗi nhóm dữ liệu của báo cáo
Các chế độ hiển thị của Report :
Hình 4 13 Các chế độ hiển thị của Report
Design View: Cho phép thiết kế cấu trúc của báo cáo
Report View: Cho phép xem dữ liệu từ bảng nhưng không thay đổi cách bố trí của báo cáo
Layout View: Cho phép xem dữ liệu từ bảng và có thể thêm, chỉnh sửa, xóa các thành phần của báo cáo
Print Preview: Cho phép xem báo cáo trước khi được in
5.4.2 Thiết kế Report bằng Design view
Chọn Tab Create trên thanh Ribbon
Chọn biểu tượng trong nhóm Report
Hình 4 14 – Màn hình Design View của report
Double click tại giao điểm giữa hai thước ngang và dọc để mở cửa sổ thuộc tính của report Hình 4 14
Hoặc click chọn biểu tượng trong nhóm Tool của thanh công cụ Design để tắt/mở cửa sổ thuộc tính
Chọn dữ liệu nguồn cho report trong thuộc tính Record Source Hình 4 15
Hình 4 15 Cửa sổ Property của report
Chọn biểu tượng để tắt / mở hộp thoại Field list của report
Hình 4 16 Hộp thoại Field list của report
Lấy dữ liệu từ Field List sang thành phần detail của report bằng cách double click vào các field tương ứng
5.4.3 Các điều khiển thường dùng trên Report
Hình 4 17 Thanh công cụ Tool box của Report
Điều khiển hiển thị thông tin tĩnh trên báo cáo là thành phần giao diện dùng để trình bày các nội dung cố định, không thay đổi theo dữ liệu, như tiêu đề của báo cáo và tiêu đề của các cột trong báo cáo, giúp người đọc nhận diện nhanh cấu trúc và nội dung Việc thể hiện rõ các yếu tố tĩnh này tăng tính nhất quán của báo cáo, cải thiện khả năng đọc hiểu và tối ưu hóa SEO cho nội dung báo cáo trên các kênh phân phối.
Điều khiển được dùng để hiển thị giá trị của một trường dữ liệu (field), một công thức tính toán hoặc một biểu thức thống kê Để lấy dữ liệu nguồn cho điều khiển, vào cửa sổ thuộc tính của báo cáo và tìm thuộc tính Control Source; sau đó chọn trường cần hiển thị hoặc gõ công thức tính toán, và công thức luôn bắt đầu bằng dấu bằng '='.
Line : Được sử dụng để vẽ các đường thẳng nhằm trang trí cho báo cáo Giúp các thông tin trên báo cáo được trình bày rõ ràng hơn
Dùng để vẽ các khung hình chữ nhật nhằm trang trí cho báo cáo
Điều khiển có nhiệm vụ ngắt trang báo cáo tại vị trí đặt nó Để thay đổi cách thể hiện dữ liệu trên điều khiển, người dùng có thể chỉnh thuộc tính Format trong cửa sổ thuộc tính của điều khiển.
5.4.4 Các thao tác chung trên điều khiển
Tạo điều khiển : Click chọn điều khiển trên Toolbox sau đó click vào vùng thiết kế của Report
Chọn các điều khiển: Nhấp chuột vào điều khiển cần chọn Để chọn nhiều điều khiển cùng lúc, bạn có thể nhấn giữ phím Shift và nhấp vào từng điều khiển hoặc đưa trỏ chuột ra ngoài thước dọc rồi kéo rê chuột để tạo vùng chọn.
Di chuyển các điều khiển
Di chuyển một điều khiển được chọn: kéo rê chuột tạo điểm trên bên trái của điều khiển
Di chuyển điều khiển và thành phần thành liên kết với nó nếu có: kéo rê chuột tại vị trí bất kỳ của điều khiển
Thay đổi kích thước của điều khiển
Khi một điều khiển được chọn, xung quanh nó xuất hiện 8 ô vuông màu đen đóng vai trò là điểm điều chỉnh kích thước Để thay đổi kích thước của điều khiển, di chuyển chuột tới vị trí của các ô vuông; con trỏ chuột sẽ đổi thành đường thẳng hai đầu có hai mũi tên Nhấp và kéo để điều chỉnh kích thước, hoặc có thể dùng tổ hợp phím Shift và các phím mũi tên để thay đổi kích thước một cách chính xác.
Lưu ý : Để thiết kế nhanh báo cáo ta nên sử dụng Wizard để thiết kế sau đó ta trở về chế độ Design View để chỉnh sửa.
Giới thiệu Macro
Macro là tập hợp các bộ lệnh đã được định nghĩa sẵn, mỗi bộ lệnh có chức năng riêng biệt; khi Macro chứa nhiều bộ lệnh, chúng được sắp xếp theo một trình tự xử lý.
− Macro không thực hiện độc lập mà phải kết hợp với các sự kiện trên Form hay các điều khiển trên form
Khái niệm thuộc tính, hành động và sự kiện
Thuộc tính là tập hợp các đặc điểm được dùng để nhận diện và xác định một đối tượng; với từng loại đối tượng, sẽ có những thuộc tính riêng biệt đồng thời tồn tại những thuộc tính chung mang ý nghĩa sử dụng giống và khác nhau Việc nhận diện và so sánh các thuộc tính giúp làm rõ sự tương đồng và khác biệt giữa các loại đối tượng, từ đó xác định cách thức áp dụng và mục đích sử dụng phù hợp với từng ngữ cảnh Hiểu rõ các thuộc tính quan trọng của mỗi đối tượng là nền tảng để phân loại, đánh giá và tối ưu hóa việc khai thác thông tin hay tài nguyên liên quan.
Đây là tập hợp các thao tác xử lý thuộc về riêng đối tượng và được chính đối tượng gọi để thực thi hành động tương ứng Hành động của đối tượng sẽ được thực thi theo cú pháp do đối tượng quy định, nhằm kích hoạt và hoàn tất quá trình thực hiện một chức năng cụ thể.
Tên đối tượng.Tên hành động
Là những xử lý liên quan đến các đối tượng trên màn hình như mở form, click chuột,…
- CurrentRecord: Cho biết dòng hiện hành trong bộ mẫu tin nguồn trên Form
- RecordSetClone.RecordCount: Cho biết tổng số dòng (Record) có trong bộ mẫu tin nguồn
Các sự kiện trên Form:
- On Load: Sự kiện xảy ra khi bắt đầu mở Form (Các điều khiển chưa xuất hiện trên Form )
- On Open: Sự kiện xảy ra khi mở Form (Các điều khiển đã xuất hiện trên Form )
- On Activate: Sự kiện xảy ra khi Form được kích hoạt
- On DeActivate: Sự kiện xảy ra khi đóng kích hoạt Form
- On Close: Sự kiện xảy ra khi đóng Form
- On Unload: Sự kiện xảy ra khi đóng Form
- On Current: Sự kiện xảy ra với trạng thái dòng (Record) hiện hành trên Form
- On Click: Sự kiện xảy ra khi click chuột
- On DbClick: Sự kiện xảy ra khi Double click chuột
- Before Update: Sự kiện xảy ra trước khi cập nhật form
- After Update: Sự kiện xảy ra sau khi cập nhật form
- Before Insert: Sự kiện xảy ra trước khi thêm mới một dòng trên form
- After Insert: Sự kiện xảy ra sau khi thêm mới một dòng trên form
Các sự kiện trên điều khiển:
- On Click: Sự kiện xảy ra khi click chuột trên điều khiển
- Dblclick: Sự kiện xảy ra khi Double click chuột trên điều khiển
- On KeyPress: Sự kiện xảy ra khi nhấn một phím tại điều khiển
- On Keydown: Sự kiện xảy ra khi nhấn giữ một phím tại điều khiển
- On KeyUp: Sự kiện xảy ra khi nhả phím tại điều khiển
- On GotFocus: Sự kiện xảy ra trước khi con trỏ vào điều khiển
- On LostFocus: Sự kiện xảy ra sau khi con trỏ ra khỏi điều khiển
- On Change: Sự kiện xảy ra khi thay đổi nội dung điều khiển.
Cách tạo Macro
Chọn sự kiện cần xử lý trên form (Chọn trang Event trên cửa sổ thuộc tính Properties\ chọn On Click)
Click vào dấu … chọn Macro builder \ Ok
Chọn các bộ lệnh (hành động ) xử lý trong khung Action
Action Arguments: chứa các thuộc tính tương ứng với hành động đã chọn trong cột Action ở phía trên
Hình 6 1 Hộp thoại hướng dẫn tạo Macro
Hình 6 2 Màn hình thiết kế Macro
Chứa danh sách các tham số Tham số của lệnh Requery