You are on page 1of 85

Bài 1: Tổng quan về MS Access

1. Khái niệm cơ sở dữ liệu (CSDL: DataBase)

CSDL là tập hợp những dữ liệu liên quan tới một chủ đề, một phạm vi quản
lý. Nhằm thoả mãn nhu cầu khai thác thông tin nhanh chóng, chính xác, hiệu quả.

(CSDL là tập hợp dữ liệu mang tính hệ thống, chứ không phải là dữ liệu rời rạc)

CSDL quan hệ (Relational DataBase): là tập hợp các bảng liên quan tới
nhau, tạo thành một hệ thống thông tin thống nhất, đảm bảo tính không được thiếu,
không thừa của nguồn dữ liệu.

Hệ quản trị CSDL (HQT CSDL: DataBase Management System)

Là phần mềm cho phép tạo, lưu trữ, quản lý và tương tác với CSDL.

Các chức năng cơ bản của HQTCSDL

Một HQTCSDL phải có ngôn ngữ mô tả dữ liệu (Data Definition Language)


cho phép ta định nghĩa cấu trúc (tạo, sửa, xoá) và mô tả các mối liên hệ của dữ liệu
cũng như những quy tắc quản lý trên dữ liệu đó.

Một HQTCSDL phải có ngôn ngữ thao tác dữ liệu (Data Manipulation
Language) cho phép người sử dụng có thể cập nhật dữ liệu (thêm, sửa, xoá).

Một HQTCSDL phải có ngôn ngữ truy xuất dữ liệu (Data Receive
Language) để khai thác, trích rút dữ liệu trong CSDL khi có nhu cầu.

Ngoài ra, một số HQTCSDL cung cấp cho người sử dụng những cơ chế bảo
mật và phục hồi dữ liệu khi có sự cố xảy ra.

HQTCSDL quan hệ là hệ quản trị cơ sở dữ liệu theo mô hình quan hệ.


Hệ quản trị cơ sở dữ liệu MS Access là HQTCSDL quan hệ có khá đầy đủ
các chức năng trên. Ngoài ra chương trình này còn có các chức năng khác như tạo
Form, Report, Macro, Module,… cho phép xây dựng hoàn chỉnh một phần mềm quản
lý CSDL.

2. Các thành phần trong cơ sở dữ liệu Access

(Nằm trên file có phần mở rộng *.mdb)

Trong cơ sở dữ liệu của Ms Access 2000 gồm có 7 thành phần, mỗi thành phần gồm
nhiều đối tượng.

Ví dụ: Trong thành phần Tables có nhiều đối tượng Table, trong thành phần
Queries có nhiều đối tượng Query,...

Từ các nguồn khác: có nghĩa là liên kết lấy dữ liệu từ các file dạng khác như
*.xls (Excel), hoặc dữ liệu trong các hệ quản trị cơ sở dữ liệu khác,...
2.1. Table: là đối tượng lưu trữ dữ liệu.

Hình 1.1: Màn hình hiển thị dữ liệu bảng HoSo.

2.2. Query: tính toán, xử lý và khai thác dữ liệu trong Cơ sở dữ liệu.

Hình 1.2: Màn hình hiển thị dữ liệu truy vấn các thí sinh KV1.

2.3. Form: giao diện nhập và thể hiện dữ liệu, tạo hộp thoại giao tiếp giữa
ứng dụng và người sử dụng.
Hình 1.3: Giao diện liệt kê các thí sinh theo từng khu vực.

2.4. Macro: tạo các hành động điều khiển và liên kết các đối tượng nằm
trong các thành phần của Access.

Ví dụ: tạo hành động mở mẫu biểu có tên sbfTest và chỉ hiển thị những thí sinh
thuộc KV3.

Hình 1.4: Màn hình hiển thị phần thiết kế Macro.


2.5. Report: tạo mẫu báo cáo thể hiện dữ liệu phong phú, đẹp mắt. Là
khâu cuối cùng của quá trình xử lý dữ liệu, để rồi in ra giấy.

Hình 1.5: Báo cáo thống kê chi tiết các thí sinh theo từng khu vực.

2.6. Module: môi trường để soạn thảo các hàm (Function), thủ tục (Sub) viết
bằng ngôn ngữ VBA (Visual Basic for Application) hay còn gọi là Access Basic. Nhằm
xử lý và điều khiển các đối tượng phức tạp.

Ví dụ: tạo thủ tục SuaNoiSinh để sửa dữ liệu trong cột (trường) NoiSinh. Nếu
là “hanoi” thì đổi thành “Ha Noi “.
Hình 1.6: Màn hình soạn thảo mã lệnh chương trình.

2.7. Page: cho phép thể hiện dữ liệu trên trang dạng Web (*.htm). Người sử
dụng có thể truy cập vào CSDL thông qua trình duyệt Microsoft Internet Exploirer
(IE).
Hình 1.7: Màn hình hiển thị danh sách khu vực từ cửa sổ IE.

Chương 2.1: Table - Bảng dữ liệu


1. Khái niệm

Table là thành phần quan trọng nhất trong CSDL, là nơi trực tiếp lưu trữ dữ
liệu. Mỗi Table chứa thông tin về một thực thể xác định.

Ví dụ:

Bảng MonHoc lưu trữ thông tin về các môn học như: Mã môn học, Số tiết,..

Bảng NhanVien lưu trữ thông tin về cán bộ nhân viên như: Mã nhân viên,
Họ tên, Ngày sinh, Quê quán, Lương,…

Mã NV

Họ tên

Ngày sinh

Quê quán

Lương

SR001

Nguyễn Phương Nam

14/12/1975

Hà Tây

650000
SR002

Trần Mạnh Hùng

03/09/1970

Thái Nguyên

800000

SR003

Vũ Phương Thảo

19/12/1978

Hải Phòng

720000

1.1. Cấu trúc của bảng: gồm các hàng và các cột giao nhau

Cột trong Table thì gọi Field (trường)

Mỗi Field ứng với một mục dữ liệu mà ta cần lưu trữ, và mỗi Field có một kiểu
dữ liệu xác định.

Mã NV, Họ tên, Quê quán: kiểu kí tự

Ngày sinh: kiểu ngày tháng

Lương: kiểu số.


Hàng trong table thì gọi Record (bản ghi)

Là một thể hiện dữ liệu của các Field trong bảng.

1.2. Khoá chính (Primary Key)

Trong bảng thường có khoá chính gồm một hoặc nhiều trường đảm bảo 2 tính
chất sau:

Dữ liệu trên đó là duy nhất, mục đích dùng để phân biệt bản ghi này với bản
ghi kia

Không được phép rỗng dữ liệu (phải nhập dữ liệu). Vì khi biết được giá trị của
trường khoá chính thì có thể suy ra giá trị của các trường khác.

1.3. Khoá ngoại (Foreign Key)

Để tạo quan hệ giữa các bảng người ta lấy khoá chính đưa sang bảng quan hệ
làm khoá ngoại. Dữ liệu trong khoá ngoại phải được tham chiếu lấy từ khoá chính.

2. Các phương pháp tạo Table

2.1. Tạo Table bằng Table Wizard

Đây là phương pháp tạo bảng theo các bước hướng dẫn để xây dựng các
Table từ trong CSDL mẫu của Access

Cách 1: trong cửa sổ Database chọn New/ Table Wizard

Cách 2: chọn Create table by using wizard.


Hình 2.1: Cửa sổ tạo mới Table bằng trợ giúp.

Sample Tables: chọn các Table mẫu

Sample Fields: chọn các Fields trong Table mẫu

Fields in my new table: các trường xuất hiện trong


bảng khi nó được tạo ra

(ta có thể chọn nút lệnh Rename Field… để đổi tên


trường)

Phương pháp này chỉ với mục đích tham khảo, vì các
Table mẫu thường không thích hợp với cách quản lý của ta
(thường phải thiết kế lại).

2.2. Tạo Table bằng Datasheet View

Cách 1: trong cửa sổ Database chọn New/ Datasheet View

Cách 2: chọn Create table by entering data

Người dùng chỉ cần gõ dữ liệu trực tiếp vào bảng có dạng giống Excel
Hình 2.2: Cửa sổ tạo mới Table bằng Datasheet View.

Access sẽ tự động xác định:

Kiểu dữ liệu của trường tuỳ theo dữ liệu nhập

Số trường sẽ thu lại theo số cột có dữ liệu

Số bản ghi sẽ thu lại theo số hàng có dữ liệu nhập.

2.3. Tạo Table bằng Design View

Đây là cách tạo bảng thường dùng nhất, với cách này ta trực tiếp tạo ra cấu
trúc bảng theo mong muốn.

Cách 1: trong cửa sổ Database chọn New/ Design View

Cách 2: chọn Create table in Design View


Hình 2.3: Cửa sổ tạo mới Table.

Màn hình giao diện tạo bảng bằng Design View như sau:

Hình 2.4: Cửa sổ thiết kế Table.

Field Name: đặt tên trường.

Data Type: kiểu dữ liệu của trường.

Description: chú thích ý nghĩa của trường, nội dung sẽ hiện ở dòng trạng
thái (Status Line) để hướng dẫn nhập liệu khi mở Table ở chế độ Datasheet.

Field Properties: các thuộc tính của trường.

Nếu tạo mới Table mà chưa tạo khoá chính thì khi thoát khỏi chế độ Design
View Access bắt ta phải đặt tên cho Table, rồi sau đó sẽ hỏi ta có muốn tạo khoá
chính không? Ta chọn No để không tạo khoá.

Hình 2.5: Hộp thoại hỏi khoá chính.


3.1. Tên trường (Field Name)
Các quy tắc đặt tên trường
Tên trường có thể chứa các kí tự chữ cái, chữ số, dấu cách, các kí tự đặc biệt
(trừ các kí tự “.”, “!”, “[“, “]” )
Tên trường không được bắt đầu bằng dấu cách, không quá 64 kí tự. Trong một
bảng không có tên trường trùng nhau.

3.2. Kiểu dữ liệu của trường (Data Type)

Trường Giải thích

Text (kiểu kí tự): tối đa 255 kí tự

(kiểu kí ức): tối đa 64000 kí tự, thường được dùng để lưu trữ những văn
Memo
bản lớn chẳng hạn như chú thích, tiểu sử cá nhân...

(kiểu số): gồm các kiểu có miền giá trị khác nhau khai báo trong Field
Number
size

Date/Time (kiểu ngày tháng): tối đa 8 byte dùng lưu trữ dữ liệu dạng ngày tháng

(kiểu tiền tệ): tối đa 8 byte, đây cũng là một dạng kiểu Number nhưng có
Currency
ký hiệu tiền tệ.

Yes/No (kiểu Logic): lưu dữ liệu chỉ trong 2 trạng thái.

(kiểu số tự động): dữ liệu trong trường có kiểu này sẽ được tự động


AutoNumber thêm vào các giá trị tuần tự hay ngẫu nhiên mà không cần người sử
dụng nhập vào.

(nhúng và liên kết đối tượng): lưu âm thanh, hình ảnh tối đa 1GB bộ
OLE Object
nhớ.

(kiểu siêu liên kết): lưu đường dẫn tới một máy khác trên mạng hay địa
Hyperlink
chỉ liên kết tới một trang Web, địa chỉ Email, tối đa 2048 kí tự.

Lookup tham chiếu tới danh sách các giá trị của một trường nào đó ở bảng
wizard: khác.

Bảng các kiểu dữ liệu của một trường có thể nhận

3.3. Các thuộc tính của trường (Field Properties)


Phần Genernal: các thuộc tính chung
Field size: quy định độ rộng của dữ liệu trong trường.
Ví dụ: Đối với kiểu Text ở thuộc tính này ta quy định là 10 thì chỉ được
nhập 10 kí tự. Còn đối với kiểu Number ta chọn các kiểu với miền sau:
Giá trị Miền giá trị Số Byte
Integer Số nguyên (-32768 → 32767) 2

Long Integer số nguyên(-2147483648→2147483647) 4

Single kiểu số thực(đơn)(-3.4*1038 → 3.4*1038) 4

Double kiểu số thực(kép)(-1.797*10308 → 1.797*10308) 8

Format: định dạng các thể hiện của dữ liệu trong trường. Với từng kiểu dữ
liệu (Data Type), ta có các kiểu định dạng khác nhau.
Đối với dạng Text
' < ': dữ liệu trong trường tự động chuyển thành chữ thường
' > ': dữ liệu trong trường tự động chuyển thành chữ hoa
@ [tên màu]: tự động định dạng màu chữ
Tên các màu: Black (đen), Blue (xanh lá cây), Green (xanh nước
biển), Cyan (xanh nhạt), Red (đỏ), Magenta (tím cánh sen), Yellow
(vàng), White (trắng),...
Đối với dạng Date/Time Ta chọn các dạng có sẵn:

Hoặc ta dùng các kí tự d, m, y để thiết lập như sau:


dd/mm/yyyy: 19/12/2003 (với dd:day, mm: month, yyyy:year)
dd-mmm-yyyy: 19-Dec-2003
mm/dd/yy: 12/19/03
Đối với dạng số ta dùng các định dạng có sẵn
Giả sử ta có giá trị 3456.789

Đối với dạng dữ liệu Yes/No: có các dạng Yes/No, True/False, On/Off.
Nếu không khai báo Format thì sẽ hiện các giá trị –1 (Yes), 0 (No).
Decimal Places: quy định số chữ số thập phân (chỉ có trong Number,
Currency).
Input Mask (mặt nạ nhập liệu): Trong trường hợp dữ liệu có cùng dạng
thức ta nên quy định mẫu nhập liệu, nhưng phải nhập đúng quy định đó.
Nhóm ký tự định nghĩa InputMask
Kí tự mặt nạ Ý nghĩa
0 Vị trí dành cho một số 0→ 9 (bắt buộc nhập)
9 Vị trí dành cho một số 0→ 9 (không bắt nhập)
# Vị trí dành cho một kí tự số 0→ 9, dấu +, -, trống
L Vị trí dành cho một kí tự A-Z (bắt buộc nhập)
? Vị trí dành cho một kí tự A-Z (không bắt nhập)
A Vị trí dành cho một ký tự chữ hoặc số (bắt buộc)
A Vị trí dành cho một ký tự chữ hoặc số (không bắt
buộc)
& Vị trí dành cho một kí tự bất kì (bắt buộc)
C Vị trí dành cho một kí tự bất kì (không bắt buộc)
. , : ; - /: Ngăn cách giữa các phần
Password Những kí tự đánh vào sẽ hiển thị dấu * (dạng mật
khẩu)
Ví dụ: Giá trị trong trường ngày sinh có dạng 19/12/1978 ta thấy rằng khung
mặt nạ nhập liệu là __ /__ /____
. Ta phải thiết lập như sau 00/00/0000
Caption: chuỗi tiêu đề cột khi bảng ở chế độ Datasheet (chế độ cập nhật
dữ liệu), nếu bỏ qua thì Access lấy tên trường làm tiêu đề cột.
Default Value: xác định giá trị định trước (dùng trong trường hợp nhập dữ
liệu đó là nhiều)
Validation Rule: xây dựng biểu thức kiểm tra dữ liệu (quy tắc hợp lệ)
Ví dụ: nếu > 0 thì dữ liệu nhập vào phải lớn hơn 0.
Validation Text: xâu kí tự hiện trong hộp thông báo lỗi nếu vi phạm điều
kiện trong Validation Rule.
Required: có bắt buộc phải nhập dữ liệu không?
Yes: tương ứng với việc buộc nhập dữ liệu
No: không buộc nhập dữ liệu
tại trường đó.
Allow Zero Length: áp dụng cho Text, Memo, Hyperlink cho phép nhập hay
không nhập dữ liệu là giá trị rỗng.
Indexed (chỉ số): Tạo chỉ số để sắp xếp và tăng tốc độ tìm kiếm dữ liệu
No: không tạo chỉ số
Yes (Duplicates Ok): tạo chỉ số được phép trùng
Yes (No Duplicates): tạo chỉ số không được phép trùng
Lookup: các thuộc tính tham chiếu
Display Control: chọn cách hiển thị
Text Box: hộp văn bản
Combo Box: hộp liệt kê thả
List Box: hộp liệt kê danh sách
Check Box: hộp kiểm tra (áp dụng cho Yes/No)
Nếu Display Control đặt là Text thì sẽ không có các tuỳ chọn tiếp theo, nếu
Display Control đặt là List Box sẽ có thêm các phần tuỳ chọn như sau:
Row Source Type: kiểu nguồn dữ liệu
Table/Query: lấy dữ liệu có sẵn trong Table hoặc Query.
Value List: tự đánh dữ liệu cho danh sách
Field List: danh sách là tên các field trong Table hoặc query
Row Source: nguồn giá trị trong danh sách (có thể chọn tên
của Table/Query, hoặc tự liệt kê giá trị...)
Bound Column: cột được lấy làm giá trị của Field
Column Count: số cột hiển thị trong danh sách
Column Heads: bật tắt dòng tiêu đề
Column Widths: độ rộng của từng cột trong danh sách
Nếu Display Control đặt là Combo Box sẽ có thêm những phần
sau:
List Row: số dòng hiển thị trong danh sách
List Width: độ rộng của danh sách (tổng độ rộng của các cột)

Limit to List: giới hạn trong danh sách


Yes: chỉ được nhập dữ liệu lấy trong danh sách cho Field
No: có thể nhập dữ liệu ngoài danh sách cho Field
4. Các hình thức tạo bảng khác

4.1. Import Table (nhập khẩu bảng)

Lấy bảng đã có sẵn từ CSDL khác về CSDL hiện thời. Bảng được tạo ra độc
lập với bảng nguồn.

Cách 1: trong cửa sổ Database chọn New/ ImportTable

Cách 2: vào thực đơn File/Get External Data/Import...

Chỉ ra đường dẫn chọn file CSDL khác rồi chọn lệnh Import.

Hình 2.6: Cửa sổ Import Objects.

Chọn tên bảng cần Import rồi OK

Select All: chọn tất cả các bảng

Deselect All: huỷ chọn tất cả các bảng.

Chú ý: Ta có thể dùng phương pháp Export Table (xuất khẩu bảng) để đưa
bảng từ CSDL hiện thời sang CSDL khác.

Cách 1: chọn bảng cần xuất khẩu rồi vào thực đơn File/Export...

Cách 2: nhấn phải chuột vào bảng cần xuất khẩu /Export...

4.2 Link Table (bảng liên kết)


Là cách tạo bảng bằng cách liên kết đến một bảng của CSDL khác. Cách tạo
bảng này gần giống như cách tạo bảng bằng Import Table, chỉ khác là bảng không
được lấy hẳn về như Import Table mà chỉ là liên kết tới bảng đó.

Cách 1: trong cửa sổ Database chọn New/ LinkTable

Cách 2: vào thực đơn File/Get External Data/ LinkTable

Chỉ ra đường dẫn CSDL chứa bảng cần liên kết đến rồi chọn lệnh Link

Lưu ý:

Biểu tượng của bảng liên kết có thêm hình mũi tên.

Bảng liên kết chỉ được cập nhật dữ liệu, không được phép sửa
thiết kế.

5. Các chế độ của Table

Có hai chế độ mở bảng, mở bảng ở chế độ cập nhật dữ liệu (Datasheet View)
và mở bảng ở chế độ thiết kế (Design View).

5.1. Mở bảng ở chế độ thiết kế (Design View)

Cho phép sửa đổi cấu trúc bảng. Tại đây, chúng ta có thể chèn thêm trường,
xoá trường đi, thay đổi kiểu dữ liệu hay thuộc tính của trường,...

Cách thực hiện:

Bước 1: chọn Table

Bước 2: nhấn Design trên thanh công cụ của cửa sổ Database

Chèn thêm một trường vào trong Table

Cách 1: vào thực đơn Insert/Rows

Cách 2: phải chuột /Insert Rows


Xoá một hoặc nhiều trường trong Table

Bước a: chọn các trường muốn xoá

Bước b: vào thực đơn Edit/Delete Rows hoặc phải chuột/


Rows

Tạo khoá chính (Primary Key)

Bước a: chọn một hoặc nhiều trường làm khoá chính

Bước b: thiết lập khoá chính

Cách 1: vào thực đơn Edit/Primary Key

Cách 2: nhấn vào biểu tượng Primary Key (chìa


khoá) trên thanh công cụ

(Nếu muốn bỏ khoá chính ta thực hiện lại động tác


trên).

5.2. Mở bảng ở chế độ cập nhật dữ liệu (Datasheet View)

Cho phép xem và thêm, xoá, sửa dữ liệu của bảng.

Cách thực hiện

Bước 1: chọn Table muốn mở

Bước 2: nhấn Open trên thanh công cụ của cửa sổ Database


(hoặc Enter)

Các thao tác trên Record: thêm, sửa, xoá Record

(giống trong MS Excel)

a. Nhập, sửa dữ liệu OLE Object


Nhập hình ảnh
Cách 1: vào thực đơn Insert/Object.../chọn Object Type
Cách 2: phải chuột/ Insert Object.../ chọn Object Type

Hình 2.7: Màn hình cho phép chỉ định loại đối tượng OLE.
Create New: tạo file ảnh, văn bản, bảng tính,.. bằng các chương trình trong
Object Type.

Hình 2.8: Chọn đường dẫn đến file cho đối tượng OLE.
Create from File: lấy file ảnh, văn bản, bảng tính,.. đã lưu trong máy
(Bấm nút Browse chọn đường dẫn tới file đó)
Link: chỉ liên kết tới file đó.
Sửa hình ảnh
Cách 1: vào thực đơn Edit/Bitmap Image Object.../ Edit
Cách 2: phải chuột/ Bitmap Image Object.../ Edit
Điều chỉnh độ rộng, thay đổi vị trí cột (tham khảo sách bài tập)
Đổi tên, ẩn, hiện cột (tham khảo sách bài tập).
b. Sắp xếp dữ liệu

Bước
1: Chọn
cột cần sắp xếp
Bước 2: Chọn các cách
Cách 1: Record/Sort /{Ascending | Descending}
Cách 2: Nhấn biểu tượng trên thanh công cụ.
c. Lọc dữ liệu
Filter By Selection
Chức năng: Dùng để lọc các bản ghi thỏa mãn giá trị đã được chọn trong
bảng dữ liệu.
Bước 1: chọn giá trị cần lọc của cột trên bảng dữ liệu
Bước 2: chọn các cách sau
Cách 1: vào thực đơn Records/ Filter/ Filter By Selection
Cách 2: kích phải chuột/ Filter By Selection.
Để lọc những giá trị khác (ngược lại) với giá trị được chọn ta chỉ cần chọn
Filter Excluding Selection.
Để bỏ lọc ta chọn biểu tượng Remove Filter trên thanh công cụ (hoặc kích phải
chuột / Remove Filter).
Sử dụng lọc Filter By Form
Chức năng: Lọc những bản ghi thỏa mãn nhiều giá trị mà ta lựa chọn trên
nhiều cột (thỏa mãn nhiều điều kiện).
Bước 1: vào thực đơn Records/ Filter/ Filter By Form (hoặc chọn biểu t-
ượng Filter By Form trên thanh công cụ)
Bước 2: chọn giá trị cần lọc trên từng cột của bảng/Apply Filter
Sử dụng lọc Advanced Filter/Sort
Cho phép ta lọc dữ liệu và sắp xếp bằng cách sử dụng các phép toán (toán tử)
Bước 1: Chọn Records/ Filter/ Advanced Filter Sort ... xuất hiện
Field: Chọn trường cần lọc hoặc sắp xếp.
Sort: Chọn kiểu sắp xếp.
Criteria: nhập điều kiện lọc.
Or: Nhập điều kiện lọc hoặc.
Bước 2: Chọn Filter/ Apply Filter /Sort hoặc chọn Apply Filter trên
thanh công cụ
6. Sao chép, xóa, đổi tên Table trong CSDL
Phải đóng các Table cần thực hiện và trở về cửa sổ Database

6.1. Sao chép


Bước 1: chọn Table
Bước 2: vào thực đơn Edit/Copy
Bước 3: vào thực đơn Edit/Paste xuất hiện hộp thoại

Hình 2.9: Hộp thoại sao chép bảng.

Table Name: đặt tên Table mới (hoặc chọn bảng đích để nối dữ
liệu)
Paste Option: chọn dạng sao chép
Structure Only: chỉ lấy cấu trúc Table
Structure and Data: lấy cấu trúc Table và cả dữ liệu
Append Data to Existing Table: thêm dữ liệu vào cuối Table
đích.

6.2. Đổi tên

Bước 1: chọn Table

Bước 2: vào thực đơn Edit/Rename (hoặc phải chuột/Rename)


Bước 3: gõ tên mới/Enter.

6.3. Xoá Table

Bước 1: chọn Table

Bước 2: chọn các cách sau

Cách 1: phải chuột/ Delete

Cách 2: nhấn phím Delete trên bàn phím

Bước 3: xác nhận Yes để xoá.

Bài 2.3: Table - Bảng dữ liệu (phần 3 - tiếp)

7. Quan hệ giữa các bảng – Relationship

Với những cơ sở dữ liệu được tổ chức cẩn thận và bài bản, thường thì sau
khi thiết kế xong cấu trúc cho các table, người ta quy định luôn mối quan hệ giữa các
table này.

Khi tạo mối quan hệ thì tính nhất quán dữ liệu sẽ được đảm bảo và các
bảng có thể bổ xung thông tin cho nhau. Để dễ hiểu ta xét quan hệ giữa hai Table

a. Mối quan hệ một – một

Table A có quan hệ một – một với Table B nếu một giá trị trên trường quan hệ
của Table A chỉ xuất hiện một lần trên trường quan hệ của Table B và ngược lại.

b. Mối quan hệ một – nhiều

Table A có quan hệ một – nhiều với Table B nếu một giá trị trên trường quan
hệ của Table A có thể xuất hiện nhiều lần trên trường quan hệ của Table B nhưng
giá trị trên trường quan hệ của Table B chỉ xuất hiện một lần trên trường quan hệ của
Table A.
c. Mối quan hệ nhiều – nhiều

Mối quan hệ này thể hiện rằng một giá trị trên trường quan hệ của Table A có thể xuất hiện
nhiều lần trên trường quan hệ của Table B và ngược lại.

Nếu trong thực tế có mối quan hệ này khi triển khai mô hình CSDL quan hệ
phải tách ra làm hai quan hệ một – nhiều bằng cách tạo ra Table thứ ba.

Ví dụ: ta có hai bảng gồm các trường sau:

SinhVien ( MaSV, TenSV, NgaySinh , QueQuan, Khoa )

MonHoc ( MaMH, TenMH, SoTiet )

Hai bảng này có quan hệ nhiều - nhiều vì “Một sinh viên phải thi nhiều môn
học và một môn học có nhiều sinh viên đăng ký thi”

Ta tạo Table thứ ba để giải toả mối quan hệ nhiều - nhiều như sau:

KETQUATHI (MaSV, MaMH, Diem)

7.1. Tạo dây quan hệ

Bước 1: Hiện hộp thoại Relationships

Cách 1: Vào thực đơn Tools/Relationships

Cách 2: Chọn biểu tượng thanh công cụ

Bước 2: Hiện hộp thoại Show Table

Cách 1: Relationships/ Show Table...

Cách 2: Chọn biểu tượng trên thanh công cụ


Hình 2.10: Màn hình thêm các Table vào cửa sổ quan hệ.

Add: để bổ xung thêm Table vào quan hệ

Close: đóng cửa sổ Show Table.


Hình 2.11: Các bảng trong file CSDL TuyenSinh.mdb.

Bước 3: Đặt quan hệ giữa 2 bảng (dùng phương pháp kéo thả)

Xuất hiện hộp thoại Edit Relationships

Hình 2.12: Cửa sổ tạo các ràng buộc cho quan hệ

Enfore Referential Integrity

ép buộc tính toàn vẹn tham chiếu: đảm bảo sự đúng đắn của dữ liệu.

Cascade Update Related Fields: Cập nhật liên hoàn: khi ta thay đổi giá trị
của khoá chính thì giá trị tương ứng trong tất cả các bảng liên hệ với nó cũng tự
động thay đổi theo.

Cascade Delete Related Records: Xoá liên hoàn: bản ghi ở bảng chính bị
xoá thì các bản ghi ở các bảng liên hệ cũng bị xoá theo.

Lưu ý: Các chức năng Cascade Update Related Fields, Delete Related
Records chỉ có thể sử dụng được nếu ta chọn Enfore Referential Integrity.
Relationdhips Type: loại quan hệ

One to One: là quan hệ một – một

One to Many: là quan hệ một – nhiều

Chú ý: Nếu là quan hệ có ép buộc tính toàn vẹn tham chiếu thì dây quan hệ
sẽ có biểu diễn loại quan hệ (có đầu mút), còn nếu không thì dây quan hệ sẽ là
đường trơn không có biểu diễn loại quan hệ (không có đầu mút).

Bước 4: Chọn nút lệnh Create.

Hình 2.13: Các quan hệ trong file CSDL TuyenSinh.mdb.

7.2. Sửa dây quan hệ


Cách 1: Nhấn đúp chuột tại dây quan hệ

Cách 2: Nhấn phải chuột tại dây quan hệ / Edit Relationship...

7.3. Xoá dây quan hệ

Cách 1: Chọn dây quan hệ / nhấn phím Delete

Cách 2: Phải chuột dây quan hệ / Delete.

8. Các phép toán

8.1. Các phép toán số học


Chú ý: Thứ tự ưu tiên của các phép toán là lũy thừa, nhân, chia, chia lấy
nguyên, cộng, trừ. Ngoài ra có thể sử dụng dấu ( ) để thay đổi thứ tự ưu tiên.

8.2. Các phép toán so sánh


Chú ý: Đối với giá trị kiểu Date/Time thì ngày sau lớn hơn ngày trước.
Các phép toán so sánh tạo nên biểu thức Logic cho kết quả True (-1) hoặc False (0)

8.3. Các phép toán Logic: AND, OR, NOT


X Y X AND Y X OR Y NOT (X)
-1 -1 -1 -1 0
-1 0 0 -1 0
0 -1 0 -1 -1
0 0 0 0 -1
Chú ý: Thứ tự ưu tiên của các phép toán Logic là NOT -> AND -> OR. Ngoài
ra có thể sử dụng dấu ( ) để thay đổi thứ tự ưu tiên.

8.4. Phép toán ghép chuỗi


Cú pháp: <Biểu thức chuỗi 1> & <Biểu thức chuỗi 2>
Ví dụ: “Chao cac ban ” & ” hoc vien, sinh vien SaraCenter” trả về chuỗi
“Chao cac ban hoc vien, sinh vien SaraCenter”
Chú ý: Nếu thay phép toán & bằng phép toán + thì có thể cho kết quả sai
trong một số trường hợp.

8.5. Phép lấy mẫu


Cú pháp: LIKE <mẫu dữ liệu>
So sánh chuỗi dữ liệu với mẫu dữ liệu được chỉ sau LIKE
Các kí tự đại diện sử dụng trong mẫu dữ liệu
*: đại diện cho nhiều kí tự
?: đại diện cho một kí tự
#: đại diện cho một chữ số (từ 0 đến 9)
Ví dụ: Tìm những thí sinh có tên bắt đầu bằng kí tự “H”
LIKE “H*” trả kết quả “Hữu”, “Hạnh”, “Hương”,...
Ví dụ: Tìm những thí sinh có tên không bắt đầu bằng kí tự “T”: NOT LIKE “T*”

8.6. Phép toán BETWEEN...AND...


Cú pháp: BETWEEN <giá trị 1> AND <giá trị 2>
Lấy giá trị trong đoạn từ giá trị 1 đến giá trị 2

Ví dụ: BETWEEN 1 AND 10 ⇔ >=0 AND <=10


BETWEEN #01/01/1982# AND #30/12/1982#

⇔ >= #01/01/1982# AND <= #30/12/1982#

8.7. Phép toán IN


Cú pháp: IN (<giá trị 1>, <giá trị 2>,..., <giá trị N>)
Lấy giá trị rời rạc <giá trị 1> hoặc <giá trị 2>,...,<giá trị N>

Ví dụ: IN(1,3,4,5) ⇔ 1 OR 2 OR 4 OR 5

IN(“Hà Nội”, “Thái Bình”,”Hà Tây”) ⇔ “Hà Nội” OR “Thái Bình” OR ”Hà Tây”

NOT IN (“Hà Nam”, “Hải Phòng”) ⇔ <> “Hà Nam” AND <> “Hải Phòng”.

8.8. Phép toán IS NULL


Để lấy những giá trị rỗng (không có dữ liệu)
Ví dụ: Chọn ra những thí sinh chưa có thông tin về khu vực: MaKV is null
Chú ý chung:
Giá trị của kiểu Text nằm trong dấu nháy kép “…”
Giá trị của kiểu Date/Time nằm trong dấu thăng #… #
Có thể kết hợp các toán tử Logic với các toán tử khác như:
Not Like, Not Between, Not In, Is Not Null,...

Chương 3: Query - Truy vấn

I. Khái niệm

Là công cụ khá đặc trưng của MS Access, đáp ứng các yêu cầu giúp cho
người sử dụng tính toán xử lý và khai thác dữ liệu trên CSDL dưới nhiều hình thức.
Số liệu thì được lưu trữ trên Table, còn Query là công cụ để tìm và nhìn số
liệu dưới nhiều góc độ khác nhau.

Query dùng để tạo ra nguồn số liệu cơ sở cho các thành phần khác như:
Form, Report kể cả một Query khác, thậm chí tạo ra một Table.

Có 2 phương thức tạo Query

Thiết kế thông qua cửa sổ đồ hoạ QBE (Query By Example)

Hình 3.1: Truy vấn thông tin các thí sinh KV1.

Viết bằng lệnh SQL (Structured Query Language)


Hình 3.2: Truy vấn thông tin các thí sinh KV1.

Tuỳ theo kết quả cho ra bởi Query, người ta phân ra các loại sau:

1. Select Query: Dùng để chọn dữ liệu trên các bảng

sử dụng rất phổ biến, trong một chừng mực nào đó nó gần giống Filter nhưng
tính năng cao hơn một mức. Vì nó có khả năng:

Vấn tin trên nhiều Table

Tạo thêm các trường tính toán

Tóm lược và kết nhóm số liệu (Total Query)

Chọn các trường cần hiện hoặc ẩn, trình bày số liệu theo một trật tự mới
theo yêu cầu đặt ra

Tạo ra truy vấn hỏi đáp tại thời điểm chạy Query

Các bước tạo Query

Muốn tạo Select Query thì trong CSDL phải có Table chứa dữ liệu rồi.

Nếu truy vấn trên nhiều bảng thì phải thiết lập quan hệ giữa các bảng
(RelationShips)

Ta có thể tạo Select Query bằng các cách

Simple Query Wizard: có trợ giúp.

Design View: tự thiết kế.

Chú ý:muốn tạo truy vấn ta phải vào Queries trên thanh Objects để tạo.

1.1. Simple Query Wizard


Ta chỉ cần chọn bảng chứa các trường tham gia truy vấn theo các bước mà
Wizard hướng dẫn.

Cách 1: chọn Create query by using wizard trong cửa sổ Database

Cách 2: New/ Simple Query Wizard.

Hình 3.3: Cửa sổ tạo mới Query.

Bước 1: Xác định các trường tham gia vào truy vấn
Hình 3.4: Cửa sổ chọn các trường tham gia truy vấn.

Tables/Queries: chọn Table hoặc Query chứa trường cần lấy

Available Fields: liệt kê các trường có trong Table hoặc Query

Nhấn nút đưa một trường đã chọn

Nhấn nút đưa tất cả các trường

Nhấn nút bỏ một trường

Nhấn nút bỏ tất cả các trường

Selected Fields: liệt kê các trường tham gia truy vấn (hiển thị khi chạy truy
vấn)

Nhấn nút lệnh Next để chuyển tới bước sau

Chương 3: Query - Truy vấn( phần 2 - tiếp )

Bước 2: Lựa chọn việc hiển thị


Hình 3.5: Cửa sổ chọn cách hiển thị dữ liệu.

Chọn Detail: nếu muốn hiển thị chi tiết toàn bộ giá trị các trường đã chọn

Chọn Sumary: nếu muốn thực hiện thống kê trên trường dữ liệu. Sau đó
nhấn nút Summary Option... để chọn các chỉ tiêu thống kê

Sum: tính tổng giá trị của trường

Avg: tính giá trị trung bình của trường

Min: lấy giá trị nhỏ nhất của trường

Max: lấy giá trị lớn nhất của trường

Count: đếm số Record

Chú ý: chỉ xuất hiện nếu truy vấn trên trường có kiểu Number

Nhấn nút lệnh Next để chuyển tới bước sau


Hình 3.6: Các khoảng thời gian tổng kết.

Unique date/time: tổng kết (nhóm) theo ngày/giờ

Day: tổng kết theo ngày

Month: tổng kết theo tháng

Quater: tổng kết theo quý (3 tháng)

Year: tổng kết theo năm

Chú ý: chỉ xuất hiện nếu truy vấn trên trường có kiểu Date/Time

Bước 3: Đặt tên cho Query kết quả rồi nhấn chọn nút Finish.

Trong Access còn có các loại Query Wizard khác sau:

Find Duplicates Query Wizard

Chức năng: tìm các Record trùng lặp giá trị trên một số trường
nào đó
Ví dụ: tìm những bộ điểm giống nhau.

Find Unmatched Query Wizard

Chức năng: tìm các Record trong một bảng không có trong bảng
khác

Ví dụ: tìm những khu vực không có thí sinh dự thi.

1.2. Design View

Cho phép ta có thể tự tạo mới một Query bằng màn hình đồ họa (cửa sổ QBE)

Cách 1: chọn Create Query in Design View.

Cách 2: New/ Design View

Bổ xung thêm các bảng cần truy vấn từ hộp thoại Show Table

3.7: Cửa sổ đưa các Table chứa các trường tham gia truy vấn.
Hình 3.8: Cửa sổ thiết kế Query.

Field: chọn trường cần hiển thị.

Table: hiện bảng của trường được chọn.

Sort: sắp xếp các bản ghi.

Ascending: sắp xếp theo thứ tự


tăng dần

Descending: sắp xếp theo thứ tự


giảm dần

Not sorted: không sắp xếp

Show: ẩn hoặc hiện dữ liệu của trường trong


bảng khi trạy truy vấn (nếu ẩn thì trường đó để xây
dựng biểu thức điều kiện).

Criteria: dòng để thành lập biểu thức điều kiện.

Or: dòng để thành lập biểu thức điều kiện hoặc.


Chú ý: Trên cùng một dòng điều kiện là đồng thời (AND), khác dòng điều
kiện là hoặc (OR).

Ta có thể chạy truy vấn bằng các cách sau:

Cách 1: chọn Query/Open.

Cách 2: chọn Query/ Enter

Cách 3: vào thực đơn View/ DataSheet View.

Chương 3: Query - Truy vấn( phần 3 - tiếp )

Đổi tên của tiêu đề cột

Cú pháp: Tên mới: Tên cũ

Ví dụ: DiemToan: [DToan]

Tạo các cột (trường) tính toán

Cú pháp Tên trường mới: Biểu thức

Ví dụ: Tien: [SoLuong]*[DonGia]

Ví dụ: HoTen: [HoDem]&” ”&[Ten]

Chú ý chung:

Tên trường trong Access phải được đặt trong


dấu ngoặc vuông [ ]

Ví dụ: [Ho Ten]

Nếu tên trường xuất hiện trên nhiều bảng, khi


sử dụng phải chỉ rõ nó nằm ở bảng nào theo cú pháp
sau: [Tên bảng]![Tên trường]

Ví dụ: [HoSo]![SoBD], [DiemTS]!


[SoBD]

Khi phải xây dựng biểu thức phức tạp, ta nên


sử dụng cửa sổ Expression Builder bằng các cách
sau:

Cách 1: Kích phải chuột vào vùng cần xây


dựng biểu thức/ Build...

Cách 2: Chọn biểu tượng trên thanh công


cụ.
Hình 3.9: Cửa sổ xây dựng biểu thức.

a. Query có tham số

Khi ta muốn truy vấn với điều kiện động hơn (không cố định, tức là tại thời
điểm chạy ta mới nhập giá trị cho nó). Để thực hiện điều đó ta thực hiện truy vấn hỏi
đáp như sau:

Cú pháp: [Lời nhắc]


Hình 3.10: Xây dựng truy vấn hỏi đáp.

Xuất hiện hộp thoại hỏi đáp sau:

Ta nhập điều kiện khác nhau cho kết quả khác nhau.
Hình 3.11: Màn hình hiển thị kết quả truy vấn.

Chú ý:

Ta có thể truyền tham số lấy từ giá trị của đối tượng điều khiển
trên Form như sau:

(tham chiếu tới điều khiển trên Form)

Forms![Tên Form]![Tên điều khiển]

b. Query thống kê (Total Query)

Nhiều khi ta cần thống kê trên các trường dữ liệu của bảng như:

Đếm xem mỗi khu vực có bao nhiêu thí sinh.

Đưa ra tổng điểm cao nhất của từng khu vực.

Thống kê theo khu vực

Để làm được việc đó ta phải sử dụng các lựa chọn trong chức năng Totals.

Sum: Tính tổng các giá trị trong trường.

Avg: Tính trung bình cộng các giá trị trong trường.

Max: Tìm giá trị lớn nhất.


Min: Tìm giá trị nhỏ nhất.

Count: Đếm các bản ghi của bảng trên trường dữ liệu.

Expression: Xây dựng biểu thức.

Group By: Kết nhóm giá trị giống nhau trong trường.

First: Lấy giá trị của bản ghi đầu trong bảng.

Last: Lấy giá trị của bản ghi cuối trong bảng.

StDev: Tìm độ lệnh chuẩn

Var: Tìm phương sai

Where: Điều kiện lọc trước khi nhóm dữ liệu

Hình 3.13: Màn hình thiết kế truy vấn thống kê theo khu vực.

Chú ý: truy vấn thống kê thường tạo ra trường mới


Chương 3: Query - Truy vấn( phần 4 - tiếp )

2. Crosstab Query

Chức năng: để thống kê dữ liệu ở dạng đường chéo (kết nhóm số liệu
theo dạng hàng cột) của một bảng dữ liệu

Để truy vấn trên dữ liệu của nhiều Table thường phải tạo một Select Query làm
cơ sở (truy vấn cấp 1).

Ví dụ: Thống kê số lượng thí sinh nam, nữ theo từng khu vực

Hình 3.14: Màn hình hiển thị kết quả truyvấn.

Để sử dụng được truy vấn Crosstab Query ta cần tối thiểu 3 trường thể hiện
dữ liệu

Một trường dùng làm tiêu đề hàng (Row Heading)

Một trường dùng làm tiêu đề cột (Column Heading)


Một trường để thống kê giá trị (Value).

Có 2 cách tạo

Cách 1: CrossTab Query Wizard

Cách 2: Design View

Các bước tạo

Bước 1: New/ Design View/chọn Table/Query

Bước 2: Mở Query/ CrossTab Query (hoặc chọn biểu tượng


Query Type trên thanh công cụ).

Tại Field: chọn 3 trường cần truy vấn.

Tại Total: đối với hai trường làm tiêu đề hàng


và cột ta chọn Group by. Đối với trường cần thống kê
dữ liệu ta chọn các hàm thống kê

Tại Crosstab: chọn một trường Row Heading,


một trường Column Heading. Đối với cột cần thống kê
dữ liệu chọn Value.
Hình 3.15: Màn hình thiết kế truy vấn thống kê nam, nữ theo khu vực.

Chú ý: Khi chạy các truy vấn Select Query, Crosstab Query thì chúng ta thấy
kết quả trả lại là một bảng dữ liệu.

3. Action Query (truy vấn hành động)

Đây là loại truy vấn mà nó sẽ tạo ra sự thay đổi dữ liệu trong Table. Vì vậy
muốn xem được kết quả của nó ta phải vào thành phần (ngăn) Tables.

Truy vấn hành động gồm các loại sau:

3.1. Make Table Query

Chức năng: Tạo ra một bảng dữ liệu mới, có tính dự phòng trích rút dữ liệu
từ một hoặc nhiều bảng có quan hệ với nhau trong một CSDL, thoả mãn những điều
kiện nào đó.

Bước 1: Dùng Select Query để tạo ra bảng dữ liệu thoả mãn


điều kiện.

Bước 2: Vào Query/ Make-Table Query… (hoặc chọn biểu tư-


ợng trên thanh công cụ Query Type / Make-Table Query).
Hình 3.16: Hộp thoại tạo bảng mới.

Table Name: nhập tên bảng

Current Database: lưu trong CSDL hiện thời

Another Database: lưu sang CSDL khác (ở


File Name gõ đường dẫn tới CSDL khác).

Ví dụ: dùng Make-Table Query tạo ra Table LuuDiem gồm các trường
HoDem, Ten, NgaySinh, NoiSinh, MaKV, TongDiem.

3.2. Update Query

Chức năng: để sửa đổi hàng loạt dữ liệu trong các trường của Table theo
điều kiện xác định.

Bước 1: Chọn bảng rồi chọn các trường cần sửa DL


hoặc tham gia vào biểu thức điều kiện

Bước 2: Mở Query/ Update Query (hoặc chọn biểu


tượng Query Type/ Update Query trên thanh công cụ).

Tại Field: chọn trường cần tính toán.

Tại Update to: nhập công thức cần cập


nhật cho trường.

Tại Criteria: nhập điều kiện cần cập


nhật..

Chú ý: Nếu không xác định điều kiện thì tất cả dữ liệu trong trường sẽ bị
sửa.

Ví dụ: Cộng thêm 2.5 điểm vào cột TongDiem trong Table
LuuDiem cho các thí sinh ở KV3.

3.3. Delete Query

Chức năng: Dùng để xoá các bản ghi trong bảng dữ liệu, thoả mãn các điều
kiện đề ra.

Bước 1: Chọn bảng rồi chọn các trường


tham gia vào biểu thức điều kiện

( thành lập biểu thức điều kiện để xoá các


bản ghi)

Bước 2: Chọn Query/ Delete Query


(hoặc chọn biểu tợng Query Type/ Delete Query ).

Chú ý: Nếu không xác định điều kiện thì tất cả dữ liệu trong bảng sẽ bị xóa.

Ví dụ: Xoá tất cả các thông tin của các thí sinh ở KV1 trong Table LuuDiem.

3.4. Append Query

Chức năng: Dùng để ghép nối các bản ghi của hai bảng dữ liệu có cùng cấu
trúc, thoả mãn những điều kiện nào đó.

Bước 1: Tạo truy vấn chọn trên các bảng


dữ liệu nguồn.
Bước 2: Chọn Query/ Append Query
(hoặc chọn biểu tượng Query Type/ Append
Query).

Bước 3: Chọn bảng dữ liệu đích tại hộp


thoại Append.

Hình 1.5: Hộp thoại khai báo bảng đích.

Chương 3: Query - Truy vấn(phần cuối)

II. Một số hàm trong Access


1- Hàm xử lý dữ liệu Text

Lcase(Text): chuyển thành dạng chữ thường

Ví dụ: Lcase(“CHao cac Ban”) = “chao cac ban”.

Ucase(Text): chuyển thành dạng chữ hoa

Ví dụ: Ucase(“CHao cac Ban”) = “CHAO CAC BAN”.

Len(Text): trả về số kí tự có trong xâu

Ví dụ: Len(“Chao cac ban”) = 12

Left(Text, N): lấy N ký tự bên trái xâu

Ví dụ: Left(“Chao cac ban”,3) = “Cha”

Right(Text, N): lấy N ký tự bên phải xâu

Ví dụ: Right(“Chao cac ban”, 7) = “cac ban”

Mid(Text, I, N): Lấy N ký tự từ vị trí I của xâu.

Ví dụ: Mid(“Chao cac ban”, 4,9) = “o cac ban”

InStr(Text1, Text2): trả về vị trí xuất hiện của xâu Text2 trong xâu Text1

Ví dụ: InStr (“Khoa”, “ho”) = 2

InStr (“Khoa”, “o”) = 3

InStr (“Khoa”, “ha”) = 0 (không xuất hiện)

Space(N): tạo xâu chứa N dấu cách

Ltrim(Text): bỏ ký tự trống bên trái xâu

Ví dụ: Ltrim(“ Chao cac ban”) = “Chao cac ban”

Rtrim(Text): bỏ ký tự trống bên phải xâu


Ví dụ: Rtrim(“ Chao cac ban ”) = “ Chao cac ban”

Val(Text): đổi xâu dạng số về số.

Ví dụ: Val(“123”) =123

Chú ý: Đối số là dữ liệu xác định, hoặc tên trường, biểu thức có kiểu Text.
2- Hàm xử lý dữ liệu Number
Abs(Number): trị tuyệt đối
Ví dụ: Abs(-7) = 7
Fix(Number): trả về số nguyên
Ví dụ: Fix(6.78) = 6
Fix(-6.78) = -6
Int(Number): trả về số nguyên không vượt qua nó.
Ví dụ: Int(6.78) = 6
Int(-6.78) = -7
Sqr(Number): trả về căn bậc hai
Ví dụ: Sqr(4) = 2
Sgn(Number): kiểm tra dấu
Trả về giá trị = 1: là số dương
Trả về giá trị = 0: là số âm
Ví dụ: Sgn(-2) = 0
Sgn (8) = 1
Str(Number): chuyển số thành xâu
Ví dụ: Str(9.5) = “9.5”
Format(Number,”định dạng”): định dạng rồi trả về kiểu xâu
“0.00”: định dạng 2 chữ số thập phân
“0.000”: định dạng 3 chữ số thập phân
Ví dụ: Format(9.582, ”0.00”) = “9.58”.
Chú ý: Đối số là dữ liệu xác định, hoặc tên trường, biểu thức có kiểu
Number.
3- Hàm xử lý dữ liệu Date/Time

Day(Date/Time): trả về ngày

Ví dụ: Day(#22/05/2004#) = 22

Month(Date/Time): trả về tháng

Ví dụ: Month(#22/05/2004#) = 5

Year(Date/Time): trả về năm

Ví dụ: Year(#22/05/2004#) = 2004

Weekday(Date/Time): trả về kết quả là một số từ 1 – 7 biểu thị ngày trong


tuần

Format(Date/Time,'định dạng'): định dạng rồi trả về kiểu xâu

Ví dụ: Format(#22/05/2004#, ”mm – yyyy”) = “05 – 2004”

Chú ý: Đối số là dữ liệu xác định, hoặc tên trường có kiểu Date/Time

Date(): trả về ngày tháng năm hiện tại của hệ thống

Now(): trả về ngày tháng năm giờ hiện tại của hệ thống

Time(): trả về giờ hiện tại của hệ thống

Chú ý: Hàm Time(), Date(), Now() không có đối số

4- Các hàm thống kê

Ta kí hiệu Expr: biểu thức

Sum(Expr): Tính tổng các giá trị trong biểu thức.

Tính tổng số tiền: Ví dụ: Sum([SoLuong]*[DonGia]) hay Sum([ThanhTien])

Avg(Expr): Tính trung cộng các giá trị trong biểu thức.
Tính trung bình của tổng điểm

Ví dụ: Avg([TongDiem]) hay Avg([DToan] + [DLy] + [DHoa])

Max(Expr): lấy giá trị lớn nhất.

Lấy tổng điểm cao nhất : Ví dụ: Max([TongDiem])

Min(Expr): lấy giá trị nhỏ nhất.

Count(Expr): đếm các bản ghi của trường được chọn (không đếm bản ghi
rỗng).

5- Hàm lựa chọn


IIF (Điều_kiện, Giá_trị_1, Giá_trị_2)
Trả về Giá_trị_1: nếu điều kiện đúng

Giá_trị_2: nếu điều kiện sai

Ví dụ: IIF (X mod 2 = 0, “Số chẵn”, “Số lẻ”)

IIF ([TongDiem] < 19, “Trượt”, “Đỗ”)

6- Hàm kiểm tra dạng dữ liệu

IsNull (X): kiểm tra X có rỗng không

True: rỗng False: không rỗng

IsNumeric (X): kiểm tra X có phải dạng số không

True: là dạng số False: không phải dạng số

Ví dụ: IsNumeric(10)= True

IsNumeric(“Hello”)= False

IsDate (X): kiểm tra X có phải dạng ngày tháng không

True: là dạng ngày tháng, False: không phải dạng ngày tháng.
Chương 4: form – mẫu biểu

Khái niệm

Được dùng vào mục đích thân thiện hoá thao tác nhập liệu, trên Form ta có
thể sửa và xoá dữ liệu được lưu trữ trong các bảng.

(Form là một cửa sổ, cho phép ta thể hiện dữ liệu bằng các công cụ điều khiển
đồ hoạ một cách trực quan).

Ngoài ra Form còn tổ chức giao diện của chương trình gồm thanh thực đơn,
các nút lệnh điều khiển việc thực hiện ứng dụng.

Các dạng Form

Single Column: mẫu biểu dạng cột.

<![endif]>

Hình 4.1: Mẫu biểu thể hiện dữ liệu Table KhuVuc.

Tabular: mẫu biểu dạng bảng.


Hình 4.2: Mẫu biểu thể hiện dữ liệu Table DiemTS.

Main/Subform: trong một Form có chứa một Form khác gọi là Subform
cho phép cùng lúc hiển thị, cập nhật dữ liệu của nhiều bảng.

Hình 4.3: Mẫu biểu thể hiện dữ liệu của Table KhuVuc và Table DiemTS.

Trong MS Access

Design View: mẫu biểu trắng, tự ta phải thiết kế.


Form Wizard: Tạo các dạng mẫu biểu theo sự hướng dẫn của Access.
Người dùng có thể quyết định một số đặc trưng của Form

Các trường thể hiện trên Form

Hình thức trình bày

Các hiển thị dữ liệu...

Auto Form: tạo mẫu biểu tự động

Ta chỉ cần chọn Table hoặc Query nguồn. Access sẽ tự động thực hiện mọi
thao tác kế tiếp.
Columnar: mẫu biểu dạng cột

Tabular: mẫu biểu dạng bảng

DataSheet: mẫu biểu dạng bảng đường lưới

Chart Wizard: tự động tạo biểu đồ thể hiện dữ liệu trong cơ sở dữ liệu.
Quyết định một số tham số:

Thông tin trục tung, trục hoành

Hình thức của biểu đồ.

Pivot Table Wizard: cho phép đưa bảng tính Excel, có thể tính toán khi
đang làm việc trên Form.

Các loại Form

Mẫu biểu dữ liệu: hiển thị dữ liệu trong Table hoặc Query.

Mẫu biểu hội thoại: hỏi đáp, tìm kiếm dữ liệu theo điều kiện.

Tạo Form Wizard


Cách 1: New/Form Wizard

Cách 2: Chọn Create form by using wizard.

Hình 4.4: Cửa sổ tạo mới Form.

Chương 4: form – mẫu biểu(phần 2 - tiếp)


Hình 4.6: Cửa sổ chọn các kiểu liên kết.

Form with subforms: tạo Form phụ nằm trong Form chính

Liked forms: tạo Form độc lập được liên kết qua nút
lệnh.

Tạo Form Design View

1. Các thành phần của Form

Form Header: tiêu đề trên của Form.(Thường chứa


các Label)

Detail: phần chính của Form. Đây là phần lặp lại với
mỗi bản ghi

(Thường chứa các Label, Text Box)

Muốn dữ liệu thể hiện ở dạng cột ta dàn dọc các đối
tượng điều khiển, còn muốn thể hiện ở dạng bảng ta dàn
ngang các đối tượng điều khiển.

Form Footer: tiêu đề dưới của Form.

(Thường chứa các nút lệnh hay các ô dữ liệu


tính toán thống kê )

Page Header: tiêu đề trên của trang khi in Form.

Page Footer: tiêu đề dưới của trang khi in Form.

Hình 4.7: Cửa sổ Form ở chế độ thiết kế (Design).

Chú ý:

Tiêu đề trang không xuất hiện khi chạy Form.

Để bật/ tắt các thành phần của Form ta vào Menu View:

Form Header/ Footer: bật/ tắt tiêu đề của Form.

Page Header/ Footer: bật/ tắt tiêu đề của trang khi in


Form.

2. Một số thuộc tính của Form


Để thay đổi thuộc tính của Form ta thực hiện các cách sau:
Cách 1: kích phải chuột lên tiêu đề của Form/ Properties.
Cách 2: vào thực đơn View/ Properties.
a. Record Source : Dùng để chọn nguồn dữ liệu: có thể là Table hoặc
Query chứa các trường cần hiển thị trên Form.
b. Thuộc tính Default View
Dùng thể hiện các dạng Form :
Single Form: hiện một bản ghi trên Form.
Continuous Form: hiện nhiều bản ghi trên Form.
Datasheet: hiện các bản ghi lên form như một bảng dữ liệu.
c. Các thuộc tính khác của Form
Auto Center: Form mở ra nằm ở vị trí giữa màn hình.
Auto Resize: Form mở ra luôn trở về kích thước thiết lập ban
đầu.
Caption: đặt tiêu đề cho Form.
Scroll Bars: bật/ tắt thanh cuộn cho Form.
Record Selections: bật/ tắt công cụ để chọn các bản ghi (bên
trái Form).
Navigation Buttons: bật/ tắt công cụ chứa các nút di chuyển và thêm
các bản ghi.
Dividing Lines: bật/ tắt đường lới ngăn cách các thành phần của
Form.
Control Box: bật/ tắt các nút điều khiển Form (thu nhỏ, phóng to,
đóng,...)
Picture: ảnh nền của Form
Popup: Form được mở luôn nằ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: thực đơn ngang xuất hiện khi mở Form
Toolbar: thanh công cụ xuất hiện khi mở Form
Shortcut menu bar: thực đơn hiện khi nhấn chuột phải
3. Định dạng Font, Size, Color cho các đối tượng
Chọn đối tượng trên Form cần định dạng (đề phím Shift để chọn nhiều đối
tượng cùng lúc).
Cách 1: vào Menu View để bật thanh Formatting (Form/ Report).
Cách 2: thay đổi trực tiếp thuộc tính định dạng trong cửa sổ
Properties.
Ví dụ: một số thuộc tính trong thẻ Format
Back Color: mầu nền
Force Color: mầu chữ
Font Name: chọn font chữ
Font Size: chọn cỡ chữ.

4. Các đối tượng điều khiển trên Form

Hình 4.8: Các công cụ trên Toolbox.


Ý nghĩa của các công cụ

Select Objects: chọn đối tượng (đối tượng điều khiển)

Command Wizard: bật/tắt chức năng trợ giúp

Label: hộp nhãn (tiêu đề chú giải)

Text box: hộp dữ liệu (chứa dữ liệu của trường hay kết quả
của một biểu thức tính toán)

Option Group: tạo một nhóm các giá trị để lựa chọn

Toggle Button: dạng nút bập bênh

Option Buton: nút chọn


Check Box: hộp kiểm

Combo Box: hộp dữ liệu (hộp liệt kê thả)

List Box: hộp danh sách (hộp liệt kê)

Command Buton: nút lệnh

Image: chèn hình ảnh

Unbound Object Frame: chèn đối tượng dạng OLE (không


buộc dữ liệu)
Bound Object Frame: chèn đối tượng dạng OLE (có buộc
dữ liệu)

SubForm/Subreport: chèn Form phụ

Page Break: dấu ngắt trang

Tab Control: tạo các trang (thẻ)

Line: vẽ đường thẳng

Rectangle: vẽ hình chữ nhật

More Controls: chèn đối tượng ActiveX.

Để đặt một đối tượng điều khiển lên Form ta phải bật hộp công cụ Tool Box:
Cách 1: vào thực đơn View/ Tool Box

Cách 2: chọn biểu tượng trên hộp công cụ


Chú ý Hộp công cụ chỉ xuất hiện ở chế độ Form Design
Muốn thể hiện dữ liệu bằng đối tượng điều khiển đồ hoạ nào đó, ta kéo đối
tượng từ hộp Tool Box lên Form. Nếu không thấy đối tượng đó ta chọn biểu tượng

Chương 4: form – mẫu biểu(phần 3 - tiếp)


4.1. Đối tượng Text Box

Đây là đối tượng điều khiển gồm cả 3 loại:


Unbound: không buộc (không có nguồn dữ liệu khai báo ở
Control Source)
Bound: bị buộc (có nguồn dữ liệu khai báo ở Control Source)
Calculated Control: giá trị của nó được tính toán qua biểu thức.
Thiết lập Biểu thức theo cú pháp sau ở thuộc tính Control Source = Biểu thức
Ví dụ: giả sử ta có hai trường dữ liệu trong bảng đã được kéo vào Form là
Đơn giá, Số lượng ứng với hai Text Box có tên TxtDonGia và TxtSoLuong. Để tính
Thành tiền bằng một Text Box ta phải nhập công thức sau trong thuộc tính
Control Source = [TxtDonGia]*[TxtSoLuong]
Trong trường hợp muốn buộc dữ liệu vào trường của bảng hoặc truy vấn ta có các
cách sau:
Cách 1: để đặt một trường vào đối tượng Text Box ta đưa tên tr-
ường vào thuộc tính Control Source trong bảng Properties.
Cách 2: lấy các trường nằm trong hộp Field List.

Để bật/ tắt hộp Field List ta vào View/ Field List (hoặc chọn biểu tượng
trên thanh công cụ).

Hình 4.9: Gắn trường dữ liệu cho Text Box.


4.2. Đối tượng Command Button
Nút lệnh là một đối tượng điều khiển hữu dụng, bên trong nó có chứa các
hành động. Ta chỉ quan tâm cách tạo Command Button bằng công cụ Control
Wizard (có sẵn các hành động của nút lệnh).
Bước 1: Bật chức năng Control Wizard trên hộp công cụ Tool Box.
Bước 2: Đưa nút lệnh Command Button trong hộp Tool Box vào Form
Theo hướng dẫn của Wizard như sau:
Hình 4.10: Chọn các hành động của Command Button.
Categories: chọn các mục (chủng loại)
Actions: liệt kê các hành động trong từng mục cụ thể.
Giả sử ta chọn hành động Close Form trong Form Operation để
đóng mẫu biểu hiện thời
Nhấn Next để sang bước tiếp theo

Hình 4.11: Chọn cách hiển thị trên nút lệnh.

Text: gõ kí tự hiển thị trên nút lệnh


Picture: chọn biểu tượng (hình ảnh) hiển thị trên nút lệnh
Chọn Show All Pictures liệt kê các biểu tượng có sẵn trong
Access
Chọn nút Browse... để chọn các biểu tượng khác.
Nhấn Next để sang bước tiếp theo

Hình 4.12: Đặt tên cho nút lệnh.


Chọn nút lệnh Finish để kết thúc.

Các thuộc tính của nút lệnh


Name: tên của nút lệnh
Caption: tiêu đề cho nút bằng chữ.
Picture: đặt một ảnh nền cho nút.
Các thuộc tính sự kiện (Event) của nút lệnh
On Enter: sự kiện khi nhấn phím Enter.
On Click: sự kiện khi kích chuột.
On Dbl Click: sự kiện khi kích đúp chuột.
Các sự kiện trên có thể nhận các đối số
Event Procedure: chạy một thủ tục mã lệnh.
Macro: chạy một Macro.
= Hàm(danh sách đối số): chạy một hàm (Function).

Để kích hoạt nút lệnh bằng phím tắt Alt + ký tự bất kỳ, ta thêm vào trước ký tự
đó dấu & trong thuộc tính Caption của nút.
Dưới đây là bảng liệt kê các hành động trong các mục khác:
Categories Action
Find Record: tìm kiếm các Record
Find Next: tìm tiếp
Record Navigation
Go to First Record: nhảy tới Record đầu tiên.
(dùng để di chuyển
con trỏ tới Record, Go to Last Record: nhảy tới Record cuối cùng.
tìm kiếm các Record)
Go to Next Record: nhảy tới Record kế tiếp.
Go to Previoust Record: nhảy tới Record trước đó.

Record Operations Add New Record: thêm Record mới

(các hành động xử lý Delete Record: xoá Record hiện hành


Record) Save Record: lưu Record hiện hành.
Edit Form Filter: sửa chữa điều kiện lọc các Record
hiển thị trong Form.
Form Operations
Apply Form Filter: thực hiện lọc các Record hiển thị
(các hành động xử trong Form.
lý Form)
Close Form: đóng Form hiện hành
Open Form: mở một Form khác.
Report Operations Preview Report: in báo cáo ra màn hình
(các hành động xử lý Print Report: in báo cáo ra giấy qua máy in
Report)
Print Table: in dữ liệu trên Table
Miscellaneous
Run Macro: chạy Macro
(pha tạp)
Run Query: chạy Query

Chương 4: form – mẫu biểu(phần 4 - tiếp)


4.3. Đối tượng ComboBox

Là hộp danh sách trải xuống khi ta muốn chọn một trong nhiều giá trị nhập dữ
liệu vào trường, hoặc thể hiện để tìm kiếm.

Các bước tạo Combo Box bằng Control Wizard

Bước 1: bật chế độ Control Wizard và kéo Combo Box từ hộp công cụ
Toolbox.

Bước 2: chọn cách đặt giá trị lên Combo Box gồm một trong ba kiểu:

I want the Combo box to lookup the


value in a table or query: lấy giá trị cho Combo
Box từ các trường của bảng hoặc truy vấn bất kỳ.

I will type in the value that I want: tự


nhập giá trị cho Combo Box.

Find a record on my form....: tìm các bản


ghi trên Form trùng với giá trị chọn trong Combo
Box.

Bước 3: chọn các trường cần lấy giá trị hoặc nhập giá trị cho Combo Box.

Khi sử dụng Combo Box ta thường thay đổi các thuộc tính sau:

Row Source Type: kiểu nguồn dữ liệu.

Table/ Query: thể hiện dữ liệu của các trường trong bảng hoặc truy vấn.

Value List: tự liệt kê danh sách các giá trị.

Field List: liệt kê tên các trường của bảng hoặc truy vấn.
Row Source: chọn bảng hoặc truy vấn chứa dữ liệu cần lấy. Trong trường
hợp là Value List ta lịêt kê dữ liệu cách nhau bởi dấu ;

Column Count: chọn số cột của Combo Box.

Column Heads: ẩn/ hiện tiêu đề của các trường trong Combo Box.

4.4. Đối tượng Option Group

Là tập hợp nhiều đối tượng điều khiển thuộc trong các loại: Option Button,
Check Box, Toggle Button

Nếu dùng Wizard, cần xác định các thông tin sau:

Bước 1: chọn các nhãn

Bước 2: gán giá trị tương ứng với từng mục chọn (ngầm định là
1, 2, 3,...)

Bước 3: chọn kiểu nút, kiểu khung

Bước 4: đặt tiêu đề của nhóm.

4.5. Đối tượng Subform/Subreport

Là một đối tượng cho phép ta có thể chèn một Form phụ lên một Form chính,
nhằm thể hiện dữ liệu của hai bảng có quan hệ với nhau theo kiểu One to Many.

Các bước tạo Subform/ Subreport

Bước 1: tạo Form dạng Column cho bảng phía một.

Bước 2: tạo Form dạng Tabular cho bảng phía nhiều.

Bước 3: mở Form dạng Column ở chế độ Design rồi chọn biểu


tượng

Subform/ Subreport từ hộp công cụ Toolbox đặt vào phần Detail.


Bước 4: chọn Form dạng Tabular làm ở bước 2.

Chương 5: Report – Báo biểu

I. Khái niệm

Dùng để in ấn thể hiện dữ liệu dưới nhiều hình thức phong phú. Nó có ưu thế
hơn hẳn so với các phương pháp in dữ liệu khác

Có khả năng sắp xếp và phân nhóm dữ liệu (thống kê các nhóm dữ liệu)

Có thể nhúng hình ảnh, báo biểu con

Thực hiện phép toán phức tạp trong một nhóm cũng như nhiều nhóm

1. Các Report trong Access

Design View: Tự thiết kế

Report Wizard

Ta cần phải chọn các mục sau

Chọn nguồn dữ liệu (Table hoặc Query)

Chọn trường trong dữ liệu nguồn

Nếu muốn tạo báo cáo phân nhóm thì xây dựng trường cần phân
nhóm

Sắp xếp thứ tự nếu cần

Dạng và kiểu trình bày của báo cáo.

Dùng trợ giúp (Wizard) có thể tạo báo cáo nhanh nhưng kích cỡ thường lớn,
khuôn dạng và font chữ theo ngầm định của Access nên thường phải sửa thiết kế
Auto Report: Columnar (dạng cột), Tabular (dạng bảng)

Tự động đưa ra báo cáo khi đã chọn nguồn dữ liệu

Chart Wizard: dạng đồ thị

Ta cần phải chọn các mục sau:

Chọn các trường cần xuất hiện trong biểu đồ

Chọn dạng trình bày của biểu đồ

Sắp đặt thông tin trên các trục toạ độ

Đặt tiêu đề của biểu đồ

Label Wizard: cho phép chọn các trờng tên, địa chỉ,.. rồi định dạng chúng để
in nhãn thư (Access cung cấp một số loại nhãn thư phổ biến)

Ta cần phải chọn các mục sau:

Xác định kích cỡ và cách bố trí các nhãn trên giấy

Chọn Font chữ

Các trường cần lấy thông tin

Trường cần sắp xếp.

2. Các thành phần của Report


Thành phần ý nghĩa
Tiêu đề báo cáo Các điều khiển trong thành phần này sẽ xuất hiện ở trang đầu
tiên (chỉ một lần) trong báo cáo.
(Report Header)
Tiêu đề trang Các điều khiển trong thành phần này sẽ xuất hiện ở đầu mỗi
trang báo cáo.
(Page Header)
Chi tiết (Detail) Thể hiện các chi tiết dữ liệu của báo cáo.

Tiêu đề trang Các điều khiển trong thành phần này sẽ xuất hiện ở cuối mỗi
trang báo cáo.
(Page Footer)
Tiêu đề báo cáo Các điều khiển trong thành phần này sẽ xuất hiện ở trang cuối
cùng (chỉ một lần) trong báo cáo.
(Report Footer)
Ngoài các thành phần cơ bản trên trong báo cáo còn có thêm 2 thành phần
nữa
(chỉ sử dụng khi báo cáo thống kê theo nhóm dữ liệu)
Thành phần ý nghĩa
Đầu nhóm Các điều khiển nằm trong thành phần này sẽ xuất hiện ở đầu mỗi nhóm
báo cáo
(Group Header)
Cuối nhóm Các điều khiển nằm trong thành phần này sẽ xuất hiện ở
cuối mỗi nhóm báo cáo
(Group Footer)

3. Các thuộc tính của Report


Nói chung cũng giống như các thuộc tính của Form.

4. Các sự kiện của Report:


On Open: khi mở Report
On Close: khi đóng Report
On Active: khi cửa sổ chứa Report là cửa sổ hiện hành
On Deactive: khi cửa sổ chứa Report không còn là cửa sổ hiện hành
On No Data: nguồn dữ liệu không có bản ghi nào
5. Trình bày báo cáo
Chèn ngày giờ
Chọn vị trí cần chèn, rồi vào thực đơn Insert/Date and Time... xuất hiện hộp
thoại sau:
Include Date: chèn ngày
Include Date: chèn giờ

Hình 4.1: Hộp thoại chèn ngày giờ.


Chèn số trang trên Report
Vào thực đơn Insert/Page Numbers xuất hiện hộp thoại sau:

Hình 4.2: Hộp thoại chèn số trang.


Format: dạng hiển thị
Page N: chỉ hiển thị số trang
Page N of M: hiển thị số trang / tổng số trang
Position: vị trí hiện số trang
Top of Page [Header]: phía đầu trang
Bottom of Page [Footer]: phía cuối trang
Aligment: căn chỉnh
Left: hiển thị số trang ở lề trái mỗi trang
Center: hiển thị số trang ở giữa mỗi trang
Right: hiển thị số trang ở lề phải mỗi trang
Inside: hiển thị số trang ở lề trái trang lẻ, ở lề phải trang chẵn.
Outside: hiển thị số trang ở lề phải trang lẻ, ở lề trái trang chẵn.
Show Number on First Page: đánh số bắt đầu từ trang đầu tiên. Nếu
không chọn
thì đánh số bắt đầu từ trang số 2 trở đi.

Sắp xếp và phân nhóm dữ liệu


Cho phép nhóm, tổng cộng dữ liệu theo từng loại khác nhau. Có thể phân
nhóm theo nhiều trường.
Ví dụ: Nhóm theo khu vực, tỉnh/ thành, hoặc theo giới tính,…
Vào thực đơn View/Sorting and Grouping hoặc chọn biểu tượng trên thanh công cụ

Hình 4.3: Hộp thoại sắp xếp và phân nhóm.


Field/Expression: chọn Field / Biểu thức làm chỉ tiêu phân nhóm hay sắp
xếp dữ liệu cho báo cáo.
Lưu ý: Nếu là biểu thức thì phải có dấu = ở đầu.
Short Order: chọn hình thức sắp xếp dữ liệu
Acending: sắp xếp dữ liệu theo thứ tự tăng dần.
Descending: sắp xếp dữ liệu theo thứ tự giảm dần.
Group Properties: quy định các thuộc tính của nhóm
Group Header: ẩn /hiện (Yes/No) tiêu đề đầu nhóm
Group Footer: ẩn /hiện (Yes/No) tiêu đề cuối nhóm.
Group On: quy định phương thức xử lý lập nhóm cho các Field/Expression
làm chỉ tiêu phân nhóm
Each Value: lấy toàn bộ giá trị của Field/Expression làm chỉ tiêu phân nhóm
Group Interval: quy định khoảng giá trị có hiệu lực cho phương thức xử lý lập
nhóm trên tại mục Group On
(Nếu tại Group On là Each Value thì tại mục Group Interval phải quy định là 1)
Keep Together: một số quy định trình bày khi in.
No: in theo chế độ mặc nhiên
Whole Group: ngắt trang khi hết nhóm
With First Detail: in tiêu đề của đầu nhóm và dòng chi tiết đầu tiên của
nhóm trên cùng một trang.
Định dạng hiển thị dữ liệu theo điều kiện
Cho phép định dạng màu chữ, dáng chữ, màu nền. Tối đa được 3 điều kiện
Ví dụ: muốn định dạng dữ liệu của các đối tượng điều khiển theo điều kiện
Bước 1: chọn đối tượng
Bước 2: vào thực đơn Format/Conditional Formatting... Xuất hiện hình
sau:

Hình 4.4: Hộp thoại định dạng dữ liệu theo điều kiện.
Add: thêm điều kiện
Delete: xoá điều kiện Condition: điều kiện
Field Value Is: đặt điều kiện cho giá trị của trường
Expresstion Is: đặt điều kiện cho biểu thức
Betweent: nằm trong khoảng
Not betweent: nằm ngoài khoảng
Equal to: bằng Not equal to: không bằng
Greater than: lớn hơn
Greater than or equal to: lớn hơn hoặc bằng
Less than: nhỏ hơn
Less than or equal to: nhỏ hơn hoặc bằng.
Bước 3: Nhấn OK để kết thúc.
Tự động đánh số thứ tự
Tạo hộp TextBox đặt tại phần Detail, rồi khai báo các thuộc tính như sau:

Hình 4.2: Cửa sổ Properties của Text Box.


Control Source: nguồn dữ liệu cho đối tượng, gõ vào = 1 (bắt đầu từ 1)
Running Sum: cách đánh thứ tự
No: số không tự động tăng (chỉ hiện số 1)
Over Group: đánh số thứ tự theo từng nhóm.
Over All: đánh số thứ tự cho tất cả các dòng dữ liệu trên báo
biểu.
Một số hàm thường sử dụng trong thiết kế Report
[Page]: chèn số trang hiện thời của báo biểu
[Pages]: chèn tổng số trang của báo biểu
Date(): chèn ngày tháng năm hiện thời của hệ thống
Now(): chèn ngày tháng năm, giờ hiện thời của hệ thống
Các hàm thống kê, tổng cộng dữ liệu: Count, Sum, …
Chương 6: MaCro – Tập lệnh
I. Khái niệm
Tập lệnh là một công cụ mà Microsoft Access cung cấp cho người sử dụng
để có thể tạo ra các hành động đơn giản trong lúc xây dựng ứng dụng mà không
quan tâm đến ngôn ngữ lập trình VBA. Bên trong tập lệnh có chứa các hành động,
thứ tự các hành động này thông thường được thực hiện tuần tự từ trên xuống dưới,
tuy nhiên chúng ta cũng có thể kiểm tra một điều kiện nào đó phải đúng trước khi
thực hiện các hành động này (nếu cần)
Macro là tập hợp các lệnh (hành động) đã được sắp xếp quy định sẵn, giúp
ta có thể tự động hoá một quá trình xử lý nào đó.
Ví dụ:mở mẫu biểu, báo biểu được chỉ định trước…
Ngoài ra, sử dụng tập lệnh còn giúp ta xây dựng hệ thống thực đơn cho giao
diện Form, liên kết các đối tượng trong CSDL lại với nhau tạo thành ứng dụng hoàn
chỉnh.
Trong tập lệnh có chứa các thành phần sau:

Hình 5.1: Màn hình thiết kế tập lệnh


Action: cho phép chọn các hành động có trong tập lệnh
Comment: ghi chú cho các hành động. Thông thường chúng ta nên ghi rõ ràng
cho các động để về sau khi quay lại sửa chúng ta dễ dàng hiểu ngay ý nghĩa của các
hành động này.
Action Arguments: thể hiện danh sách các tham số tương ứng của hành
động đã chọn trong cột Action ở phía trên. Trong danh sách các tham số có một số
tham số có thể không cần khai báo hoặc để mặc định, nhưng ngược lại có một số
tham số bắt buộc phải khai báo thì lệnh mới có thể thực hiện được.
Ví dụ:hành động OpenForm thì ở Form Name bắt buộc phải khai báo tên
mẫu biểu cần mở.
Bảng tóm tắt các hành động theo từng công việc

Các hành động Công việc


AddMenu, SetMenuItem Tạo thực đơn cho ứng dụng, làm thay đổi
trạng thái của một chức năng trong thực
đơn.
RunCommand Thực hiện một lệnh trong thực đơn hệ
thống của MS Access.
OpenQuery, RunSQL, Thực hiện một truy vấn, câu lệnh SQL,
RunMacro, RunCode tập lệnh hoặc một hàm viết bằng ngôn
ngữ VBA.
RunApp Thi hành một ứng dụng khác đã cài trên
máy.
CancelEvent, StopMacro, Huỷ một biến cố, ngừng tập lệnh, thoát
StopAllMacro, Quit khỏi MS Access.
OutputTo, SendObject Gửi một đối tượng của MS Access ra ứng
dụng khác.
TransferDatabase, Chuyển đổi dữ liệu qua lại giữa MS
TransferSpreadsheet, TransferText Access và các ứng dụng khác.
Echo, HourGlass, Msgbox, Hiển thị các thông bảo trên màn hình.
SetWarnings
SendKeys Gửi các phím được nhấn vào ứng dụng.
ShowToolbar Hiện hoặc ẩn các thanh công cụ.
Beep Phát tiếng kêu bíp.
GoToRecord, FindRecord, Di chuyển bản ghi, tìm kiếm dữ liệu
FindNext
GoToPage, GoToControl Di chuyển qua các trang, các điều khiển
trên mẫu biểu.
Apply Filter Lọc dữ liệu
SelectObject, CopyObject, Chọn đối tượng, sao chép, xoá, đổi tên,
DeleteObject, Rename, Save lưu đối tượng.
MoveSize, Maximize, Di chuyển, thay đổi kích thước cửa sổ.
Minimize, Restore
OpenTable, OpenQuery, Mở và đóng các đối tượng trong MS
OpenForm, OpenReport, Access.
OpenModule, Close
SetValue Gán giá trị cho một điều khiển hoặc thuộc
tính của một điều khiển.
Requery, ShowAllRecord Cập nhật lại dữ liệu các điều khiển, hiện
lại các bản ghi đã lọc
OpenDiagram, OpenView, Truy cập trực tiếp đến các đối tượng của
OpenStoreProcedure SQL Server
Ví dụ: Tạo hành động hiển thị thông báo trên màn hình.
Hình 5.2: Màn hình thiết kế hành động MsgBox.
Message: nội dung thông báo
Beep: có phát tiếng “bíp” không
Type: biểu tượng trong hộp thông báo
Critical Warning?

Warning! Information

Title: tiêu đề thông báo (nếu bỏ trống sẽ hiện thị mặc định là
Microsoft Access)

Hình 5.3: Màn hình kết quả khi thi hành Macro.

Chương 6: MaCro – Tập lệnh(tiếp)


1. Tạo mới và thi hành một Macro
a. Tạo mới Macro
Từ cửa sổ Database chọn thành phần Macros, rồi chọn New
b. Thi hành Macro
Từ cửa sổ Database chọn Macro cần thi hành rồi chọn Run hoặc chọn biểu
tượng trên thanh công cụ
c. Sửa Macro
Từ cửa sổ Database chọn Macro cần sửa rồi chọn Design. Ta có thể thực hiện
các thao tác sau:
Thêm hành động, chọn lệnh Insert Rows
Xoá hành động, chọn lệnh Delete Rows
Thay đổi các tham số trong hành động
2. Tập lệnh có điều kiện Condition Macro
Là Macro có chứa các điều kiện thi hành cho từng hành động
Đặt điều kiện thi hành cho từng hành động trong Macro tại cột Condition.
Chú ý: nếu điều kiện cho Action dưới giống điều kiện của Action ngay trên thì
tại cột Condition có thể viết dấu ba chấm “...”
Cách xây dựng:
Cách 1: vào thực đơn View/Conditions.
Cách 2: nhấn biểu tượng trên thanh công cụ.
3. Nhóm tập lệnh Macro Group
Là Macro chứa nhiều Macro con được phân biệt nhau bởi tên Macro Name
Thay vì tạo ra từng tập lệnh rời rạc phải lưu với nhiều tên khác nhau không tập
trung trong danh sách đối tượng tập lệnh, thì chúng ta có thể gom các tập lệnh đó lại
chung với nhau và chỉ lưu với một tên nhằm giảm bớt đi số lượng các tập lệnh trong
danh sách đối tượng tập lệnh.
Khi quyết định gom nhóm thì phải có cùng chung các tính chất sau:
Gồm các hành động trên cùng một mẫu biểu hoặc báo biểu
Theo chức năng của các hành động
Cách thực hiện:
Cách 1: vào thực đơn View/Macro Names.

Cách 2: nhấn biểu tượng trên thanh công cụ.


Ví dụ:: Tạo ra nhóm tập lệnh DiChuyen gồm các hành động sau:
Chuyền con trỏ về bản ghi đầu
Chuyền con trỏ về bản ghi trước đó
Chuyền con trỏ tới bản ghi kế tiếp
Chuyền con trỏ tới bản ghi cuối
(Ta thấy rằng nhóm tập lệnh này có cùng chức năng di chuyển con trỏ)
Hình 5.4: Màn hình thiết kế nhóm tập lệnh DiChuyen.
Quy tắc gọi thi hành một Macro con trong Macro Group
Tên Macro Group.Tên Macro cần gọi
4. Các Macro khác
Autoexec Macro: là Macro tự động thi hành ngay sau khi mở file
CSDL
Autokeys Macro: là Macro chứa các tổ hợp phím nóng ( tắt).
Ví dụ:: ở trong cột Macro Names ta xây dựng cú pháp như sau:

5. Gắn Macro vào sự kiện của nút lệnh


Bước 1: Mở Form ở chế độ Design View
Bước 2: Mở bảng thuộc tính của nút lệnh
Chọn Event/ Chọn sự kiện / chọn Macro muốn thực hiện.

Hình 5.5: Cửa sổ Properties nút lệnh.

You might also like