You are on page 1of 107

TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

TRÖÔØNG TCN KYÕ THUAÄT COÂNG NGHEÄ HUØNG VÖÔNG


KHOA COÂNG NGHEÄ THOÂNG TIN


GIÁO TRÌNH

LƯU HÀNH NỘI BỘ


-- NĂM 2008 --

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 1


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

BÀI 01:
CƠ SỞ DỮ LIỆU TRONG MICROSOFT ACCESS
I. CÁC KHÁI NIỆM CƠ BẢN:
1) Dữ liệu là gì?
Dữ liệu là những thông tin về các đối tượng trong cơ sở dữ liệu.
Ví dụ:
 Đối tượng Học sinh gồm có: họ tên, ngày sinh, phái, địa chỉ, ……….
 Đối tượng Sách gồm có: tên sách, số trang, tác giả, ngôn ngữ, ………..
 Đối tượng Hóa đơn: mã hóa đơn, nhân viên lập đơn, ngày lập đơn, ……….
2) Khái niệm về cơ sở dữ liệu:
Cơ sở dữ liệu là một tập hợp dữ liệu có quy luật, có cấu trúc nhất định (thường ở
dạng bảng) được lưu trữ trên các thiết bị chứa tin nhằm phục vụ cho nhiều người sử
dụng. Trong đó, mỗi bảng được dùng để lưu trữ một đối tượng cụ thể nào đó đồng thời
giữa các bảng có thể có mối quan hệ với nhau.
Vai trò của CSDL trong Hệ thống thông tin: Sau khi xác định được mô hình thực
thể - kết hợp thì việc tiếp theo là xây dựng cơ sở dữ liệu trên máy tính. Đây là mức
nhận thức logic về thành phần dữ liệu. Vì thế yêu cầu cấu trúc của CSDL phải chuẩn và
hợp lý về mặt ngữ nghĩa.
3) Cơ sở dữ liệu quan hệ:
Là ý tưởng được tạo ra các cơ sở dữ liệu dưới dạng bảng mà những phần mềm
ứng dụng như Access, Foxpro... đang áp dụng. Mô hình CSDL quan hệ thiết kế, quản lý
dữ liệu dưới dạng bảng hai chiều gọi là các quan hệ nhằm phản ánh mối liên kết thực
giữa các đối tượng dữ liệu. Trong mô hình này có một số khái niệm cơ bản như sau:
 Bảng (Table): hay còn gọi là quan hệ bao gồm nhiều dòng và nhiều cột, trong
một bảng phải có ít nhất một cột.
 Cột (Column): hay còn gọi là trường (Field) nằm trong bảng với các thuộc tính
quan trọng như: tên trường (Field Name), kiểu dữ liệu (Data Type), độ rộng
(Field Size). Trong một bảng thì không thể có 2 cột trùng tên nhau, trên một
cột chỉ lưu một loại dữ liệu, thứ tự trước sau giữa các cột trong bảng là không
quan trọng.
Ví dụ: Ta sử dụng bảng MÔNHỌC để lưu trữ thông tin về các môn học
Mã MH Tên môn học Nội dung thiết kế bảng MÔN HỌC
01 Phân tích Thiết kế Các cột Tên cột Kiểu dữ liệu Độ rộng
02 Cơ sở dữ liệu Mã môn học MA MH Chuỗi 2
03 Visual Basic Tên môn học TEN MH Chuỗi 30
 Dòng (Row): nằm trong bảng và trong một bảng thì không thể có 2 dòng trùng
lắp nhau về thông tin lưu trữ. Thứ tự trước sau của các dòng trong bảng cũng
không quan trọng.
 Khóa chính (Primary Key): là một hay nhiều trường trong một bảng mà dữ liệu
tại các cột này bắt buộc phải có đồng thời phải duy nhất không được trùng lắp
(tính duy nhất của dữ liệu). Giá trị dữ liệu của khoá chính dùng để xác định duy
nhất các giá trị của các trường khác trong cùng một dòng.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 2


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 Khóa ngoại (Foreign Key): là một hay nhiều trường trong một bảng mà các
trường này lá khoá chính của một bảng khác, do đó dòng dữ liệu tại các cột
này bắt buộc phải tồn tại trong một bảng khác (tính tồn tại của dữ liệu)
Ví dụ: Để lưu trữ và quản lý thông tin của các học viên ta cần tổ chức các bảng đơn
giản sau:
 Bảng MÔN HỌC: lưu trữ thông tin về các môn học
Tên môn học Mã môn học
Bảng Phân tích Thiết kế 01
Cơ sở dữ liệu 02
Visual Basic 03
 Bảng SINH VIÊN: dùng để lưu trữ thông tin của các sinh viên.
Mã số Họ và tên Ngày sinh Thông tin khác
Dòng
A01 Võ Thị Ngọc Mai 27/07/1980 …………..
A02 Nguyễn Mai Phương 22/11/1981 …………..
 Bảng KẾT QUẢ THI: lưu trữ điểm thi từng môn cho các sinh viên
Mã số Điểm Mã môn học
Quan hệ
Cột A01 5.0 01
A01 6.5 03
A02 9.0 01
A02 8.5 02
Trong đó:
 Bảng MÔNHỌC có cột mã môn học là khoá chính, thông thường trong môn hình
quan hệ ta có thể viết bảng như sau:
MÔNHỌC (Mã môn học, Tên môn học)
(Các Field được gạch chân trong bảng là khoá chính của bảng, để thể hiện phụ
thuộc hàm trong bảng MÔNHỌC ta có thể viết: Mã môn học  Tên môn học)
 Trong bảng SINHVIÊN có cột mã số làm khoá chính và có thể viết thành:
SINHVIÊN (Mã số, Họ và tên, Ngày sinh, Địa chỉ ………)
(Để biểu diễn phụ thuộc hàm: Mã số  Họ và tên, Ngày sinh, Địa chỉ)
 Trong bảng KẾTQUẢTHI có 2 cột mã số và mã môn học là khóa ngoại. Trong
bảng này ở cột Mã số chỉ cho phép chứa các Mã sinh viên có trong bảng
SINHVIÊN và tương tự ở cột Mã môn học chỉ tồn tại các môn học có trong bảng
MÔNHỌC. Điều này thị hiểu nhiên vì chúng ta chỉ lưu trữ điểm thi của các sinh
viên có trong bảng SINHVIÊN.
KẾTQUẢTHI ( #Mã số, #Mã môn học, Điểm)
4) Các mối kết hợp (Relationship):
Mối kết hợp là sự liên kết hay ghép nối giữa 2 hay nhiều thực thể phản ánh chính
xác thực tế quản lý, để diễn đạt mối liên hệ giữa các thực thể ta sử dụng khái niệm mối
kết hợp. Mối kết hợp là sự diễn đạt về những liên kết nếu có giữa các loại thực thể khác
nhau và là phần tử trong mô hình tương ứng với một mối quan hệ giữa các thực thể
tham gia vào quan hệ đó. Mối kêt hợp được định danh bằng tên, thường là động từ hay
tính từ mang ý nghĩa về mối quan hệ giữa các lớp đối tượng liên quan trong tổ chức.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 3
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Tên của
Tên của loại thực thể mối kết Tên của loại thực thể
hợp

 Bản số của mối kết hợp Bản số của một thực thể đối với một mối kết hợp là cặp
(Bản số tối thiểu, Bản số tối đa). Trong đó chúng được định nghĩa như sau:
 Bản số tối thiểu: Bằng 0 hoặc 1, là số lần tối thiểu mà một thể hiện bất kỳ
của một thực thể tham gia vào các thể hiện của mối kết hợp
 Bản số tối đa: Bằng 1 hoặc n, là số lần tối đa mà một thể hiện bất kỳ của
một thực thể tham gia vào các thể hiện của mối kết hợp
 Bản số phải được thể hiện ở cả hai nhánh mối kết hợp. Bản số được ký hiệu
dạng (x,y), với bất kỳ vị trí tương đối nào của thực thể đối với mối kết hợp
thì chỉ số bên trái (hay x) là bản số tối thiểu, chỉ số bên phải (hay y) là bản
số tối đa
 Phân loại các mối kết hợp:
 Kết hợp 1-1: thực thể A và thực thể B có mối kết hợp là 1-1 nếu một thực thể kiểu
A tương ứng với một thực thể kiểu B và ngược lại.
1-1
Sinh viên Thẻ sinh viên
Ghi chú: Trong CSDL khi 2 thực thể có mối kết hợp 1-1 sẽ được đồng nhất.
 Kết hợp 1- n: thực thể A và thực thể B có mối kết hợp là 1-n nếu một thực thể
kiểu A tương ứng với nhiều thực thể kiểu B còn một thực thể kiểu B chỉ tương ứng
với 1 thực thể kiểu A.
1-n
Khách Hoá đơn
hàng
 Kết hợp n-n: thực thể A và thực thể B có mối kết hợp là n-n nếu một thực thể kiểu
A tương ứng với nhiều thực thể kiểu B và ngược lại.
N-N
Công Ty Mặt hàng
Ghi chú: Trong CSDL khi 2 thực thể có mối kết hợp n-n sẽ được thực thể hoá thành

Công Ty Sản xuất Mặt hàng

II. GIỚI THIỆU MICROSOFT ACCESS:


1) Microsoft Access là gì ?
Khái niệm về hệ quản trị cơ sở dữ liệu quan hệ (Relational DataBase Management
System): Là hệ thống các chương trình hỗ trợ các tác vụ quản lý, khai thác dữ liệu theo
mô hình cơ sở dữ liệu quan hệ. Microsoft Access cũng là một hệ quản trị cơ sở dữ liệu
quan hệ nó giúp cho người sử dụng lưu trữ thông tin dữ liệu bên ngoài vào máy tính
dưới dạng các bảng và có thể tính toán, xử lý trên dữ liệu trong các bảng đã lưu trữ.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 4


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

2) Các đặc điểm của Microsoft Access :


 Hỗ trợ cơ chế tự động kiểm tra khóa chính, phụ thuộc tồn tại, miền giá trị
… của dữ liệu bên trong các bảng một cách chặt chẽ.
 Với công cụ trình thông minh (Wizard) cho phép người sử dụng có thể thiết
kế các đối tượng trong Microsoft Access một cách nhanh chóng.
 Với công cụ truy vấn bằng thí dụ QBE (Query By Example) sẽ hỗ trợ cho
người sử dụng có thể thực hiện các truy vấn mà không cần quan tâm đến
cú pháp của các câu lệnh trong ngôn ngữ truy vấn có vấu trúc SQL
(Structure Query Language) được viết như thế nào.
 Với kiểu trường đối tượng kết nhúng OLE (Object Linking and Embeding)
cho phép người sử dụng có thể đưa vào bên trong tập tin cơ sở dữ liệu
Access các ứng dụng khác trên Windows như: tập tin văn bản Word, bảng
tính Excel, hình ảnh BMP, âm thanh WAV …
 Dữ liệu được lưu trọn gói trong một tập tin: Tất cả các đối tượng của một
ứng dụng chỉ được lưu trong một tập tin cơ sỡ dữ liệu duy nhất đó là tập
tin cơ sở dữ liệu Access (MDB).
 Ứng dụng có thể sử dụng trên môi trường mạng máy tính nhiều người sử
dụng, cơ sở dữ liệu được bảo mật tốt .
 Có khả năng trao đổi dữ liệu qua lại với các ứng dụng khác, có thể chuyển
đổi dữ liệu qua lại với các ứng dụng như Word, Excel, Fox, Dbase, HTML …
 Kết nối trực tiếp vào hệ cơ sở dữ liệu Microsoft SQL Server dể phát triển các
ứng dụng theo mô hình chủ khách (Client/Server)
3) Các đối tượng bên trong tập tin cơ sở dữ liệu Access:
Tập tin CSDL trong Access có phần mở rộng là MDB bao gồm các đối tượng chính:
 Bảng (Table): Là thành phần cơ sở của tập tin cơ sở dữ liệu Access, dùng để lưu
trữ dữ liệu, nó chính là cấu trúc cơ sở dữ liệu do đó là đối tượng đầu tiên phải được
tạo ra trước. Bên trong một bảng, dữ liệu được lưu thành nhiều cột và nhiều dòng.
 Truy vấn (Query): Là công cụ cho phép người sử dụng dùng ngôn ngữ truy vấn có
cấu trúc SQL (Structure Query Language) hoặc công cụ truy vấn bằng thí dụ QBE
(Query By Example) để thực hiện các truy vấn rút trích , chọn lựa dữ liệu hoặc cập
nhật dữ liệu (thêm, sửa, xóa) trên các bảng. Truy vấn bằng thí dụ là một công cụ
hỗ trợ việc thực hiện các truy vấn mà không cần phải viết các lệnh SQL , mà chủ
yếu chỉ dùng kỹ thuật kéo–thả (Drag– Drop) trên cơ sở đồ họa.
 Biểu mẫu (Form): Cho phép người sử dụng xây dựng nên các màn hình dùng để
cập nhật hoặc xem dữ liệu lưu trong các bảng , ngoài ra cũng cho phép người sử
dụng tạo ra các hộp thoại hỏi đáp giữa người sử dụng và hệ thống ứng dụng.
 Báo cáo (Report): Cho phép chúng ta tạo ra kết xuất từ các dữ liệu đã lưu trong
các bảng, sau đó sắp xếp lại và định dạng theo một khuôn dạng cho trước và từ đó
có thể đưa kết xuất này ra màn hình, máy in hoặc các dạng tập tin Word/Excel.
 Tập lệnh (Macro): Là công cụ cung cấp cho người sử dụng tạo ra các hành động
đơn giản trong Microsoft Access như mở biểu mẫu, báo cáo, thực hiện một truy
vấn….… mà không cần phải biết gì nhiều về ngôn ngữ lập trình Visual Basic.
 Bộ mã lệnh (Module): Với ngôn ngữ Visual Basic cho phép người sử dụng xây dựng
các hàm hoặc thủ tục của riêng mình để thực hiện một hành động phức tạp nào đó
mà không thể làm bằng công cụ tập lệnh, hoặc với mục đích cho chương trình chạy
nhanh hơn.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 5


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

4) Trình tự xây dựng chương trình bằng Access:


Access là ứng dụng nằm trong bộ phần mềm văn phòng Microsoft Office được
dùng để tạo ra các chương trình quản lý như: quản lý trong kinh doanh thương mại,
trong các lĩnh vực đào tạo, nhân sự, …
Việc xây dựng một ứng dụng quản lý bao gồm:
 Tạo các bảng để lưu trữ dữ liệu.
 Xây dựng các màn hình nhập|xuất dữ liệu.
 Tạo các mẫu báo cáo kết xuất.
 Xây dựng các thao tác để xử lý dữ liệu theo yêu cầu.
 Các chế độ bảo mật.
5) Khởi động
Start  All programs  Microsoft Office  Microsoft Office Access

- Chọn các tập tin đã mở trước đó.


- Chọn More để mở các tập tin đã lưu trên đĩa.
- Chọn Create a New File để tạo một tập tin mới

6) Các thao tác trong cửa sổ Database


a. Các lệnh cơ bản trên đối tượng:
Nhấp phải trên đối tượng 
chọn các lệnh cơ bản:
 Delete: xóa
 Rename: đổi tên
 Copy: Sao chép
 Cut: Di chuyển

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 6


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

b. Xuất đối tượng tới một CSDL khác

Nhấp phải trên đối


tượng  Chọn Export (hay
vào Menu File  Export) 
Chọn tập tin MDB để xuất đối
tượng vào.

c. Chép đối tượng từ một CSDL khác


Menu File  Get External Data  Import 
Chọn tập tin MDB trong hộp thoại “Import”
Chọn đối tượng trong hộp “Import
Objects”  OK

d. Lệnh gói gọn CSDL


Lệnh này thường được sử dụng để làm giảm kích thước tập tin MDB và sửa
chữa các lỗi phát sinh trong quá trình chỉnh sửa CSDL: Tại cửa sổ “Database” 
Menu Tools  Database Utilities  Compact and Repair Database.
Để biên dịch tập tin MDB ra thành tập tin chạy MDE ta thực hiện: Tại cửa sổ
“Database”  Menu Tools  Database Utilities  Make MDE files

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 7


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

BÀI 02:

TABLE TRONG MICROSOFT ACCESS


I. THIẾT KẾ TABLE:
1- Tổng quan:
 Chế độ thiết kế: Menu View  Design View
 Chế độ nhập liệu: Menu View  Datasheet View
 Ở cửa sổ Database: Open (chế độ nhập liệu) ; Design (chế độ thiết kế)
 Cột của Table gọi là Field, tên cột gọi là Field Name.
 Hàng của Table gọi là Record.
 Khóa chính của Table: Là một hay nhiều Field mà tại đó giá trị luôn luôn là duy
nhất được dùng đề phân biệt các Record với nhau.

2- Các bước tổng quát để tạo hệ thống Table trong một CSDL
 Tạo cấu trúc cho mỗi Table (FieldName, DataType, Description, FieldProperties,
khóa chính).
 Tạo quan hệ giữa các Table trong hệ thống.
 Nhập liệu.

2.1- Tạo cấu trúc Table

Database  Thẻ Table 


New  Chọn Design View trong
hộp New Table.

 Field Name: Nhập tên Field (không khoảng trắng, không dấu, ngắn gọn).
 Data Type: Chọn kiểu cho Field (xem danh mục kiểu).
 Description: Ý nghĩa của Field (tùy chọn)
 Field Properties: Các thuộc tính kèm theo (xem danh mục các thuộc tính).
▬ Chọn một hoặc nhiều Field cần làm khóa chính : Menu Edit  Primary Key
(Trường hợp có nhiều Field làm khóa chính ta kéo mouse tại đầu các Field này
để chọn).
▬ Lưu (tên Table không khoảng trắng, không dấu, ngắn gọn).

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 8


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
▬ Chú ý : Trong trường hợp chưa hoặc không tạo khóa chính thì khi đóng cửa
sổ Design của Table sẽ xuất hiện thông báo :
 Yes: Access sẽ tạo Field tên ID với kiểu AutoNumber để làm khóa cho Table.
 No: Table không cần khóa.

2.2- Danh mục các kiểu và thuộc tính


a. Kiểu của field

Kiểu Ý nghĩa
Text Chứa dữ liệu chuỗi (<=255 ký tự)
Memo Chứa dữ liệu văn bản (<=64000 ký tự)
Number Chứa dữ liệu số
Date/Time Chứa dữ liệu ngày/tháng - giờ/phút
Currency Chứa dữ liệu tiền tệ (dạng số có ký hiệu $)
AutoNumber Chứa dữ liệu số tuần tự
Yes/No Chứa dữ liệu luận lý (đúng|sai)
OLE Object Chứa dữ liệu nhúng (hình ảnh, đồ thị, …)
Hyperlink Chứa các địa chỉ liên kết trên mạng
b. Các thuộc tính theo kiểu
Kiểu Text
Thuộc tính Ý nghĩa
Field Size Số ký tự tối đa được phép nhập
Format Các dạng thức của dữ liệu
> Các ký tự nhập thành chữ in
< Các ký tự nhập thành chữ thường
Input Mask Qui định mặt nạ nhập dữ liệu
0 Bắt buộc nhập các số từ 0 – 9 Ví dụ :
9 Có thể nhập các số hoặc ký tự trắng Nhập : >LL000
L Bắt buộc nhập các chữ cái  Bắt buộc
? Có thể nhập các chữ cái nhập 2 chữ cái
A Bắt buộc nhập các số và chữ cái và 3 chư số,
& Bắt buộc nhập một ký tự bất kỳ trong đó 2 chữ
> Các ký tự theo sau đổi thành chữ in cái thể hiện
< Các ký tự theo sau đổi thành chữ thường bằng ký tự in.
Caption Tên field khi chuyển sang Datasheet View
Default Value Giá trị mặc nhiên khi nhập liệu
Validation Rule Biểu thức giới hạn giá trị nhập (RBTV cho field)
Validation Text Thông báo nhập sai giới hạn (sai RBTV)
Required Chỉ rõ dữ liệu nhập có bắt buộc hay không
Allow Zero Length Cho phép nhập chuỗi rỗng hay không
Indexes Lập chỉ mục và có được phép trùng lắp hay không

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 9


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Kiểu Number
Thuộc tính Ý nghĩa
Field Size Qui định phạm vi chứa số
Byte Chứa số nguyên từ 0  255
Integer Chứa số nguyên từ -32768  32767
Long Integer Chứa số nguyên từ -2147483648  2147483647
Single Chứa số thực
Double Chứa số thực lớn hơn
Format Qui định dạng hiển thị dữ liệu
General Number Dạng tổng quát như khi nhập
Currency Dạng có ký hiệu tiền tệ
Fixed Dạng có số số lẻ cố định
Standard Dạng có dấu phân cách hàng ngàn
Percent Dạng tính phần trăm
Decimal Place Số số lẻ cố định
Caption Tên field khi chuyển sang Datasheet View
Default Value Giá trị mặc nhiên khi nhập liệu
Validation Rule Biểu thức giới hạn giá trị nhập vào (RBTV)
Validation Text Thông báo nhập sai giới hạn (sai RBTV)
Required Chỉ rõ dữ liệu nhập vào có bắt buộc hay không
Indexes Lập chỉ và có được phép trùng lắp dữ liệu hay không
Kiểu Date/Time
Thuộc tính Ý nghĩa
Format Qui định dạng hiển thị dữ liệu
General Date Dạng tổng quát như khi nhập
Long Date Monday, September 27, 2004
Medium Date 27 – September – 04
Short Date 27/09/04
Input Mask Giống Text
Caption Chỉ định tên field khi chuyển sang Datasheet View
Default Value Giá trị mặc nhiên khi nhập liệu
Validation Rule Biểu thức giới hạn giá trị nhập vào (RBTV)
Validation Text Thông báo nhập sai giới hạn (sai RBTV)
Required Chỉ rõ dữ liệu nhập vào có bắt buộc hay không
Indexes Lập chỉ và có được phép trùng lắp dữ liệu hay không
Kiểu Yes/No
Thuộc tính Ý nghĩa
Format Qui định dạng hiển thị dữ liệu
Yes/No Yes hoặc No (0 hoặc -1)
Ture/False True hoặc False (0 hoặc -1)
On/Off On hoặc Off (0 hoặc -1)
Caption Tên field khi chuyển sang Datasheet View
Default Value Giá trị mặc nhiên khi nhập liệu
Validation Rule Biểu thức giới hạn giá trị nhập vào (RBTV)
Validation Text Thông báo nhập sai giới hạn (sai RBTV)
Required Chỉ rõ dữ liệu nhập vào có bắt buộc hay không
Indexes Lập chỉ mục và có được phép trùng lắp dữ liệu hay không
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 10
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

2.3- Quan hệ giữa các Table

a. Các loại quan hệ


▬ Để hạn chế việc lưu trữ dữ liệu trùng lắp dẫn đến kích thước lưu trữ lớn và
khó khăn trong việc bảo trì, ta thường chọn lọc và lưu trữ dữ liệu trên nhiều
Table khác nhau. Tuy nhiên, khi đó giữa các Table này thường có sự liên hệ
với nhau bằng cách trong Table này xuất hiện Field khóa chính của một Table
khác. Field này được gọi là khóa ngoại.
▬ Mục tiêu của việc khai báo quan hệ là phục vụ cho việc liên kết thông tin.
Đồng thời để tạo sự phụ thuộc của dữ liệu khi nhập.
▬ Có hai loại quan hệ thường gặp trong Access:
 Table A có quan hệ một - một với Table B khi một giá trị trên Field quan hệ
ở Table A chỉ xuất hiện một lần trên Field quan hệ ở Table B và ngược lại.
 Table A có quan hệ một - nhiều với Table B khi một giá trị trên Field quan
hệ ở Table A có thể xuất hiện ít nhất một lần trên Field quan hệ ở Table B.
Ngược lại, với một giá trị trên Field quan hệ ở Table B chỉ xuất hiện một lần
duy nhất trên Field quan hệ ở Table A.

b. Tạo quan hệ
▬ Menu Tools  Relationship
▬ Chọn các Table tham gia tạo quan
hệ từ cửa sổ Show Table (Manu
Relationship  Show Table để mở
cửa sổ Show Table).
▬ Giữa hai Table có quan hệ, kéo
Field quan hệ đặt chồng lên nhau.
▬ Đánh dấu  vào ba tùy chọn trong
hộp Edit Ralationship:
 Enforce Referential Integrity: Dùng để ràng
buộc giá trị nhập trên Field khóa ngoại phải
phụ thuộc tồn tại vào giá trị trong Field
khóa chính.
 Cascade Update Related Fields: Nếu muốn
khi sửa giá trị trên Field khóa chính thì giá
trị trên Field khóa ngoại cũng thay đổi theo.
 Cascade Delete Ralated Fields: Nếu muốn
khi xóa giá trị trên Field khóa chính thì giá
trị trên Field khóa ngoại cũng xóa theo.
c. Hiệu chỉnh dây quan hệ
▬ Xóa dây quan hệ: nhấp phải vào dây quan hệ  Chọn Delete
▬ Hiệu chỉnh thông số cho dây quan hệ: nhấp phải vào dây quan hệChọn Edit
Relationship
▬ Xóa bảng ra khỏi của sổ Relationship: nhấp chọn bảng  Bấm Delete
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 11
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
2.4- Nhập dữ liệu vào Table
▬ Nhập dữ liệu vào table trong chế độ Datasheet.
▬ Thông thường là dữ liệu nhập theo hàng.
▬ Giá trị nhập vào Field quan hệ bên “một” có thể không có bên “nhiều”. Ngược lại,
một giá trị nhập vào Field quan hệ bên “nhiều” bắt buộc phải tồn tại bên “một”.
▬ Chỉ có thể nhập Record mới ở cuối Table, không thể chèn một Record mới vào
giữa Table.
▬ Có thể sử dụng các lệnh sau trong quá trình nhập liệu:
 Menu Format  Font: Chọn phông chữ khi nhập liệu.
 Menu Record  Sort  Sort Ascending/Sort Descending: Sắp xếp dữ liệu khi
nhập.
 Menu Edit  Delete Record: Xóa Record.
a. Đối với các Field là khóa ngoại hoặc lồng khóa (bên nhiều), ta có thể tham
chiếu dữ liệu từ Field của bên “một” để thuận lợi trong việc nhập liệu (tránh
nhập dữ liệu chưa tồn tại bên “một”). Theo các bước sau:
 Tại cửa sổ “Design Table”  Đặt con trỏ tại dòng Field cần tham chiếu
 Field Properties  Thẻ Lookup
 Display Control  Combo Box
 Nhấp vào nút ba chấm trong mục Row Source
 Chọn Table chứa Field bên “một” chứa dữ liệu tham chiếu và kéo Field
xuống dòng Field
 Đóng cửa sổ hiện hành  Yes
b. Có thể tự tạo một danh sách các giá trị chọn lựa cho Field khi nhập liệu. Ví dụ:
Field Donvitinh có thể tạo các giá trị nhập: m, kg, lít, hộp, chai, …
 Tại cửa sổ “Design Table”  Đặt con trỏ trong Field cần tạo.
 Field Properties  Thẻ Lookup
 Display Control  Combo Box
 Mục Row Source Type  Value List
 Nhập danh sách cần tạo trong mục Row Source
c. Nhập hình vào Field Hinh:
 Đặt con trỏ tại ô cần chèn
 Menu Insert  Objects
 Chọn cách chèn hình:
 Create New: Chèn hình từ thư
viện chứa hình. Ví dụ như :
Corel, Paint, Word Picture, …
 Create From File: Chèn hình từ
File hình (bấm nút Browse để mở hộp thoại chọn File hình)

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 12


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

II. Giới thiệu các CSDL mẫu

1- CSDL quản lý bán hàng: Banhang.mdb

Chương trình quản lý các hóa đơn bán hàng tại một cửa hàng bán các sản
phẩm vật liệu xây dựng. Bao gồm các Table :
▬ Table Khachhang: Chứa các thông tin về khách hàng có quan hệ mua hàng
với cửa hàng.
▬ Table Nhanvien: Chứa các thông tin về các nhân viên làm việc tại cửa hàng.
▬ Table Sanpham: Chứa các thông tin về sản phẩm được bày bán tại cửa hàng.
▬ Table Hoadon: Chứa các thông tin về các hóa đơn xuất hàng.
▬ Table Chitiet: Chứa các thông tin chi tiết về các hóa đơn xuất hàng.

2- CSDL quản lý học viên: Hocvien.mdb

Chương trình quản lý các học viên đăng ký học các môn học ngắn hạn tại một
trung tâm Tin học & Ngoại ngữ. Bao gồm các Table:
▬ Table Hocvien: Chứa các thông tin về học viên đăng ký học tại trung tâm.
▬ Table Ketqua: Chứa kết quả học tập của các học viên trong mỗi lớp.
▬ Table Lop: Chứa danh sách các lớp học Tin học & Ngoại ngữ.
▬ Table Phancong: Chứa danh sách phân công giáo viên giảng dạy cho các lớp.
▬ Table Giaovien: chứa các thông tin về giáo viên hợp đồng giảng dạy.

3- CSDL quản lý kho hàng: KhoHang.mdb

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 13


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

BÀI 03:

QUERY TRONG MICROSOFT ACCESS


I. GIỚI THIỆU QUERY:
Query là công cụ khái thác và xử lý dữ liệu, nó được dùng để trích chọn và nối kết
các thông tin từ các Table. Có nhiều loại Query, nhưng Select Query là loại thông dụng
nhất, nó bao gồm các chức năng chính :
 Chọn các Field từ một hoặc nhiều Table.
 Tạo ra các Field mới.
 Tổng hợp dữ liệu trên các field.

Kết quả của Query là một Table và nó có thể đáp ứng các nhu cầu tra cứu thông
tin của người sử dụng và là cơ sở nguồn để tạo ra các Form và Report sau này.

Chế độ thiết kế: Menu View  Design View

Chế độ xem kết quả: Menu View  Datasheet View


II. THIẾT KẾ SELECT QUERY

1. Thiết kế Query:

Cửa sổ Database  Thẻ Query  New

Hộp thoại New Query: Design View OK

 Cửa sổ Show Table ta thực hiện:


 Chọn Table tham gia trong
danhsách.
 Bấm nút “Add”.
 Bấm nút “Close” khi nào đã
chọn xong các Table tham
gia.

 Cửa số Design (Cửa sổ QBE): Thực hiện các mục sau:


 Dòng Field: Kéo các Field tham gia tạo Query từ Table xuống (hay Click kép).
 Dòng Table: Hiển thị tên Table tương ứng.
 Dòng Sort: Chọn cách sắp xếp khi có nhu cầu (Ascending: giảm dần;
Descending: tăng dần). Thứ tự sắp xếp từ trái qua phải.
 Dòng Show: Xuất hiện hoặc không trong bảng kết quả (Datasheet).
 Dòng Criteria: Biểu thức điều kiện lọc dữ liệu cho Field.
 Dòng Or: Biểu thức điều kiện hoặc so với dòng Criteria.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 14


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 Chuyển qua chế độ Datasheet để kiểm tra kết quả Query.

 Menu File  Save để lưu.


Ví dụ 1: Cho biết Tên khách hàng, mã hóa đơn, ngày lập đơn, ngày nhận hàng.

Ví dụ 2: Cho biết Mã hóa đơn, ngày lập đơn, tên sản phẩm, số lượng, đơn giá.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 15


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

2. Các phép hỗ trợ khi thiết kế Query


2.1- Bảng các phép toán số học
Phép toán Ý nghĩa
^ Phép lũy thừa.
* Phép nhân.
/ Phép chia.
\ Phép chia nguyên.
+ Phép cộng.
- Phép trừ.
mod Phép chia dư.
() Phép toán gộp.
2.2- Bảng các phép toán chuỗi
Phép toán Ý nghĩa
& Phép ghép chuỗi.
2.3- Bảng các phép toán so sánh
Phép toán Ý nghĩa
= So sánh bằng
<> So sánh khác
> So sánh lớn hơn
<= So sánh nhỏ hơn hoặc bằng
< So sánh nhỏ hơn
>= So sánh lớn hơn hoặc bằng
2.4- Bảng các phép toán logic
 Phép toán phủ định: NOT
A not A
True False
False True

 Phép toán và: AND


A B A and B
True True True
True False False
False True False
False False False

 Phép toán hoặc: OR


A B A or B
True True True
True False True
False True True
False False False

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 16


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

2.5- Phép đối sánh mẫu

Cú pháp
<Field> like <mẫu dữ liệu>

▬ So sánh giá trị của Field với <mẫu dữ liệu>. Nếu giống thì trả về giá trị True,
ngược lại trả về False.
▬ Có thể sử dụng các ký tự đại diện sau để so sánh:
 Ký tự *: đại diện cho một chuỗi ký tự.
 Ký tự ?: đại diện cho một ký tự.
 Ký tự #: đại diện cho một ký số.
Ví dụ: Tenkh like “Cong ty TNHH *”  Tìm các khách hàng có tên bắt đầu là “Cong
ty TNHH”.
Ví dụ: Holot like “Nguyen *”  Tìm các nhân viên có họ “Nguyen”.

2.6- Phép toán “Between … And …”

Cú pháp
<Field> between <giá trị 1> and <giá trị 2>

▬ Tìm giá trị Field nằm trong một phạm vi. Nếu tìm thấy sẽ cho giá trị True,
ngược lại trả về False.
Ví dụ: Ngaylaphd between #01/01/02# and #31/12/02#  Tìm các hóa đơn lập
trong năm 2002.

2.7- Phép toán “In”

Cú pháp
<Field> in(<giá trị 1>;<giá trị 2>; …)

▬ Tìm các giá trị của Field phù hợp với một trong các <giá trị n> trong ngoặc.
Nếu tìm thấy thì trả về True, ngược lại trả về False.
Ví dụ: Thanhpho in(“Bien Hoa”;”Ha Noi”;”TpHCM”)  Tìm các khách hàng ở các
thành phố: Bien Hoa, Ha Noi, TpHCM.
Ví dụ: Month(Ngaylaphd) in(9;10)  Tìm các hóa đơn lập trong tháng 9 hoặc 10.

2.8- Phép toán “Is Null” và “Is not Null”

Cú pháp
<Field> is Null <Field> Is not Null

▬ Kiểm tra giá trị của Field có rỗng hay không.


Ví dụ: Dienthoaikh Is Null  Tìm các khách hàng chưa có điện thoại.
Ví dụ: Dienthoaikh Is not Null  Tìm các khách hàng đã có điện thoại.
Ví dụ: Ngaynhan Is Null  Tìm các hóa đơn chưa giao hàng.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 17


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

3. Một số các hàm thường dùng trong Query

Hàm Ý nghĩa
1 IIf(<điều kiện>;<giá trị 1>;<giá trị 2>) Kiểm tra điều kiện
Ví dụ:
IIf(ngaylaphd between #1/1/04# and #30/6/04#;”6 tháng đầu”;”6 tháng cuối”)
2 Month(<ngày>) Trả về giá trị tháng
Ví dụ:
Month(#15/12/04#)  12
3 Year(<ngày>) Trả về giá trị năm
Ví dụ:
Year(#15/12/04#)  2004
4 Day(<ngày>) Trả về giá trị ngày
Ví dụ:
Day(#15/12/04#)  15
5 Datepart(“mã ngày tháng năm”;<ngày>) Trả về khoảng phần của ngày
Ví dụ:
Datepart(“m”;ngaylaphd)  Trả về các giá trị tháng trong ngày lập đơn (1 – 12)
Datepart(“q”;ngaylaphd)  Trả về các giá trị quý trong ngày lập đơn (1 – 4)
Datepart(“yyyy”;ngaylaphd)  Trả về các giá trị năm trong ngày lập đơn
6 Val(<ký số>) Trả về giá trị số
Ví dụ:
Val(“12345”)  số 12345
7 Round(<số>;<cách làm tròn) Làm tròn số
Ví dụ: Round(123.45;1)  123.5

4. Tạo Field mới trong Query

Cú pháp
<Tên Field mới>: <biểu thức>
▬ Công thức tạo Field mới được nhập tại dòng Field trong cửa sổ QBE.
▬ Tên Field mới không có khoảng trắng và không dấu.
▬ Tên Field mới không được trùng với tên Field đã có.
▬ Biểu thức tạo Field mới thường có sự tham gia của các Field đã có và các Field
tham gia này phải có mặt trong cửa sổ QBE.
▬ Các giá trị “hằng chuỗi” được đặt trong cặp dấu nháy kép (“…”), các giá trị
“hằng ngày tháng” được đặt trong cặp dấu thăng (#...#).
▬ Trường hợp có hai Field trùng tên trên các Table nguồn thì cần phải chỉ rõ
bằng cú pháp: <tên table>.<tên Field>
▬ Có thể dùng Field mới tạo ra ở cột đứng trước tham gia vào biểu thức tạo ra
Field mới ở cột đứng sau.
▬ Có thể phóng lớn ô đang soạn thảo công thức bằng cách nhấn: Shift F2

Ví dụ 1: Cho biết Mã hóa đơn, tên sản phẩm, số lượng, đơn giá, thành tiền

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 18


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Thanhtien:Dongia*Soluong

Ví dụ 2: Cho biết Mã nhân viên, họ tên nhân viên, mã hóa đơn, thành tiền

5. Query có điều kiện


5.1- Điều kiện đơn hoặc kép thuộc về 1 Field

▬ Đặt điều kiện ngay tại ô Criteria của Field thông qua các phép toán đã biết.
Ví dụ: Cho biết các hóa đơn của khách hàng có mã số “kh005” đặt. Gồm: Mã hóa
đơn, ngày lập đơn, ngày nhận hàng, mã sản phẩm, số lượng.

Ví dụ: Cho biết danh sách các đơn đặt hàng lập trong quý 1 năm 2004. Gồm: Tên
khách hàng, mã hóa đơn, ngày lập đơn, ngày nhận hàng.

Between #1/1/04# and #31/3/04#

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 19


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

5.2- Điều kiện “Và” thuộc về nhiều Field

▬ Đặt điều kiện tại các ô Criteria của các Field tương ứng nằm trên cùng dòng
thông qua các phép toán đã biết.

Ví dụ: Cho biết các hóa đơn mà nhân viên có mã số 5 đã lập trong tháng 8 năm
2004. Gồm: Họ tên nhân viên, phái, mã hóa đơn, thành tiền.

Between #1/8/04# and #31/8/04#

5.3- Điều kiện “hoặc” thuộc về nhiều Field

▬ Đặt điều kiện tại các ô Criteria của các Field tương ứng nằm trên các dòng
khác nhau thông qua các phép toán đã biết.

Ví dụ: Cho biết các hóa đơn lập hoặc giao hàng trong quý 2 năm 2004. Gồm: Mã hóa
đơn, ngày lập đơn, ngày nhận hàng.

Between #1/4/04# and #30/6/04#

6. Tạo Query có khai báo thêm thuộc tính

▬ Ẩn các Record trùng nhau : Trong cửa sổ QBE  menu View  Properties 
Trong cửa sổ “Properties”  Unique Values : Yes

Ví dụ: Cho biết danh sách các khách hàng đặt đơn trong tháng 1 năm 2004. Gồm:
Mã khách hàng, tên khách hàng, điện thoại.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 20


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Between #1/1/04# and #31/1/04#

▬ Hiện các Record có giá trị thuộc một Field lớn nhất hoặc nhỏ nhất: Trong cửa
sổ QBE  Tại Field cần hiện giá trị lớn nhất hoặc nhỏ nhất  Ô Sort:
Descending hoặc Ascending  menu View  Properties  Trong cửa sổ
“Properties”  Top Values: 1

Ví dụ: Cho biết sản phẩm có đơn giá cao nhất. Gồm: Mã sản phẩm, tên sản phẩm,
đơn giá, đơn vị tính.

7. Tạo Query tham số

▬ Dạng Query điều kiện mà trong đó tại ô Criteria của các Field thay vì nhập các
biểu thức điều kiện cụ thể, ta nhập thay thế bằng các thông báo nằm trong
cặp dấu ngoặc vuông […].
▬ Khi chạy Query, thay vì Query hiển thị các Record theo điều kiện cụ thể thì sẽ
xuất hiện hộp thoại “Enter Parameter Query” để yêu cầu người sử dụng nhập
vào các giá trị theo ý muốn để làm điều kiện cho Query.

Ví dụ: Khi muốn xem danh sách các khách hàng theo thành phố “Biên Hòa” ta tạo
một Query và nhập điều kiện “Bien Hòa” tại ô Criteria của Field Thanhpho. Nếu
muốn xem khách hàng theo thành phố “Hà Nội” ta tạo một Query và nhập điều kiện
“Bien Hòa” tại ô Criteria của Field Thanhpho.

▬ Như vậy nếu có nhiều thành phố cần xem thì ta phải tạo nhiều Query tương
ứng và các Query này lại có cùng dạng. Điều này không thuận lợi trong việc
lưu trữ dữ liệu. Để thay thế cho điều này, ta tạo một Query như sau:

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 21


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Câu thông báo : [Nhập tên thành phố cần xem]

▬ Query này khi chạy sẽ xuất hiện hộp thoại “Enter Parameter Value” yêu cầu
bạn nhập tên thành phố bạn cần xem. Sau khi bấm OK thì Query sẽ cho hiện
lên danh sách các khách hàng theo nhu cầu.

8. Một số các thao tác khi thiết kế Query

▬ Thêm Table vào cửa sổ thiết kế: Menu Query  Show Table
▬ Xóa Table khỏi cửa sổ thiết kế: Chọn Table  Phím Delete
▬ Sử dụng bộ tạo biểu thức để tạo các biểu thức điều kiện : công cụ Build
▬ Chọn một cột: Nhấp mouse ở vị trí đầu cột.
▬ Xóa cột: Chọn cột  Phím Delete
▬ Di chuyển cột: Chọn cột  Kéo mouse trong vùng chọn.
▬ Chèn cột: Đặt con trỏ tại cột bên phải  Menu Insert  Column
▬ Khai báo thuộc tính cho Field: Nhấp phải tại Field  Properties. Gồm một số
thuộc tính:
 Description: Nội dung diễn tả ý nghĩa Field.
 Format: Các dạng thức của dữ liệu.
 Caption: Nhãn của Field.
III. Các loại Query khác tạo bằng Wizard
1. Find Duplicates Query
▬ Loại Query tìm kiếm các Record chứa giá trị trùng nhau trên một hay nhiều
Field nào đó. Query này được ứng dụng trong việc xác định các giá trị trên
Field có lặp lại hay không ?

Ví dụ: Cho biết những thành phố nào có từ 2 khách hàng trở lên. Gồm : Mã khách
hàng, tên khách hàng, điện thoại, địa chỉ.

▬ Các bước tạo:


 Cửa sổ “Database”  Thẻ Query  New
 Chọn Find Duplicates Query Wizard  OK

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 22


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 Hộp thoại 1: Chọn


Table|Query mà trên
đó có Field chứa giá
trị trùng nhau.

 Hộp thoại 2: Chọn


Field chứa giá trị
trùng.

 Hộp thoại 3: Chọn các


Field có trong Query.

 Hộp thoại 4: Đặt tên


cho Query.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 23


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

2. Find Unmatched Query


▬ Loại Query cho phép hiển thị các Record trong một bảng (bảng bên “một”) mà
không có trong một bảng khác (bảng bên “nhiều”)
▬ Ví dụ: Tìm các khách hàng chưa đặt đơn hay tìm các sản phẩm chưa có đơn
đặt hàng, …
▬ Các bước tạo:
 Cửa sổ “Database”  Thẻ
Query  New
 Chọn Find Unmatched Query
Wizard  OK
 Hộp thoại 1: Chọn Table bên
“một”.

 Hộp thoại 2: Chọn Table


bên “nhiều”.

 Hộp thoại 3: Hiển thị Field


quan hệ trong 2 Table trên.

 Hộp thoại 4: Chọn các


Field xuất hiện trong bảng
kết quả.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 24


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 Hộp thoại 5: Đặt tên cho Query.

IV. Total Query:


1. Tổng quan
▬ Dùng để nhóm các Record trên Table|Query giống nhau theo một tiêu chuẩn
nào đó của một hay nhiều Field để từ đó có được các thông tin liên quan đến
nhóm như : số Record trong nhóm, tổng giá trị của Field liên quan của nhóm,
giá trị cao nhất của Field liên quan của nhóm, …
Ví dụ:
 Giá trị của từng hóa đơn : số sản phẩm của hóa đơn, tổng thành tiền của
hóa đơn, trung bình thành tiền của các hóa đơn, …
 Thông tin về mỗi khách hàng: số hóa đơn đã đặt, tổng thành tiền phải trả, …
 Thông tin về mỗi sản phẩm: …
 Thông tin về mỗi nhân viên: …
 Thông tin về các hóa đơn: số sản phẩm trên đơn, thành tiền, …
▬ Các tiêu chuẩn thường dùng để tổng hợp:
Phương thức Ý nghĩa
Group by Nhóm các Record có giá giống nhau thành một.
Sum Tính tổng các giá trị trên cột của nhóm.
Avg Tính trung bình các giá trị trên cột của nhóm.
Max Tìm giá trị cao nhất trên cột của nhóm.
Min Tìm giá trị thấp nhất trên cột của nhóm.
Count Đếm số Record trên cột của nhóm.
Expression Cho biết cột là biểu thức tính toán.
Where Cho biết cột là một biểu thức điều kiện dùng để lọc Record trước khi nhóm.
2. Các bước tạo Total Query
▬ Bước 1: Cửa sổ Database  Thẻ Query  New  Design View
▬ Bước 2: Chọn các Table tham gia trong cửa sổ Show Table.
▬ Bước 3: Chọn các Field tham gia tạo Query.
▬ Bước 4: Menu View  Total  Xuất hiện thêm dòng Total trong cửa sổ Design.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 25


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Dòng Total là nơi để chọn các tiêu chuẩn cho Field

▬ Bước 5: Tại dòng Total  Chọn các tiêu chuẩn lập tổng nhóm (tiêu chuẩn mặc
nhiên được chọn là Group by).
▬ Bước 6: Kiểm tra kết quả Query: Menu View  Datasheet View
▬ Bước 7: Lưu Query
Một số lưu ý khi tạo Total Query:
 Có thể thực hiện việc tính tổng cộng trên tất cả các Record của một hoặc nhiều
Table bằng cách khi thiết kế Query không chọn tiêu chuẩn Group by trong các
cột có mặt trong lưới QBE.
 Ở chế độ Datasheet, Access cho hiển thị những tiêu đề phản ánh các kết quả
đã thực hiện. Chẳng hạn, AvgOfThanhtien, SumOfThanhtien, MaxOfDongia, ….
Nếu muốn, ta có thể đổi tên các tiêu đề này cho phù hợp. Nhưng Field mới tạo
sẽ không được phép tham gia trong biểu thức tạo Field mới của cột đứng sau.
 Có thể truyền tham số từ bàn phím vào Total Query.
 Field được chọn tiêu chuẩn Where sẽ không được đánh dấu chọn ở dòng Show.

3. Một số các ví dụ

Ví dụ 1: Cho biết số hóa đơn mà mỗi khách hàng đã đặt. Gồm: Mã khách hàng, tên
khách hàng, số hóa đơn.

Sohd:Mahd

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 26


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Ví dụ 2: Cho biết tổng số tiền mà mỗi khách hàng đã trả cho tất cả các đơn đặt
hàng. Gồm: Mã khách hàng, tên khách hàng, tổng thành tiền.

Thanhtien:dongia*soluong

Ví dụ 3: Muốn biết thông tin tổng hợp về khách hàng. Gồm: Mã khách hàng, tên
khách hàng, số hóa đơn, tổng thành tiền của các hóa đơn. (Tạo một Select Query
với sự tham gia của hai Total Query vừa tạo ở trên)

Kéo Field để tạo liên kết

Ví dụ 4: Cho biết thông tin về mỗi sản phẩm trong quý 3 năm 2004. Gồm: Mã sản
phẩm, tên sản phẩm, số hóa đơn đã ghi cho sản phẩm, tổng thành tiền sản phẩm.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 27


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

V. Tổng hợp bằng Crosstab Query


1. Tổng quan
▬ Có dạng tổng hợp dữ liệu như Total Query dựa trên việc lập nhóm của ít nhất là
2 Field và được trình bày dưới dạng bảng kết quả 2 chiều. Do đó sẽ dễ quan
sát và rõ ràng hơn.
▬ Crosstab Query rất thông dụng trong việc sử dụng làm nguồn để tạo các Report
hoặc Subform.

Ví dụ: Bảng tổng hợp thành tiền của mỗi khách hàng theo từng quý của năm 2004.

2. Các bước tạo Crosstab Query


▬ Bước 1: Cửa sổ Database  Thẻ Query  New  Design View
▬ Bước 2: Chọn các Table|Query tham gia tạo Query mới.
▬ Bước 3: Chọn các Field tham gia tạo Query.
▬ Bước 4: Menu View  Total  Xuất hiện dòng Total.
▬ Bước 5: Menu Query  Crosstab Query  Xuất hiện dòng Crosstab.
▬ Bước 6: Chọn các tiêu chuẩn:
 Chọn Column Heading ở dòng Crosstab ứng với chọn Group By ở dòng Total
của Field được dùng làm tiêu đề cột (chỉ được chọn một Column Heading).

 Chọn Row Heading ở dòng Crosstab ứng với chọn Group By ở dòng Total của
Field được dùng làm tiêu đề hàng (có thể chọn nhiều Row Heading nhưng có
ít nhất một Group By trong các Row Heading này).

 Chọn Value ở dòng Crosstab ứng với chọn một tiêu chuẩn tổng kết ở dòng
Total (không phải là Group By) của Field được dùng để tổng kết dữ liệu (chỉ
được chọn một Value).

 Chọn Not Shown ở dòng Crosstab ứng với Field được chọn Where để lập
điều kiện lựa chọn.

▬ Bước 7: Kiểm tra kết quả.


Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 28
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Một số lưu ý khi tạo Crosstab Query:


▬ Nếu Crosstab Query được dùng để làm nguồn cho Report hoặc Subform thì cần
phải chỉ định các tiêu đề cột cho bảng kết quả của Crosstab Query:

▬ Trong ví dụ trên, các tiêu đề cột “Quy1”, “Quy2”, “Quy3”, “Quy4” cần phải được
khai báo như sau :
 Bấm mouse tại vùng trống của
cửa sổ Disgn Query  Chọn
Properties
 Trong mục Column Heading
nhập: “Quy1”; “Quy2”; “Quy3”;
“Quy4”

3. Một số các ví dụ

Ví dụ 1: Giả sử muốn thiết lập một bảng biểu tổng hợp cho biết mỗi nhân viên của
công ty đã bán mỗi mặt hàng được bao nhiêu tiền và tổng số tiền là bao nhiêu.

Bảng kết quả:

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 29


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Ví dụ 2: Để tìm hiểu xem mỗi khách hàng của công ty đã đặt bao nhiêu đơn đặt
hàng trong mỗi tháng của năm 2004, đồng thời cho biết tổng số hóa đơn đã đặt hãy
thiết kế một Crosstab Query như sau:

Bảng kết quả :

VI. Các Query hành động

▬ Các Query cho phép cập nhật và hiệu chỉnh dữ liệu đồng loạt một cách tự động
trên các Record từ các Table trong CSDL.
▬ Các Query hành động có thể gây nên việc mất dữ liệu ngoài ý muốn, nên khi
thực thi sẽ xuất hiện một thông báo yêu cầu xác việc thực thi Query.
▬ Để tránh mất dữ liệu khi thiết kế các Query hành động nên tạo một bản sao
CSDL trước khi thực thi Query.

1. Make Table Query


a. Giới thiệu
▬ Make Table Query cho phép trích ra những Record từ một hoặc nhiều Table
theo những điều kiện được khai báo và sử dụng những Record này để tạo ra
một Table mới.

b. Ý nghĩa
▬ Thiết kế các báo cáo kết xuất những số liệu phát sinh tính từ một thời điểm nào
đó hoặc tính đến một thời điểm nào đó. Ví dụ, muốn thiết kế một bảng báo cáo
trình bày doanh số bán hàng trong 2 tháng cuối năm 2004. Thiết kế một Make
Table Query tạo ra một Table mới với những Record được trích từ các Record
hóa đơn bán trong 2 tháng cuối năm 2004 và sau đó dựa vào Table mới này để
thiết kế báo cáo.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 30
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

▬ Tạo ra bản sao phòng hờ cho một Table có tầm quan trọng đặc biệt.
▬ Làm tăng tính hiệu quả của Form và Report khi chúng cần những dữ liệu nguồn
từ nhiều Table. Việc tạo ra Make Table Query từ nhiều Table sau đó dùng nó
làm nguồn dữ liệu cho Form hoặc Report sẽ làm cho tốc độ khai thác dữ liệu
tăng lên đáng kể.
▬ Thế nhưng Make Table Query hoàn toàn bị động và chỉ được ghi nhận tại thời
điểm chạy Query.

c. Các bước tạo Make Table Query


▬ Bước 1 : Thực hiện việc tạo Query trong chế độ Design View.
▬ Bước 2: Chọn các Table và các
Field cần thiết.
▬ Bước 3: Menu Query  Make
Table Query
▬ Bước 4: Hộp thoại “Make Table”:
 Table Name: Nhập tên Table
mới.
 Current Database: Table mới sẽ thuộc CSDL hiện hành.
 Another Database: Table mới đặt trong một CSDL khác được khai báo trong
hộp File Name.
▬ Bước 5: Kiểm tra kết quả Query: Menu View  Datasheet View
▬ Bước 6: Menu Query  Run để thực thi Query.

Chú ý:
▬ Sau khi chạy (Run) Make Table Query trong CSDL sẽ tồn tại thêm một Table
mới, các Field trong Table mới được lấy từ những Table khác và có cùng các
thuộc tính. Tuy nhiên, Table này không có Field khóa chính và không có sự liên
hệ nào khác. Có thể mở Table mới này ở chế độ Design View để thêm khóa
chính, thiết lập mối quan hệ hoặc khai báo thuộc tính cho những Field của Table.
▬ Chỉ thực thi (Run) Make Table Query khi nào thực sự muốn tạo một Table mới.

2. Delete Query:

a. Giới thiệu

▬ Dùng để loại bỏ các Record ra khỏi Table theo một điều kiện nào đó. Đồng thời
bảo đảm tính chính xác trong thao tác xóa bỏ.
▬ Trong phần lớn trường hợp, chỉ có thể xóa bỏ những Record trong một Table.

b. Các bước tạo Delete Query


▬ Bước 1: Tạo Query trong chế độ Design.
▬ Bước 2: Chọn Table.
▬ Bước 3: Chọn Menu Query  Delete
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 31
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

▬ Bước 4: Trong cửa sổ Design kéo dòng có biểu tượng dấu * của Table chứa các
Record muốn xóa vào vùng lưới QBE (Ô Delete của Field này xuất hiện từ From).
▬ Bước 5: Chọn các Field dùng để đặt điều kiện xóa vào các cột tiếp theo (Ô
Delete của các vùng này sẽ xuất hiện từ Where).
▬ Bước 6: Trong ô Criteria của các vùng có từ Where khai báo các điều kiện xóa.
▬ Bước 7: Chuyển sang chế độ Datasheet View để kiểm tra Query.
▬ Bước 8: Thực thi Query: Menu Query  Run

3. Append Query:
a. Giới thiệu
▬ Append Query dùng để cập nhật thêm dữ liệu vào cuối một Table từ một Table
khác. Mặt khác cũng có thể đưa thêm dữ liệu vào Table phụ thuộc vào một điều
kiện nào đó.

b. Các bước tạo Append Query


▬ Bước 1: Tạo Query trong chế độ Design.
▬ Bước 2: Chọn Table có dữ liệu muốn nối thêm vào Table khác.
▬ Bước 3: Chọn Menu Query  Append Query  Xuất hiện dòng Append to trong
lưới QBE.
▬ Bước 4: Hộp thoại “Append”:
 Table Name: Nhập tên Table
đích nơi muốn thêm dữ liệu vào.
 Current Database: Table đích
nằm trong CSDL hiện hành.
 Another Database: Table đích
nằm trong một CSDL khác được
khai báo trong hộp File Name.
▬ Bước 4: Chọn các Field có dữ liệu cần nối thêm vào lưới QBE (tên Field được so
sánh trong các ô Append to).
▬ Bước 5: Thiết lập điều kiện lựa chọn tại các ô Criteria.
▬ Bước 6: Kiểm tra kết quả của Query trong chế độ Datasheet.
▬ Bước 7: Thực thi Query: Menu Query  Run

4. Update Query
a. Giới thiệu
▬ Cho phép hiệu chỉnh và cập nhật có hệ thống dữ liệu của các Table đang tồn tại
trong CSDL hiện hành.

b. Các bước tạo Update Query


▬ Bước 1: Tạo Query trong chế độ Design View.
▬ Bước 2: Chọn Table tương ứng vào vùng lưới QBE.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 32
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

▬ Bước 3: Chọn Menu Query  Update Query  Xuất hiện dòng Update to trong
lưới QBE.
▬ Bước 4: Đưa các Field muốn cập nhật và các Field để lập tiêu chuẩn cập nhật
vào lưới QBE.
▬ Bước 5: Nhập tiêu chuẩn cập nhật vào các ô Criteria tương ứng.
▬ Bước 6: Nhập biểu thức có giá trị cần cập nhật vào các ô Update to tương ứng.
▬ Bước 7: Kiểm tra Query trong chế độ Datasheet View.
▬ Bước 8: Thực thi Query: Menu Query  Run

*********************************************************

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 33


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

BÀI 04:

FORM WIZARD TRONG MICROSOFT ACCESS


I. Tổng quan:

▬ Form là đối tượng dùng để cập nhật hoặc trình bày dữ liệu trong các Query. Form
có hình thức rất phong phú do đó thường được dùng để thiết kế các giao diện để
cập nhật dữ liệu vào các Table (Gọi là Form có nguồn).
▬ Ngoài ra Form còn được dùng để tạo các vùng làm việc trung gian (hộp thoại)
trong quá trình xử lý dữ liệu (Gọi là Form không có nguồn).
▬ Thiết kế Form theo hướng dẫn của Access (Form Wizard) là tạo ra Form có nguồn.
▬ Chế độ hiển thị Form: Menu View  Form View
▬ Chế độ thiết kế Form: Menu View  Design View

II. Form Wizard

1. Tạo Form đơn

▬ Loại Form có nguồn là một Table hoặc một Query với 4 dạng hiển thị:
 Columnar: Dữ liệu hiển thị theo cột và tại mỗi thời điểm chỉ tồn tại duy nhất
một Record.
 Tabular: Dữ liệu hiển thị theo hàng và mỗi hàng là một Record.
 Datasheet: Dữ liệu có dạng một bảng tính.
 Justified: Dữ liệu sắp xếp liên tục từ trái qua phải và từ trên xuống dưới và
tại mỗi thời điểm chỉ tồn tại duy nhất một Record.
▬ Các bước tạo Form đơn:
 Tạo Query nguồn (nếu cần)  Cửa sổ
Database  Thẻ Form  New  Cửa sổ
New Form  Chọn Form Wizard và chọn
nguồn trong hộp “Choose the table or query
where the object’s data come from”  OK

 Hộp thoại 1: Chọn các


Field hiển thị trên Form
từ “Available Field” qua
“Selected Field” (Field
không được đưa qua vần
thuộc nguồn của Form).

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 34


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 Hộp thoại 2: Chọn dạng hiển thị Form.

 Hộp thoại 3: Chọn loại nền cho Form.

 Hộp thoại 4: Đặt tên cho Form (nên


đặt không có khoảng trắng).

Ví dụ 1: Mẫu Form dạng Columnar


với nguồn là Table Nhanvien.

Ví dụ 2: Mẫu Form dạng Tabular với


nguồn là Table Nhanvien.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 35


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Ví dụ 3: Mẫu Form dạng Justified


với nguồn là Table Nhanvien.

2. Tạo Main – Sub Form

▬ Loại Form có nguồn là các Field được chọn từ các Table có quan hệ “một - nhiều”.
Trong đó, Form hiển thị gồm hai vùng: vùng chứa các Field bên “một” và vùng
chứa các Field bên “nhiều”.
▬ Các bước tạo Main – Sub Form:
 Tạo Query nguồn cho Mainform và Subform (nếu cần).
 Cửa sổ “Database”  Thẻ Form  New
 Chọn Form Wizard  Chọn nguồn cho Mainform trong hộp “Choose the table
or query where the object’s data come from”.
 Hộp thoại 1: Chọn các Field
hiển thị trong vùng Mainform
đưa qua danh mục Selected
Field. Sau đó, chọn nguồn
Subform trong hộp Table|Query
và chọn các Field hiển thị trong
vùng Subform đưa qua danh
mục Selected Field.

 Hộp thoại 2: Hiển thị dạng Main –


Sub Form với tùy chọn Form with
Subform hoặc Link Form.

 Hộp thoại 3: Chọn dạng


Subform (Datasheet hoặc
Tabular).

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 36


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 Hộp thoại 4: Chọn loại nền cho Form.

 Hộp thoại 5: Đặt tên cho


Mainform và Subform.

Ví dụ: Mẫu Main – Sub Form


“Nhanvien – Hoadon”

3. Các thao tác trên Form:

3.1- Di chuyển giữa các Record

▬ Sử dụng thanh dịch chuyển Record ở cuối Form.

Chuyển về record đầu tiên (first record)

Chuyển về record đứng trước (previous record)

Record hiện hành

Chuyển tới record đứng sau (next record)

Chuyển tới record cuối cùng (last record)

Cho phép nhập record mới (add new record)

3.2- Chỉnh sửa các đối tượng trên Form

▬ Chuyển qua chế độ Design View để chỉnh sửa. Dùng mouse chọn từng đối tượng
để có thể chỉnh sửa bằng các thao tác như các đối tượng Drawing của Word.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 37
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

BÀI 05:
REPORT WIZARD TRONG MICROSOFT ACCESS
I. Tổng quan

▬ Là đối tượng dùng để kết xuất dữ liệu trên Table|Query và có tác dụng rất mạnh
về mặt in ấn. Do đó, cần phải chú ý về mặt mỹ thuật khi thiết kế.
▬ Ngoài ra, để có thể thiết kế được Report ta cần phải chú ý rằng máy tính phải
được khai báo kết nối với một máy in.
▬ Chế độ thiết kế : Menu View  Design View
▬ Chế độ xem trên màn hình : Menu View  Print Preview

II. Report Wizard

▬ Cũng giống như Form, ta cũng có thể tạo Report thông qua trợ giúp của Access
theo các bước sau:
 Tạo Query nguồn cho Report (nếu cần).
 Cửa sổ “Database”  Thẻ Report  New
 Chọn Report Wizard và chọn nguồn
trong hộp “Choose the table or
query where the object’s data comes
from”

 Hộp thoại 1: Đưa các Field hiển


thị trong Report từ Available
Field qua Selected Field.

 Hộp thoại 2: Chọn Field lập


nhóm cho Report.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 38


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 Hộp thoại 3: Chọn Field sắp xếp


(tùy chọn). Nếu có nhu cầu
thống kê các giá trị số trên
Report ta chọn nút Summary,
sau đó chọn các phương thức :
sum, avg, min, max.

 Hộp thoại 4: Chọn dạng hiển thị


Report.

 Hộp thoại 5: Chọn loại nền


cho Report.

 Hộp thoại 6: Đặt tên cho Report


(nên đặt không có khoảng trắng).

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 39


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Ví dụ 1: Mẫu Report được lập nhóm theo tên khách hàng.

Ví dụ 2: Mẫu Report được lập nhóm theo tên khách hàng và mã hóa đơn.

III. Report Label Wizard

▬ Loại Report cho phép tạo ra các mẫu dạng thư mời giống như chức năng thư trộn
trong Word.
▬ Người thiết kế cần phải xác định kích thước và nội dung của mỗi mẫu thư trước
khi bắt tay vào thiết kế.
▬ Ví dụ: Giả sử cửa hàng cần có các thư mời để gởi cho các khách hàng của mình
dự buổi tiệc nhân dịp tất niên tại một nhà hàng nào đó theo thời gian qui định.
Nhân viên vi tính trong cửa hàng có thiết lập mẫu như sau in trên 1 cột của tờ
giấy A4:

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 40


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

THIỆP MỜI
Để tạo điều kiện gắn bó và cám ơn sự ủng hộ của Quý khách hàng cho
chúng tôi trong thời gian vừa qua. Nay nhân dịp cuối năm, cửa hàng chúng
tôi trân trọng kính mời :
Quý khách :…………………………………
Số điện thoại :……………………………
Vui lòng bớt chút thời gian đến dự buổi tiệc rượu của chúng tôi được tổ chức
tại :
Nhà hàng ABCD
Địa chỉ : 123 - Nguyễn Văn Thiện
Vào lúc : 17h30 Thứ Bảy, 23 tháng 08 năm 2004
Sự hiện diện của Quý khách sẽ là niềm vinh hạnh vô cùng lớn lao cho cửa
hàng chúng tôi.
Trân trọng kính mời
Ký tên

(Mẫu có kích thước: 9.5 x 15)


▬ Các bước tạo Report Label Wizard:
 Cửa sổ “Database”  Thẻ Report  New
 Chọn Label Wizard và chọn nguồn trong hộp “Choose the table or query
where the object’s data comes from”.
 Hộp thoại 1: Chọn khổ giấy
có sẵn hoặc nhấp nút
Customize để tự xác định
khổ giấy (nên chọn đơn vị
Metric).

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 41


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 Hộp thoại 2: Chọn phông,


kích thước, màu sắc, … cho
nội dung thư mời.

 Hộp thoại 3 : Soạn thảo nội


dung thư mời. Tại các vị trí
cần hiện giá trị của Field thì
chọn Field từ danh mục
Available Field.

 Hộp thoại 4: Chọn Field


sắp xếp.

 Hộp thoại 5: Đặt tên cho


Report.

▬ Lưu ý: Trong quá trình soạn thảo nội dung có thể không diện tích trong hộp thoại
để soạn thảo thì ta tạm chấm dứt việc soạn thảo. Sau đó, ở hộp thoại 5 ta chọn
tùy chọn “Modify the
label design” để mở
cửa sổ thiết kế và bổ
sung theo các mẫu
xuất hiện.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 42


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

BÀI 06:

THIẾT KẾ FORM TRONG MICROSOFT ACCESS


I. Tổng quan

1- Giới thiệu

▬ Có hai dạng Form chính:


 Form có nguồn: Các Form cập nhật dữ liệu
 Form giao diện: Các Form đóng vai trò là đối tượng trung gian để giao tiếp
dữ liệu.
▬ Chế độ thiết kế: Menu View  Design View
▬ Chế độ hiển thị dữ liệu: Menu View  Form View
▬ Khi thiết kế Form cần chú ý đến việc thay đổi các thuộc tính cho Form cũng như
cho các điều khiển xuất hiện trên Form.

2- Các bước thiết kế Form

▬ Bước 1: Cửa sổ “Database”  Thẻ Form  New


▬ Bước 2: Chọn Design View  OK
▬ Bước 3: Sử dụng thanh công cụ Toolboxs để thiết kế các điều khiển trên Form.
Chú ý việc thay đổi các thuộc tính cho từng điều khiển.
▬ Bước 4: Kiểm tra Form: Menu View  Form View
▬ Bước 5: Lưu

3- Cửa sổ Design

▬ Form Header/Footer : Các điều khiển thiết kế trong vùng này sẽ xuất hiện một lần
ở đầu hoặc cuối của
Nhấp kép vào đây để mở bảng Form. Thường dùng để
thuộc tính của Form tạo các nhãn cho Form.
(Lệnh : Menu View 
Form Header/Footer)
▬ Page Header/Footer:
Các điều khiển thiết kế
trong vùng này sẽ xuất
hiện một lần ở đầu hoặc
cuối trang in. (Lệnh:
Menu View  Page
Header/Footer)
▬ Detail: Chứa các điều
khiển chính của Form.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 43


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

4- Một số thuộc tính của Form

▬ Mở bảng thuộc tính của Form


▬ Thẻ Form:
 Caption: Tiêu đề của Form khi chuyển sang Form View. (nhập|để trống)
 Scrollbars: Các thanh trượt ngang dọc. (neither|horizontal|vertical|both)
 RecordSelectors: Ký hiệu xác định Record hiện hành. (yes|no)
 NavigationButtons: Thanh chuyển dịch Record. (yes|no)
 DividingLines: Đường gạch phân cách giữa các vùng trong Form. (yes|no)
 Picture: Khai báo File hình làm hình nền cho Form.
 AutoResize: Tự động điều chỉnh kích thước khi mở Form. (yes|no)
 AutoCenter: Tự động canh Form giữa màn hình khi mở Form. (yes}no)
▬ Thẻ Data:
 RecordSource: Chọn hoặc khai báo nguồn cho
Form. (có thể chọn Table|Query có sẵn hoặc
khai báo bằng câu lệnh SQL)

Caption

DividingLine
s
RecordSelec
NavigationButtons

5- Tổng quan về các điều khiển trên Form

▬ Dù là loại Form có nguồn hay không thì trên Form đều phải chứa các điều khiển.
Các điều khiển này được tạo bằng các công cụ trên thanh công cụ: Menu View 
Toolbox).
▬ Các điều khiển trên thanh công cụ có thể tạo ra bằng hai cách:
 Sử dụng Wizard: nhấp mouse bật sáng công cụ 2 (Control Wizard).
 Thiết kế bằng tay: nhấp mouse tắt công cụ 2 (Control Wizard).
▬ Mặt khác, khi thiết kế các điều khiển ta thường thay đổi các thuộc tính của chúng.
Để mở hộp thuộc tính của điều khiển, ta nhấp phải vào biên của điều khiển và
chọn Properties.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 44


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

▬ Nhấp mouse vào biên của một điều khiển thì sẽ xuất hiện 8 nút bao quanh. Khi đó
ta có thể:
 Xóa: Bấm phím Delete.
 Di chuyển: Kéo mouse (biểu tượng mouse có hình bàn tay).
 Sao chép: Ctrl C ; Ctrl V
 Thay đổi kích thước: Kéo mouse trên các nút.
 Thay đổi phông, kích cơ chữ, màu sắc chữ, màu nền, … : Sử dụng các công
cụ trên thanh công cụ Formatting.

II. Thiết kế Form

1- Textbox

1.1- Tổng quan

▬ Textbox là một điều khiển có hai thành phần: thành phần nhãn (Label) và thành
phần nội dung (Textbox). Khi thiết kế nên tập trung vào thành phần Textbox, còn
thành phần nhãn ta có xóa bỏ nếu không cần thiết.

Thành phần Label


Thành phần Textbox

▬ Có 3 dạng Textbox trên Form:


 Dạng 1: Dùng để hiển thị dữ liệu trên Table|Query (Có nguồn).
 Dạng 2: Dùng để tính toán.
 Dạng 3: Dùng để nhập dữ liệu trao đổi từ bàn phím.
1.2- Các thuộc tính thường dùng

▬ Name: Tên của Textbox, được dùng để trao đổi dữ liệu trong các câu lệnh (nên
đặt bắt đầu bằng 3 ký tự là txt…).
▬ Control Source: Tên Field làm nguồn hoặc công thức tạo ra giá trị trong Textbox.
▬ Format: Các định dạng cho dữ liệu trong Textbox.
▬ Default Value: Giá trị mặc nhiên khi mở Form.
▬ Visible: Xuất hiện hoặc không ở chế độ Form View (yes|no).
▬ Enabled: Hiện sáng hoặc mờ ở chế độ Form View (yes|no).
▬ Width: Chiều rộng của Textbox (inches).
▬ Height: Chiều cao của Textbox (inches).
▬ Back Color: Màu nền của Textbox.
▬ Fore Color: Màu chữ của Textbox.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 45
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

1.3- Thiết kế Textbox

▬ Thiết kế Textbox dạng 1: (Form phải được khai báo nguồn) Có 2 cách:
 Chọn công cụ  Nhấp mouse vào vùng Form  Mở hộp Properties  Khai
báo thuộc tính Control Source (bắt buộc) và các thuộc tính khác (nếu cần) 
Chỉnh sửa phù hợp trên Form.
 Vào Menu View  Field List  Kéo Field trên danh sách đặt vào vùng Form
 Khai báo thêm các thuộc tính khác (nếu cần)  Chỉnh sửa.
▬ Thiết kế Textbox dạng 2: Nhập trực tiếp công thức bắt đầu bằng dấu bằng (=)
vào Textbox trên Form hoặc nhập vào thuộc tính Control Source.
▬ Thiết kế Textbox dạng 3: Tạo Textbox trên Form (Unbound)  Khai báo thuộc
tính Name (nên khai báo) và các thuộc tính khác.
Ví dụ 1: Mẫu Form có nguồn là Table Khachhang được thiết kế với các Textbox có
khai báo nguồn.

Ví dụ 2: Mẫu Form không nguồn với các Textbox dạng Unbound.

2- Bound Object Frame


2.1- Tổng quan

▬ Loại điều khiển cho phép chứa dữ liệu dạng hình ảnh trong các Field kiểu OLE
Object. Đây là loại điều khiển luôn có nguồn.
▬ Có 2 thành phần: thành phần nhãn (Label) và thành phần nội dung (Frame).

Thành phần Label Thành phần Frame

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 46


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

2.2- Các thuộc tính thường dùng

▬ Name: Tên của Frame.


▬ Control Source:Tên Field làm nguồn trong Frame (nên bắt đầu bằng 3 ký tự ole…)
▬ Size Mode: Các chế độ hiển thị hình ảnh trong Frame (Clip, Zoom, Stretch).
▬ Visible: Xuất hiện hoặc không ở chế độ Form View (yes|no).
▬ Enabled: Hiện sáng hoặc mờ ở chế độ Form View (yes|no).
▬ Width: Chiều rộng của Frame (inches).
▬ Height: Chiều cao của Frame (inches).
▬ Back Color: Màu nền của Frame.

2.3- Thiết kế Bound Object Frame

▬ Giống Textbox: Có thể sử dụng Field List hoặc thiết kế bằng cách khai báo thuộc
tính Control Source.
Ví dụ: Mẫu Form có nguồn là Table Nhanvien chứa điều khiển Bound Object Frame.

3- Label:
▬ Đây là điều khiển dạng nhãn, được dùng để tạo các dòng mô tả trên Form. Cần
chú ý các thuộc tính sau: Visible, Enabled, Back Color, Fore Color, Caption, Width,
Height, …

4- Option Group, Option Button, Checkbox, Toggle Button

4.1- Tổng quan


Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 47
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

▬ Đây là tập hợp 4 điều khiển tạo nên các nhóm tùy chọn trên Form. Trong đó,
Option Group là điều khiển khung nhóm tùy chọn có chức năng quản lý các tùy
chọn trong nhóm. Còn 3 điều khiển còn lại là các hình thức tùy chọn trong nhóm.
▬ Có 2 dạng tùy chọn:
 Dạng 1: Chỉ được chọn 1 trong số các tùy chọn trong nhóm.
 Dạng 2: Có thể chọn hoặc không chọn hoặc chọn nhiều tùy chọn trong
nhóm. Trên thực tế, đây là dạng nhóm tùy chọn mà trong đó các tùy chọn
được thiết kế rời sau đó bao chúng lại bằng điều khiển Option Group.
▬ Nhóm tùy chọn có thể được sử dụng cho các Field kiểu Yes/No với 2 tùy chọn ứng
với 2 trường hợp của Field (trường hợp Form có nguồn). Hoặc có thể thiết kế chọn
lựa các giá trị để xử lý trên các Form giao diện (trường hợp Form không nguồn).

Thành phần Label

Thành phần Option Group


Option Button Checkbox Toggle Button

Chú ý: Các điều khiển Option Button và Checkbox gồm 2 thành phần : thành phần
tùy chọn (bên trái) và thành phần nhãn (bên phải). Còn điều khiển Toggle Button thì
nhãn chính là nội dung ghi trên nút.

4.2- Các thuộc tính thường dùng

a. Option Group

▬ Name: Tên của khung nhóm tùy chọn dùng để quản lý các tùy chọn trong nhóm
(nên đặt bắt đầu bằng 3 ký tự fra…)
▬ Control Source: Tên Field làm nguồn cho Option Group.
▬ Default Value: Giá trị của tùy chọn được chọn mặc nhiên khi mở Form (giá trị số).
▬ Visible: Xuất hiện hoặc không ở chế độ Form View (yes|no).
▬ Enabled: Hiện sáng hoặc mờ ở chế độ Form View (yes|no).

b. Các tùy chọn: Option Button, Checkbox, Toggle Button

▬ Nếu được thiết kế theo dạng 1:


 Option Value: Thuộc tính có giá trị số phân biệt với các tùy chọn khác trong
nhóm dùng để Option Group quản lý.
▬ Nếu được thiết kế theo dạng 2: (mỗi tùy chọn là độc lập, nghĩa là không do
Option Group quản lý)
 Name: Tên của tùy chọn (nên đặt theo mẫu: opt… ; tog… ; chk…).
 Control Source: Tên Field kiểu Yes/No làm nguồn cho tùy chọn.
 Default Value: Trạng thái mặc nhiên khi mở Form (true|false).
 Visible: Xuất hiện hoặc không ở chế độ Form View (yes|no).
 Enabled: Hiện sáng hoặc mờ ở chế độ Form View (yes|no).
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 48
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

4.3- Thiết kế Option Group

a. Sử dụng Wizard để tạo nhóm tùy chọn dạng 1

▬ Bước 1: Bật công cụ Control Wizard  Chọn công cụ Option Group và nhấp vào
vùng Form  Xuất hiện hộp thoại 1.
▬ Bước 2: Nhập các nhãn cho các tùy chọn
trong nhóm  Next  Xuất hiện hộp
thoại 2.

▬ Bước 3: Chọn tùy chọn mặc nhiên


khi mở Form  Next  Xuất hiện
hộp thoại 3.

▬ Bước 4: Thay đổi các giá trị cho các tùy


chọn trong cột Values (nếu cần) 
Next  Xuất hiện hộp thoại 4.

▬ Bước 5: Chọn loại tùy chọn và kiểu


của khung nhóm  Next  Xuất
hiện hộp thoại 5.

▬ Bước 6: Đặt nhãn cho khung  Finish.

Chú ý: Sau khi tạo xong nên khai báo thêm thuộc tính Name cho khung nhóm.
b. Không sử dụng Wizard

▬ Sử dụng cách này để thiết kế nhóm tùy chọn dạng 2. Các bước như sau:
 Bước 1: Tạo các tùy chọn trước. Khi báo các thuộc tính cho mỗi tùy chọn,
nên khai báo thuộc tính Name và Default Value.
 Bước 2: Tạo khung bao quanh các tùy chọn.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 49
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Ví dụ 1: Mẫu Form có nguồn là Table Nhanvien chứa nhóm tùy chọn cho Field Phai.

Ví dụ 2: Mẫu Form giao diện với các nhóm tùy chọn.

5- Command Button

5.1- Tổng quan

▬ Loại điều khiển dùng để thực hiện một lệnh trên Form (gọi là nút lệnh) thông qua
các sự kiện thông dụng như nhấp mouse, nhấp kép mouse, …
▬ Các lệnh được gán cho mỗi nút lệnh có thể là các
Macro hay các mã lệnh VBA (code) tự tạo hoặc
thông qua trình trợ giúp.

5.2- Các thuộc tính thường dùng

▬ Name: Tên của nút lệnh dùng trong các câu lệnh.
▬ Caption: Nhãn của nút lệnh.
▬ Picture: Hình ảnh thay thế cho nhãn.
▬ Visible: Xuất hiện hoặc không ở chế độ Form View.
▬ Enabled: Hiện sáng hoặc mờ ở chế độ Form View.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 50
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

5.3- Thiết kế nút lệnh bằng Wizard

▬ Bước 1: Bật công cụ Control Wizard.


▬ Bước 2: Chọn công cụ và nhấp tại vùng Form  Xuất hiện hộp thoại 1.
▬ Bước 3: Chọn hành động cho nút lệnh
 Next  Xuất hiện hộp thoại 2.
(Tham khảo danh mục các hành động trong
danh sách ngay bên dưới)

▬ Bước 4: Chọn nhãn cho nút lệnh


(Text hoặc Picture)  Next  Xuất
hiện hộp thoại 3.

▬ Bước 5: Đặt tên cho nút lệnh  Finish.

Danh mục các hành động cho nút lệnh


Categories Actions
Record Navigation Find Record : Tìm kiếm Record
Loại hành động cho phép nhảy con trỏ tới Find Next : Tìm tiếp
một Record nào đó. Goto First Record : Nhảy tới Record đầu tiên
Goto Last Record : Nhảy tới Record cuối cùng
Goto Next Record : Nhảy tới Record kế tiếp
Goto Previous Record : Nhảy tới Record ngay trước
Record Operations Add New Record : Thêm một Record mới
Loại hành động xử lý mẫu tin. Delete Record : Xóa Record hiện hành
Save Record : Lưu Record hiện hành
Undo Record : Phục hồi trạng thái cũ cho Record
Form Operations Apply Form Filter : Thực hiện lọc các Record
Loại hành động xử 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
Loại hành động xử lý báo cáo. Print Report : In báo cáo ra máy in
Application Quit Application : Thoát khỏi ứng dụng
Các hành động liên quan đến ứng dụng. Run Application : Thi hành một ứng dụng khác
Miscellaneous Print Table : In một Table
Các hành động khác. Run Macro : Thi hành một Macro
Run Query : Thi hành một Query

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 51


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

6- Combobox và Listbox

6.1- Tổng quan

▬ Loại điều khiển chứa danh sách chọn lựa. Có hai loại danh sách chọn lựa:
 Combobox: Loại này không chiếm diện tích trên Form nhưng phải nhấp
mouse để nhìn thấy danh sách.
 Listbox: Loại này chiếm diện tích trên Form nhưng danh sách chọn lựa trực
quan hơn.
▬ Có thể tạo điều khiển này bằng Wizard hoặc bằng thủ công.

Combobox

Listbox

6.2- Các thuộc tính thường dùng

▬ Name: Tên của điều khiển dùng trong thao tác lệnh (nên đặt bắt đầu bằng 3 ký
tự: cob… và lst…)
▬ Control Source: Tên Field làm nguồn cho điều khiển.
▬ Row Source Type: Loại danh sách chứa trong điều khiển.
 Table|Query: Danh sách chọn lựa được lấy từ 1 Table|Query.
 Value List: Danh sách chọn lựa được nhập trực tiếp.
▬ Row Source: Khai báo danh sách theo loại.
 Nếu Row Source Type là Table|Query thì bấm vào nút ba chấm để khai báo
danh sách từ cửa sổ Design Query.
 Nếu Row Source Type là Value List thì nhập danh sách ngăn cách bằng dấu
chấm phẩy.
▬ Column Count: Số cột danh sách trong điều khiển.
▬ Bound Column: Thứ tự cột chứa giá trị chọn lựa.
▬ Column Widths: Độ rộng các cột theo thứ tự ngăn cách bằng dấu chấm phẩy.
▬ Limit to List: Không được phép hoặc được phép nhập giá trị khác ngoài danh sách
chọn lựa (yes|no).
▬ Visible: Xuất hiện hoặc không ở chế độ Form View.
▬ Enabled: Hiện sáng hoặc mờ ở chế độ Form View.

6.3- Thiết kế Combobox và Listbox

a. Combobox chứa danh sách là dữ liệu trong các Field của Table|Query

▬ Bước 1: Bật công cụ Control Wizard.


▬ Bước 2: Chọn công cụ và nhấp vào vùng Form  Xuất hiện hộp thoại 1
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 52
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

▬ Bước 3: Chọn “I want the combo box


to look up …”  Next  Xuất hiện hộp
thoại 2.

▬ Bước 4: Chọn Table|Query có Field


chứa danh sách  Next  Xuất
hiện hộp thoại 3.

▬ Bước 5: Chọn Field chứa danh sách 


Next  Xuất hiện hộp thoại 4.

▬ Bước 6: Chọn Field sắp xếp (nếu


cần) NextXuất hiện hộp thoại 5.

▬ Bước 7: Đánh dấu check hoặc không tùy


chọn “Hide key column” để ẩn hoặc hiện
cột có Field là khóa của Table  Next 
Xuất hiện hộp thoại 6.

▬ Bước 8: Chọn Field chứa danh sách


hiển thị trong điều khiển khi chọn
 Next  Xuất hiện hộp thoại 7.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 53


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

▬ Bước 9: Đặt nhãn cho điều khiển 


Finish.

Lưu ý: Nên khai báo thuộc tính Name cho điều khiển sau khi đã tạo xong.

b. Combobox chứa danh sách là dữ liệu tự nhập

▬ Bước 1: Bật công cụ Control Wizard.


▬ Bước 2: Chọn công cụ và nhấp vào vùng Form  Xuất hiện hộp thoại 1
▬ Bước 3: Chọn “I will type in the
values …”  Next  Xuất hiện hộp
thoại 2.

▬ Bước 4: Khai báo số cột và nhập dữ


liệu cho các cột  Next  Xuất hiện
hộp thoại 3.

▬ Bước 5: Tạo nhãn cho điều khiển 


Finish.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 54


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Ví dụ: Mẫu Form với các điều khiển Combobox và Listbox

6.4- Truyền dữ liệu từ các cột của Combobox hoặc Listbox sang Texbox

▬ Để Texbox nhận dữ liệu từ một cột chỉ định của Combobox hoặc Listbox ta áp
dụng công thức tại Textbox:

=<Tên Combobox|Listbox>.Column(n)

 Trong đó: n là số thứ tự cột và được bắt đầu từ 0.


Ví dụ: Trong mẫu trên: Listbox có thuộc tính Name là lstchonnhanvien và Textbox
lấy giá trị từ cột thứ 2 của Listbox, nêm công thức nhập là:
=lstchonnhanvien.column(1)

III. Thiết kế Main-Sub Form:

1- Giới thiệu
▬ Main-Sub Form thường được dùng để hiển thị các thông tin chi tiết về một đối
tượng cụ thể nào đó theo nhu cầu. Ví dụ : Xem thông tin hóa đơn về một khách
hàng bất kỳ ; Xem thông tin hóa đơn về một nhân viên bất kỳ ; Xem thông tin chi
tiết về một hóa đơn bất kỳ ; …
▬ Trên một Mainform ta có thể có nhiều Subform để hiển thị nội dung của nhiều
Table|Query có mối quan hệ “một - nhiều”. Trong đó, Subform chỉ hiển thị các
Record có liên quan đến Record trên Mainform.
▬ Ta có thể dùng Main-Sub Form để nhập liệu vào nhiều Table đồng thời có quan hệ
“một - nhiều” với nhau.

Ví dụ: Mẫu Main-Sub Form để xem thông tin hóa đơn theo khách hàng bất kỳ

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 55


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Chọn khách hàng


tại đây

Xem thông tin hóa đơn trong Subform

2- Thiết kế Main-Sub Form

2.1- Các bước tổng quát để thiết kế Main-Sub Form

▬ Bước 1: Thiết kế một Form làm Subform. Lưu ý: nguồn của Subform phải chứa
Field có quan hệ bên “nhiều” với điều khiển chọn lựa trên Mainform (Có thể sử
dụng Autoform để tạo).
▬ Bước 2: Thiết kế Mainform với các điều khiển chọn lựa. Lưu ý: phải khai báo thuộc
tính Name cho các điều khiển.
▬ Bước 3: Mở Mainform ở chế độ Design  Sử dụng công cụ SubForm|SubReport
tạo một khung trên Mainform để chứa Subform  Mở bảng thuộc tính của khung
Subform và khai báo các thuộc tính sau đây:
 Name: Tên của khung.
 Source Object: Tên Form dùng là Subform.
 Link Child Field: Tên Field quan hệ trong Subform.
 Link Master Field: Tên điều khiển chọn lựa trên Mainform.
Chú ý: Nếu có nhiều mối quan hệ chọn lựa trên Mainform thì trong hai thuộc tính:
Link Child Field và Link Master Field ta nhập các cặp quan quan hệ năng cách bằng
dấu chấm phẩy.
Ví dụ: Mẫu Form với hai điều khiển chọn lựa trên Mainform (mã nhân viên và quý).

Chọn mã nhân viên

Chọn quý

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 56


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

2.2- Tổng hợp trong Subform và hiển thị trên Mainform

▬ Có thể tổng hợp dữ liệu trên Subform bằng các phương thức: Sum, Count, Avg, …
sau đó truyền dữ liệu này ra Mainform bằng các bước sau:
 Bước 1: Mở Subform ở chế độ Design.
 Bước 2: Hiển thị vùng Form Footer và thiết kế các Texbox tại vùng này với
các công thức như : Sum(…), Count(…), Avg(…), …
 Bước 3: Khai báo thuộc tính Name cho các Textbox trên.
 Bước 4: Lưu và đóng Subform.
 Bước 5: Mở Mainform ở chế độ Design.
 Bước 6: Thiết kế các Textbox để nhận dữ liệu tổng hợp trong Subform.
 Bước 7: Nhập công thức truyền dữ liệu từ Subform ra Mainform theo mẫu:

=<Tên khung Subform>.Form!<Tên Textbox truyền dữ liệu>

3.3- Truyền dữ liệu

▬ Tổng quát khi truyền dữ liệu từ Form quá các đối tượng khác như Report, Form
hoặc Query ta có những cách sau đây:
 Truyền từ Mainform:

Forms!<Tên Form>!<Tên điều khiển truyền dữ liệu>

 Truyền từ Subform:

Forms!<Tên Form>!<Tên khung Sub>.Form!<Tên điều khiển truyền dữ liệu>

Chú ý:
 Có thể truyền dữ liệu vào một Textbox chứa trên Form hoặc Report.
 Có thể truyền dữ liệu vào các ô Criteria của Query để làm điều kiện.

***************************************************************

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 57


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

BÀI 07:
THIẾT KẾ REPORT TRONG MICROSOFT ACCESS
I. Tổng quan

▬ Report Wizard hỗ trợ người sử dụng tạo nhanh các Report theo các kiểu chuẩn.
Nhưng đôi khi, ta muốn thay đổi nội dung báo cáo hoặc chỉnh sửa theo nhu cầu
riêng thì Report Wizard lại không thực hiện được.
▬ Nghiên cứu cách thiết kế Report cho phép ta tạo ra các Report theo đúng ý thích
và thẩm mỹ của cá nhân. Vì vậy ta cần phải nắm được các nguyên tắc để thiết kế
sao cho khi in ấn sẽ đạt được kết quả theo mong muốn.
▬ Các điều khiển sử dụng để thiết kế Report thông dụng nhất là Textbox và Label.
▬ Cần chú ý là để thiết kế được Report thì máy tính phải có khai báo một máy in.
▬ Có hai chế độ:
 Chế độ thiết kế: Menu View  Design View
 Chế độ xem: Menu View  Print Preview

II. Chuẩn bị

1- Chuẩn bị trang giấy

▬ Menu File  Page Setup  Xuất hiện hộp thoại Page Setup.
 Thẻ Margin: Canh lề giấy (left, right, top, bottom).
 Thẻ Page: Chọn khổ giấy (size), hướng giấy (orientation)
 Thẻ Column: Chọn số cột trên trang giấy (number of column)

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 58


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

2- Giới thiệu cửa sổ thiết kế


▬ Report Header|Footer: Nội dung trong các vùng này xuất hiện một lần duy nhất ở
đầu và cuối Report. Thường dùng để tạo các tiêu đề cho Report, logo công ty
hoặc tạo các thống kê cho toàn bộ Report.
▬ Page Header|Footer: Nội dung trong các vùng này xuất hiện ở đầu và cuối mỗi
trang Report. Thường dùng để tạo các tiêu đề cột, đánh số trang.
▬ Detail: Chứa nội dung của các
cột dữ liệu.

Chú ý: Tùy theo nhu cầu thiết kế


mà ta có thể thêm hoặc bớt các
vùng Header|Footer. Lệnh: Menu
View  Report Header|Footer
(Page Header|Footer).

3- Một số thuộc tính thường dùng của Report

▬ Caption: Tiêu đề của Report (nằm trên thanh tiêu đề).


▬ Auto Resize: Tự động điều chỉnh kích thước vừa khít với nội dung thiết kế khi xem
ở chế độ Print Preview.
▬ Auto Center: Tự động canh giữa màn hình Report khi xem ở chế độ Print Preview.
▬ Record Source: Nguồn của Report.

III. Thiết kế Report

1- Các bước tổng quát

▬ Bước 1: Tạo nguồn cho Report (Có thể tạo nguồn cho Report bằng cách khai báo
nguồn thông qua thuộc tính Record Source).
▬ Bước 2: Cửa sổ “Database” Thẻ Report  New  Xuất hiện cửa sổ New Report.
▬ Bước 3: Chọn Design View và chọn nguồn cho Report (nếu đã có nguồn) trong
mục “Choose the table or query …”  OK  Xuất hiện cửa sổ thiết kế Report.
▬ Bước 4: Sử dụng thanh công cụ để thiết kế Report (có thể chọn menu View 
Field List để mở bảng nguồn của Report và kéo thả khi thiết kế).
▬ Bước 5: Kiểm tra kết quả: menu View  Print Preview
▬ Bước 6: Lưu

2- Tạo nguồn cho Report bằng thuộc tính Record Source


▬ Mở bảng thuộc tính của Report
▬ Click nút ba chấm của thuộc tính Record Source  Xuất hiện của sổ Design Query
▬ Tạo Query nguồn
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 59
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

▬ Thực hiện một trong hai:


 Nếu muốn Query nguồn tồn tại trong cửa sổ Database thì chọn lệnh Save để
lưu  Đóng cửa sổ Design Query  Chọn Yes
 Nếu không muốn Query nguồn tồn tại trong của sổ Database  Đóng cửa sổ
Design Query  Chọn Yes (Lưu ý : trong trường hợp này tại thuộc tính
Record Source xuất hiện một chuỗi lệnh được gọi là chuỗi lệnh SQL)

3- Các thuộc tính bổ sung cho Textbox


▬ Hide Duplicates: Ẩn hoặc không ẩn các giá trị trùng trong Field nguồn của Textbox
(yes|no).
▬ Running Sum: Tạo dãy số thứ tự cho các Record trong nhóm hoặc cả Report (No,
OverGroup, OverAll)
▬ Can Grow: Cho phép hoặc không nội dung trong Textbox tự động xuống hàng khi
kích thước của chiều ngang không đủ lớn.

4- Sắp xếp và lập nhóm cho dữ liệu


▬ Đây là một trong những chức năng quan trọng trong Report nhằm tạo cho dữ liệu
trong Report có cái nhìn khách quan và chính xác hơn. Đồng thời cho phép xuất
hiện các vùng thống kê dữ liệu theo từng nhóm sao cho phù hợp tối đa tới nhiều
nhu cầu của người dùng.
▬ Khi thiết kế Report người thiết kế phải quan sát mẫu hoặc phải hình dung Field có
dữ liệu lập nhóm (thường là Field bên “một”). Sau khi khai báo Field lập nhóm thì
trong cửa sổ sẽ xuất hiện thêm các vùng Group Header hoặc Group Footer tùy
theo khai báo.
▬ Để tạo Field sắp xếp và lập nhóm ta làm theo các bước sau:
 Bước 1: Menu View  Sorting and
Grouping  Xuất hiện cửa sổ “Sorting
and Grouping”.
 Bước 2: Chọn Field sắp xếp và lập nhóm
trong cột Field/Expression (Có thể chọn
nhiều hàng ứng với nhiều Field để tạo
nhiều cấp sắp xếp và lập nhóm).
 Bước 3: Xác lập cách sắp xếp trong cột
Sort Order.
 Bước 4: (Chỉ thực hiện khi có lập nhóm) Khai báo Group Header và Group
Footer để cho xuất hiện hoặc không các vùng tương ứng trên Report. Trong
đó :
 Group Header: Thường dùng để chứa Field nhóm và các nhãn cho
dữ liệu trong nhóm.
 Group Footer: Thường dùng để tạo các Textbox chứa các giá trị
thống kê dữ liệu cho nhóm.
 Bước 5: Ba thuộc tính còn lại: Group On, Group Interval và Keep Together có
liên quan đến nội dung của dữ liệu lập nhóm (tham khảo ở phần dưới).

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 60


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

5- Các chức năng khác

5.1- Chèn hình trang trí cho Report

▬ Bước 1: Sử dụng công cụ Image.


▬ Bước 2: Kéo mouse trên vùng thiết kế
để định vị trí và kích thước của hình
ảnh. Thả mouse xuất hiện hộp thoại
như bên cạnh
▬ Bước 3: Chọn hình ảnh trang trí 
OK  Thay đổi thuộc tính cho điều
khiển Image (Chủ yếu là chọn Stretch
cho thuộc tính Size Mode)

5.2- Đánh số trang

▬ Bước 1: Menu Insert  Page Numbers  Xuất


hiện hộp thoại Page Number.
▬ Bước 2: Khai báo:
 Page N: Chỉ xuất hiện số trang hiện hành.
 Page N of M: Xuất hiện số trang hiện hành
trên tổng số trang.
 Top of Page [Header]: Số trang xuất hiện trên vùng Page Header.
 Bottom of Page [Footer]: Số trang xuất hiện trên vùng Page Footer.
 Alignment: Chọn vị trí canh lề cho số trang (left, center, right).
 Số trang sẽ xuất hiện trong cửa sổ thiết kế dưới dạng một Textbox lập công thức.
Ví dụ như : =Page & “/” & Pages

5.3- Lập nhóm theo nội dung dữ liệu

▬ Việc chỉ định phạm vi dữ liệu để lập nhóm có liên quan đế hai thuộc tính Group
On và Group Interval trong hộp thoại “Sorting and Grouping”. Hãy quan sát bảng
sau:
Field có dữ liệu kiểu Text
Group on Group interval Ý nghĩa
Each value 1 Nhóm các Record có giá trị bằng nhau.
Prefix character n Nhóm các Record có n ký tự bên trái bằng nhau.
Field có dữ liệu kiểu Date/Time
Group on Group interval Ý nghĩa
Each value 1 Nhóm các Record có giá trị bằng nhau.
Year Khai báo khoảng giá trị. Nhóm các Record có giá trị theo năm.
Qtr Khai báo khoảng giá trị. Nhóm các Record có giá trị theo quý.
… … …
Field có dữ liệu kiểu Number
Group on Group interval Ý nghĩa
Each value 1 Nhóm các Record có giá trị bằng nhau.
Interval Khai báo khoảng giá trị. Nhóm các Record theo khoảng giá trị đã khai báo.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 61
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

5.4- Thống kê dữ liệu trên Report

▬ Sử dụng các phương thức thống kê : Sum, Avg, Min, Max, Count, … trong các
Textbox.
▬ Thống kê dữ liệu cho nhóm thường đặt tại vùng Group Footer.
▬ Thống kê dữ liệu cho Report thường đặt tại vùng Report Footer.
Ví dụ: Muốn tính tổng thành tiền cho nhóm theo Tenkh, ta tạo một Textbox tại
Tenkh Footer có dạng : =Sum(Thanhtien). Còn nếu muốn tính tổng thành tiền cho
toàn bộ Report, ta tạo một Textbox tại vùng Report Footer có dạng:
=Sum(Thanhtien).
Ví dụ: Các mẫu Report:
Mẫu Report không lập nhóm:

Mẫu Report lập nhóm theo Tenkh:

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 62


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Mẫu Report lập nhóm theo Tenkh, Nam, Thang:

*****************************************************************
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 63
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

BÀI 08:
THIẾT KẾ MACRO TRONG MICROSOFT ACCESS
I- Tổng quan

▬ Macro là đối tượng bao gồm một hoặc nhiều hành động, mỗi hành động dùng để
thực hiện một công việc nào đó. Những hành động này đã được cài sẵn trong
Access dưới dạng một danh sách nhằm tự động hóa quá trình xử lý công việc.
▬ Một Macro sau khi tạo sẽ được gán vào một sự kiện trên đối tượng và khi sự kiện
xảy ra thì Macro sẽ thực thi. Các sự kiện của đối tượng nằm trong thẻ Event của
hộp Properties.
Ví dụ: Một Macro được gán vào sự kiện OnClick của một nút lệnh thì khi nhấp mouse
vào nút lệnh thì Macro sẽ thi hành.
▬ Các công việc có thể sử dụng Macro:
 Liên kết công việc giữa Form và Report.
 Tìm kiếm hoặc lọc ra những thông tin cần tham khảo một cách tự động.
 Cài đặt các thuộc tính cho Form, Report hoặc các điều khiển. Cũng như cài
đặt một giá trị của điều khiển trong Form vào kết quả của phép tính toán
hoặc vào giá trị của một bảng dữ liệu khác.
 Tự động hóa việc nhập|xuất dữ liệu vào các Table.
 Tạo ra một môi trường làm việc theo ý riêng. Chẳng hạn như điều chỉnh
thanh thực đơn cho Form, nhóm các Query…

II- Tạo Macro

1- Tạo Macro thông qua sự kiện

▬ Mở hộp Properties của đối tượng  Chọn sự kiện  Nhấp vào nút ba chấm
▬ Chọn Macro Builder
▬ Đặt tên cho Macro  Xuất hiện cửa sổ Design Macro

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 64


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

▬ Các thành phần của cửa sổ Design:


 Macro Name: Lệnh mở|đóng: Menu View  Macro Name. Được sử dụng
trong việc tạo ra nhóm Macro.
 Condition: Lệnh mở|đóng: Menu View  Condition. Được sử dụng cho các
Macro có điều kiện.
 Action: Thành phần cố định. Chứa các hành động cho Macro.
 Comment: Nơi diễn giải nội dung cho hành động.
 Action Argument: Các tham số cho hành động.
▬ Thực thi sự kiện trên đối tượng để chạy Macro.

2- Tạo Macro và gán vào sự kiện trên đối tượng

▬ Cửa sổ “Database”Thẻ MacroNew  Xuất hiện cửa sổ Design Macro như trên.
▬ Khai báo các hàng động trong Macro.
▬ Lưu Macro.
▬ Mở hộp Properties của đối tượng  Chọn sự kiện  Nhấp vào nút tam giác 
Chọn tên Macro.
▬ Thực thi sự kiện để chạy Macro.

3- Xét mẫu ví dụ sau:

Yêu cầu:
▬ Thiết kế Form “Tìm khách hàng” sao cho khi nhập tên khách hàng hoặc tên đại
diện cho khách hàng trong Textbox, sau đó nhấp nút “Tìm” sẽ mở Form “Thông
tin khách hàng” để biết được các thông tin về khách đó.
Thiết kế:
▬ Tạo một Macro gán vào sự kiện OnClick của nút “Tìm” với hành động OpenForm
để mở Form “Thông tin khách hàng” theo điều kiện nhận được từ Textbox của
Form “Tìm khách hàng”.
Action Argument
OpenForm Form Name : “ F_Thongtinkhachhang
View : Form
Where Conditon :
Tenkh=Forms!F_Timkhachhang!txtTenkh
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 65
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

4- Các sự kiện và biến cố thường dùng

4.1- Các sự kiện trên đối tượng

Biến cố Ý nghĩa
BeforeUpdate Xảy ra trước khi dữ liệu mới ghi vào thuộc tính Value của đối tượng.
AfterUpdate Xảy ra sau khi dữ liệu mới ghi vào thuộc tính Value của đối tượng.
OnClick Xảy ra khi nhấp mouse trên đối tượng.
OnDblClick Xảy ra khi nhấp kép mouse trên đối tượng.
OnOpen Xảy ra khi đối tượng được mở.
OnEnter Xảy ra trước khi đối tượng nhận focus.
OnGotFocus Xảy ra khi đối tượng nhận focus.
OnExit Xảy ra trước khi đối tượng mất focus.
OnLostFocus Xảy ra sau khi đối tượng đã mất focus.

4.2- Các hành động thường dùng

Hành động Ý nghĩa Các đối số


ApplyFilter Cho phép sàng lọc dữ liệu Filter Name: Tên của Query dùng để
hiển thị khi xử lý dữ liệu. trích lọc dữ liệu nguồn đang xử lý.
Where Condition: Điều kiện sàng lọc dữ
liệu.
Beep Phát ra tiếng “bíp” (không có đối số)
Close Đóng một đối tượng. Object Type: Loại đối tượng muốn
đóng. Nếu để trống thì hiểu là đối
tượng hiện hành.
Object Name: Tên của đối tượng muốn
đóng.
Save: Có lưu lại khi đóng đối tượng
không.
GotoControl Chuyển focus giữa các điều Control Name: Tên của đối tượng
khiển trên Form. chuyển tới.
GotoRecord Cho phép di chuyển con trỏ Object Type: Kiểu đối tượng trong
Record trong Table|Query Table|Query hoặc Form.
hoặc Form. Object Name: Tên của đối tượng.
Record: Vị trí di chuyển là : trước, sau,
đầu, cuối, thêm mới.
MsgBox Hiển thị một hộp thông báo Message: Nội dung của thông báo cần
đến người dùng. hiển thị.
Beep: Có phát ra tiềng "bíp" hay không.
Type: Loại hộp thông báo.
Title: Tiêu đề của hộp thông báo.
OpenForm Mở một Form. Form Name: Tên Form cần mở.
View: Dạng trình bày Form.
Filter Name: Tên của Query dùng để
sàng lọc dữ liệu hiển thị trong Form.
Where Condition: Điều kiện dùng để
sàng lọc dữ liệu hiển thị trong Form.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 66
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

OpenReport Mở một Report. Report Name: Tên Report cần in.


View : Chế độ mở.
Filter Name : Tên của Query dùng để
sàng lọc dữ liệu trong Report.
Where Condition : Điều kiện sàng lọc
dữ liệu hiển thị trong Report.
Quit Thoát khỏi Access. Options : Lưu đối tượng hay không ?
(Prompt, SaveAll, Exit).
RunCommand Thực hiện một lệnh trên Command : Lệnh trên menu.
menu của Access.
ShowAllRecords Hiển thị tất cả các Record (không có đối số)
trong Table|Query|Form.
SetValue Gán giá trị cho một Field, Item : Tên của Field, điều khiển hoặc
điều khiển hoặc thuộc tính. thuộc tính của điều khiển muốn gán giá
trị.
Expression : Biểu thức cần gán giá trị.
StopMacro Ngừng thi hành Macro. (không có đối số)

III- Macro đặc biệt


1- Macro có điều kiện
▬ Khi muốn các hành động trong Macro thi hành phụ thuộc vào một điều kiện nào
đó ta thiết kế Macro có điều kiện bằng cách mở thêm cột Condition trong cửa sổ
thiết kế.
▬ Các biểu thức điều nhập trên hàng có hành động cần thực hiện. Nếu hành động
có cùng điều kiện thì nhập thay thế bằng dấu ba chấm.
Ví dụ:
Condition Action
IsNull(Forms!F_Timkhachhang!txtTenkh) MsgBox
… Beep
… StopMacro
OpenForm
Chú ý: Hàm IsNull(…) sẽ cho giá trị True nếu biểu thức trong ngoặc là Null. Ngược
lại là False.
Ví dụ: Xét mẫu Form sau đây:
Yêu cầu:
▬ Khi chọn tùy chọn “Tất cả thành phố” thì
Combobox mờ đi. Ngược lại, khi chọn tùy chọn
“Chọn thành phố” thì Combobox sẽ sáng lên để
cho phép chọn tên một thành phố trong nó.
Thiết kế một Macro gán vào thuộc tính AfterUpdate của Option Group:
Condition Action Argument
fraChon=1 SetValue Item : cobTp.Enabled
Expression : No
fraChon=2 SetValue Item : cobTp.Enabled
Expression : Yes
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 67
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

2- Macro nhóm
▬ Trong một Form có thể có nhiều Macro, do đó sẽ phát sinh rất nhiều Macro tại
cửa Database. Việc này gây khó khăn trong việc quản lý các Macro đối với người
thiết kế.
▬ Để tập hợp các Macro trong một Form lại và lưu chung trong một Macro, ta gọi là
Macro Group. Để tạo một Macro Group ta mở thêm cột Macro Name trong cửa
Design.
▬ Trong cột Macro Name, ta ghi tên Macro con trong nhóm ở hàng chứa hành động
đầu tiên.
Ví dụ :
Macro Name Condition Action
Dau GotoRecord

Sau Not [NewRecord] GotoRecord

Truoc [NewRecord] GotoRecord

Cuoi GotoRecord

Themmoi GotoRecord

Xoa SetWarning
MsgBox(“Đồng ý xóa”,1)=1 RunCommand

3- Macro AutoExec
▬ Đây là loại Macro được lưu với tên Autoexec, nó sẽ tự động chạy khi file mdb
được mở ra. Ta có thể sử dụng Macro với các hành động để khởi tạo môi trường
làm việc cho ứng dụng. Ví dụ như mở các Form giới thiệu chương trình, tắt các
thanh công cụ, …
▬ Nếu không muốn chạy Macro Autoexec thì khi mở mdb ta giữ thêm phím Shift.

****************************************

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 68


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

BÀI 09:

THỬ TỤC XỬ LÝ SỰ KIỆN


I- Tổng quan
▬ Ngoài việc sử dụng Macro để xử lý các sự kiện trên các đối tượng
Form|Report|Control ta có thể viết các mã lệnh để thay thế. Các mã lệnh này khi
tạo ra sẽ nằm bên trong một thủ tục và ta gọi là thủ tục xử lý sự kiện (Event
Procedure).
▬ Các thủ tục này được lưu theo đối tượng và cũng như Macro có thể có nhiều thủ
tục trên Form|Report tạo nên một đơn thể lớp (Class Module) của Form|Report.
▬ Một thủ tục xử lý sự kiện có thể được tạo khi tạo các nút lệnh bằng Wizard. Ngoài
ra các thủ tục xử lý sự kiện cho đa các đối tượng khác thường phải viết bằng tay.

II- Giới thiệu thủ tục xử lý sự kiện


1- Thủ tục Wizard
▬ Khi thực hiện nút lệnh “Đóng” của một Form bằng Wizard thì trên sự kiện OnClick
của nút lệnh xuất hiện dòng “Event Procedure”. Nhấp mouse vào nút ba chấm sẽ
xuất hiện cửa sổ sau:

Nhận xét:
▬ Một thủ tục luôn bắt đầu và kết thúc bằng 2 dòng:
Private Sub <tên đối tượng>_<sự kiện>([các tham số])
… <thân thủ tục>
End Sub
▬ Các dòng còn lại nằm giữa hai dòng trên chính là các lệnh trong thủ tục. Về
nguyên tắc, mỗi lệnh phải nằm trên một dòng độc lập.
▬ Một thủ tục có thể có [các tham số] tùy theo và nó được dùng để chứa các thông
tin trao đổi giữa hệ thống và người viết.
▬ Như vậy ta có thể tự viết ra các dòng lệnh hoặc sửa đổi các thủ tục Wizard như
trên để xử lý các sự kiện theo đúng như cầu của riêng mình.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 69
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

2- Tạo thủ tục xử lý sự kiện


▬ Chọn sự kiện của đối tượng.
▬ Nhấp vào nút ba chấm  Chọn Code Builder  OK
▬ Xuất hiện 2 dòng thủ tục sự kiện chuẩn.
▬ Viết các lệnh trong thân thủ tục để hoàn thành thủ tục.
▬ Đóng cửa sổ code.
▬ Thực thi sự kiện.
Ví dụ: Mẫu Form sau đây:
▬ Mở thủ tục AfterUpdate của Option Group
▬ Nhấp nút ba chấm  Chọn Code Builder
▬ Thủ tục được viết như sau:
Private fraChon_AfterUpdate()
If fraChon = 1 Then
cobTp.Enabled = False
Else
cobTp.Enabled = True
End If
End Sub

III- Các qui tắc khi viết lệnh


1- Viết lệnh
▬ Một câu lệnh đơn chỉ viết trên một dòng.
▬ Để viết nhiều câu lệnh trên một dòng ta dùng dấu hai chấm (:) để ngăn cách.
▬ Để viết một lệnh trên nhiều dòng ta dùng dấu gạch dưới (_) ở vị trí ngắt.
▬ Dòng chú thích được bắt đầu bằng dấu nháy đơn (‘).
2- Lệnh gán
▬ Để thay đổi giá trị của thuộc tính đối tượng ta sử dụng lệnh gán theo cú pháp sau
<Đối tượng>.<Thuộc tính> = <Giá trị>
Ví dụ:
▬ Thay đổi chữ trong Textbox thành màu đỏ:
txtHienthi.ForeColor = 255
▬ Thay đổi màu nền trong Textbox thành màu vàng:
txtHienthi.BackColor = 65535
Ví dụ: Thiết kế mẫu Form theo yêu cầu sau:
▬ Khi nhấp nút “Hiển thị” thì trong Textbox sẽ hiện lời chào “Chào mừng các học
viên …” (theo mẫu) có màu đỏ, được canh giữa và được khóa lại.
▬ Khi nhấp nút “Xóa” thì Textbox sẽ bị xóa trắng.
▬ Nút “Thoát” dùng để đóng Form.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 70
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Viết lệnh:
Private Sub cmdHienthi_Click()
' Gan chuoi
Me.txtLoichao.Value = "Chao mung cac hoc vien" & _
vbCrLf & "Truong KỸ THUẬT CÔNG NGHỆ HÙNG VƯƠNG" & _
vbCrLf & "Khoa Công Nghệ Thông Tin"
' Thay doi thuoc tinh
Me.txtLoichao.ForeColor = 255
Me.txtLoichao.TextAlign = 2
Me.txtLoichao.Locked = True
End Sub

Private Sub cmdThoat_Click()


DoCmd.Close , , acSaveYes
End Sub

Private Sub cmdXoa_Click()


Me.txtLoichao.Value = Null
End Sub
3- Thực hiện hành động trong thủ tục
▬ Access cung cấp đối tượng DoCmd chứa các phương thức có tên và đối số tùy
chọn giống như các hành động trong Macro. Vì vậy, ta có thể sử dụng đối tượng
này khi muốn thực hiện các hành động.
▬ Cú pháp tổng quát:
DoCmd.<hành động> [các đối số]
Trong đó:
 <hành động> sẽ được chọn trong danh sách xuất hiện sau khi ta nhập dấu
chấm.
 [các đối số] ngăn cách bằng dấu phẩy và có thể sử dụng đối số mặc nhiên
bằng cách đánh dấu phẩy và rồi để trống. Các đối số này sẽ xuất hiện khi ta
đánh dấu phẩy. Các đối số là hằng chuẩn thường các ký tự đầu là ac…, vb…,
… Còn các đối số không phải là hằng đều phải đặt trong cặp dấu nháy kép.
Ví dụ về các hành:
DoCmd.OpenForm “F_Thongtinkhachhang”, , , “[Tenkh] Like ‘” &
Forms!F_Timkhachhang!txtTenkh & “’”
 Cho phép mở Form “F_Thongtinkhachhang” ở chế độ Form View với điều kiện
Tenkh trùng với giá trị nhập trong Textbox txtTenkh trong Form “F_Timkhachhang”.
DoCmd.Close acForm, “F_Timkhachhang”, acSaveYes
 Cho phép đóng Form “F_Timkhachhang” và có lưu cập nhật.
DoCmd.RunCommand accmdDeleteRecord
 Sử dụng lệnh xóa Record trên menu Edit

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 71


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

4- Thực hiện các phương thức trên đối tượng


▬ Phương thức của một đối tượng là một hành động được thực hiện trên đối tượng
đó. Có thể sử dụng các phương của đối tượng bằng cú pháp:
<Tên đối tượng>.<Phương thức> [các đối số]
▬ Các phương thức thường dùng:
 SetFocus: Chuyển focus đến đối tượng.
 Requery: Chạy lại Query nguồn của Form|Combobox|Listbox
 Refresh: Hiển thị dữ liệu mới nhất vừa sử đổi.
 Undo: Phục hồi dữ liệu trên Form|Control.
Ví dụ 1: Để chuyển focus đến nút “Xóa” sau khi nhấp nút “Hiển thị” ta viết thêm
dòng sau đây trong thủ tục cmdHienthi_Click():
Me.cmdXoa.SetFocus
Ví dụ 2: Xét mẫu Form sau đây:
Yêu cầu thiết kế:
▬ Hai Combobox đặt tại vùng Form
Header chứa danh sách thành phố
khách hàng và tên các khách hàng theo
thành phố đó. Trong đó, Combobox
chứa tên khách hàng không cho phép
nhận focus khi mở Form.
▬ Các Textbox trong vùng Detail để hiển thị thông tin các khách hàng trong Table
Khachhang và sẽ hiển thị đúng khách hàng theo sự chọn lực trong các Combobox.
Đồng thời chúng cũng sẽ xuất hiện mờ khi khi mở Form.
Yêu cầu nội dung:
▬ Khi chọn một thành phố trong Combobox 1 thì Combobox 2 sẽ sáng lên để cho
phép chọn tên khách hàng ở thành phố đó. Trong khi đó các Textbox thông tin
khách hàng vẫn chưa hiện sáng.
▬ Khi chọn một khách hàng trong Combobox 2 thì các Textbox sẽ hiện sáng, đồng
thời chúng hiển thị đúng khách hàng vừa chọn và con trỏ bắt đầu nhảy vào
Textbox “Tên khách hàng” để cho phép hiệu chỉnh (không cho phép hiệu chỉnh
“Mã khách hàng”).
Thiết kế:
▬ Thủ tục cho Combobox 1:
Private Sub cobTp_AfterUpdate()
' Cho phép cobTenkh nhận focus
Me.cobMakh.Enabled = True
' Chạy lại Query nguồn của cobTenkh
Me.cobMakh.Requery
' Không cho các Control sau nhận focus
Me.Makh.Enabled = False
Me.Tenkh.Enabled = False

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 72


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Me.Diachikh.Enabled = False
Me.Dienthoaikh.Enabled = False
Me.Thanhpho.Enabled = False
End Sub
▬ Thủ tục cho Combobox 2:
Private Sub cobMakh_AfterUpdate()
' Lọc dữ liệu trên Form
DoCmd.ApplyFilter , "[Makh] = '" & Me!cobMakh.Value & "'"
' Cho các Control sau nhận focus
Me.Tenkh.Enabled = True
Me.Diachikh.Enabled = True
Me.Dienthoaikh.Enabled = True
Me.Thanhpho.Enabled = True
' Chuyển focus đến Tenkh
Me.Tenkh.SetFocus
End Sub

Chú ý: Đối tượng Me đại diện cho Form hiện hành.

5- Lệnh nhảy
▬ Khi gọi thực hiện các thủ tục, có khi tồn tại những dòng lệnh mà tại đó phát sinh
lỗi. Những lỗi này có thể do:
 Đối tượng ở trạng thái không chấp nhận lệnh.
 Đối tượng không tồn tại.
▬ Và tùy tình huống mà ta dùng các lệnh nhảy sau đây để điều khiển việc thực thi
các dòng lệnh trong thủ tục:
On Error Goto <Nhãn>
▬ Nhảy đến đoạn chương trình có <Nhãn> khi có lỗi xảy ra. <Nhãn> đặt tại dòng
nơi cần nhảy tới theo sau là dấu hai chấm.
On Error Resume Next
▬ Thực hiện dòng lệnh đứng liền tiếp theo dòng lệnh sinh lỗi. Lệnh này thường được
đặt trước dòng lệnh phát sinh lỗi.

IV- Cấu trúc điều kiện:

1- Tổng quan
▬ Đây là cấu trúc thông dụng trong khi viết lệnh, nó được dùng để thực hiện các
lệnh tùy theo các điều kiện.
2- Các dạng If

2.1- Dạng 1
If <điều kiện> Then <lệnh>
 Kiểm tra <điều kiện> và thực hiện 1 lệnh tương ứng nếu <điều kiện> xảy ra
(true). Nếu <điều kiện> không xảy ra (false) thủ tục sẽ bỏ qua dòng lệnh này.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 73
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

2.2- Dạng 2
If <điều kiện> Then
<nhóm lệnh>
End if
 Giống dạng 1 nhưng thực hiện nhiều lệnh trong thân If.

2.3- Dạng 3
If <điều kiện 1> Then
<nhóm lệnh 1>
ElseIf <điều kiện 2> Then
<nhóm lệnh 2>
……
Else
<nhóm lệnh n>
End If
 Kiểm tra nhiều <điều kiện …> và thực hiện các <nhóm lệnh …> tương ứng nếu
<điều kiện …> xảy ra. Ngược lại, thực hiện <nhóm lệnh n>.

3- Ví dụ
Xét mẫu Form sau:
Yêu cầu:
▬ Khi chọn tùy chọn “Tất cả thành phố” thì
Combobox sẽ mờ đi. Ngược lại, khi chọn tùy chọn
“Chọn thành phố” thì Combobox sẽ sáng lên để
cho phép chọn tên thành phố.
▬ Khi chọn tùy chọn “Tất cả thành phố”, nhấp nút “Xem” sẽ mở Report
“RL_Thiepmoi” ra màn hình. Ngược lại, khi chọn tùy chọn “Chọn thành phố” đồng
thời chọn một thành phố trong Combobox và nhấp nút “Xem” sẽ mở Report
“RL_Thiepmoi” ra màn hình theo đúng thành phố vừa chọn.
Thiết kế:
▬ Thủ tục đáp ứng yêu cầu trên:
Private Sub fraChon_AfterUpdate()
If fraChon = 1 Then
cobtp.Enabled = False
Else
cobtp.Enabled = True
End If
End Sub

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 74


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Private Sub cmdXem_Click()


If fraChon = 1 Then
DoCmd.OpenReport "RL_Thiepmoi", acViewPreview
ElseIf fraChon = 2 And IsNull(cobtp) Then
MsgBox "Ban phai chon thanh pho", vbCritical
Me.cobtp.SetFocus
Else
DoCmd.OpenReport "RL_Thiepmoi", acViewPreview, , "Thanhpho = '" &
Me.cobtp & "'"
End If
End Sub
V- Cấu trúc chọn lựa Select … Case

1- Tổng quan
▬ Điều khiển việc thực hiện các lệnh dựa trên các giá trị của một biểu thức.

2- Cú pháp
Select Case <biểu thức>
Case <giá trị 1>
<nhóm lệnh 1>
Case <giá trị 2>
<nhóm lệnh 2>
……
Case Else
<nhóm lệnh n>
End Select
 Khi <biểu thức> có <giá trị 1> thì thực hiện <nhóm lệnh 1>, khi <biểu thức> có
<giá trị 2> thì thực hiện <nhóm lệnh 2>, …… Ngoài ra thực hiện <nhóm lệnh n>
sau phát biểu Case Else.
Lưu ý: <giá trị …> có thể có các dạng sau:
 Một giá trị cùng kiểu với giá trị <biểu thức>.
 Nhiều giá trị cách nhau dấu phẩy.
 Miền giá trị: <cận đầu> To <cận cuối>
 Biểu thức: Is <toán tử so sánh> <giá trị>

3- Ví dụ
Xét mẫu Form sau:
Yêu cầu:
▬ Nhập một số có 2 chữ số
vào Textbox bên trái 
Bấm enter  Dịch bằng chữ trong Textbox bên phải.
▬ Thủ tục như sau:

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 75


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Private Sub txtSo_Exit()


‘ Khai báo biến chuỗi
Dim t1 As String
Dim t2 As String
‘ Khai báo biến số nguyên
Dim chuc As Byte
Dim donvi As Byte
If Val(Me.txtSo)<10 or Val(Me.txtSo)>99 Then
MsgBox “Ban nhap so khong dung pham vi”, vbCritical
Me.txtSo.SetFocus
Exit Sub
Else
chuc = Val(Me.txtSo) \ 10 ‘ Tach chu so hang chuc
donvi = Val(Me.txtSo) mod 10 ‘ Tach chu so hang don vi
Select Case chuc
Case 1 : t1 = “Muoi”
Case 2 : t1 = “Hai muoi”
Case 3 : t1 = “Ba muoi”
Case 4 : t1 = “Bon muoi”
Case 5 : t1 = “Nam muoi”
Case 6 : t1 = “Sau muoi”
Case 7 : t1 = “Bay muoi”
Case 8 : t1 = “Tam muoi”
Case 9 : t1 = “Chin muoi”
End Select
Select Case donvi
Case 0 : t2 = “”
Case 1 : t2 = “mot”
Case 2 : t2 = “hai”
Case 3 : t2 = “ba”
Case 4 : t2 = “bon”
Case 5 : t2 = “lam”
Case 6 : t2 = “sau”
Case 7 : t2 = “bay”
Case 8 : t2 = “tam”
Case 9 : t2 = “chin”
End Select
End If
Me.txtChu = t1 & Space(1) & t2 & Space(1) & “dong”
End Sub
VI- Biến và khai báo biến
1- Tổng quan
▬ Biến là một vùng nhớ tạm được khai báo trong thủ tục để lưu trữ các giá trị trung
gian trong khi xử lý.
▬ Biến phải được khai báo bằng một tên và thuộc về một kiểu dữ liệu nhất định.
▬ Tên biến bao gồm chữ cái, chữ số và dấu gạch dưới và phải bắt đầu bằng một
chữ cái. Đồng thời tên biến không được đặt trùng với các từ khóa như: Case, If,
Then, …
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 76
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

2- Kiểu của biến


▬ Thông thường, mỗi biến phải được khai báo bằng một kiểu xác định nhằm tránh
sự nhầm lẫn khi trao đổi giá trị cho biến.
▬ Bảng các kiểu thường dùng:
Kiểu Mô tả Phạm vi
Byte Số nguyên 1 byte 0  255
Boolean Đúng|Sai True(-1)|False(0)
Date Ngày tháng
Integer Số nguyên 2 byte. -32,768  32,767
Long Số nguyên 4 byte. -2,147,483,648  2,147,483,647
Single Số thực 4 byte.
Double Số thực 8 byte.
Currency Số thực có dấu chấm cố định 8 byte.
String Chuỗi ký tự.
Variant Chuỗi, ngày, giờ, số.

3- Khai báo biến


▬ Cú pháp:
Dim <tên biến> As <kiểu>
▬ Biến khai báo trong thủ tục chỉ có phạm vi sử dụng trong thủ tục. Khi thủ tục kết
thúc giá trị biến sẽ bị xóa.
▬ Biến khai báo trong Declaration của đơn thể sẽ có phạm vi sử dụng trong
Form|Report. Khi đóng đối tượng giá trị của biến sẽ bị xóa.

******************************************

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 77


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

BÀI 10:

TẠO THỰC ĐƠN LỆNH TRONG ACCESS


I- Tổng quan
▬ Thanh thực đơn là nơi chứa các lệnh cho phép người dùng truy xuất tới các đối
tượng trong ứng dụng mà không thông qua cửa sổ Database. Nghĩa là, ta có thể
không cho cửa sổ Database xuất hiện khi khởi động ứng dụng.
▬ Có thể tạo thanh thực đơn bằng Macro Group, nhưng trong bài này giới thiệu cách
tạo thực đơn lệnh của Access.

II- Các bước tạo thực đơn

1- Tạo hệ thống thực đơn


▬ Bước 1: Menu View  Toolbar  Customize  Hiện hộp thoại : Thẻ Toolbar

1- Chọn New để xuất hiện và đặt tên

2- Chọn Properties để xuất hiện và chọn Menu Bar trong hộp Type

Thanh thực đơn tạo mới xuất hiện

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 78


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

▬ Bước 2: Thẻ Command: Chọn New Menu và kéo biểu tượng “New Menu” đặt vào
thanh thực đơn (trên mẫu) sau đó nhấp vào Name để đặt tên cho thực đơn.

▬ Bước 3: Thẻ Command: Chọn các mục trong hộp Categories (AllQuery, AllReport,
AllForm, AllMacro, …) để xuất hiện các đối tượng tương ứng trong ứng dụng.

▬ Bước 4: Kéo đối


tượng đặt vào bên
dưới thực đơn (theo
mẫu).

▬ Bước 5: Thực hiện lại bước 4 cho các đối tượng trong cùng thực đơn.

 Lập lại các bước 2,3,4,5 cho thực đơn tiếp theo.

2- Khai báo các thuộc tính khi khởi động

▬ Menu Tools  Start Up  Hiện


hộp thoại :

▬ Bỏ tùy chọn Display Database


Window để không cho khởi động
cửa sổ Database khoi chạy file
mdb.

▬ Chọn tên thực đơn vừa tạo trong


hộp Menu Bar.

*********************************************************************
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 79
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

BÀI TẬP MICROSOFT ACCESS


BÀI THỰC HÀNH 01 (THUCHANH01.MDB)
A. Taïo caáu truùc caùc Table sau:

 Table DonVi
MaDV TenDV
Text Text
Yeâu caàu:
- MaDV: Goàm hai kyù töï soá vaø khoâng ñöôïc truøng.
- TenDV: Toái ña 50 kyù töï coù daïng chöõ in vaø baét buoäc nhaäp.
 Table BangLuong
MaCB MaDV HoTen Phai NgaySinh MSNgach Bac NXLuong TapThe
Text Text Text Yes/no Date/time Text Number Number Yes/no
Yeâu caàu:
- MaCB : goàm 4 kyù töï soá vaø khoâng ñöïôïc truøng.
- MaDV : töông töï field MaDV trong Table ñôn vò nhöng ñöôïc truøng.
- HoTen : Toái ña 35 kyù töï coù daïng chöõ in vaø baét buoäc nhaäp.
- GioiTinh : yes laø nam, no laø nöõ.
- NgaySinh : Hieån thò daïng dd/mm/yyyy.
- MSNgach : Goàm 3 kyù töï soá.
- Bac : Baäc naèm trong ñoaïn töø 1 ñeán 10.
- NXLuong : Naêm xeáp löông phaûi nhoû hôn hoaëc baèng 2001.
- TapThe : yes thì ôû nhaø taäp theå.
 Table NgachLuong
MSNgach HSLuong ChucDanh
Text Number Text
Yeâu caàu:
- MSNgach : Goàm 3 kyù töï soá vaø khoâng ñöôïc truøng.
- HSLuong : Cho pheùp nhaäp döõ lieäu daïng thaâp phaân (hai soá leû)
- ChucDanh: Toái ña 30 kyù töï coù daïng chöõ in vaø baét buoäc nhaäp.
B. Thieát laäp quan heä giöõa caùc table nhö maãu sau:

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 80


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

C. Nhaäp döõ lieäu cho caùc Table:


 Table DonVi
MaDV TenDV
01 Phoøng Giaùm ñoác
02 Phoøng kyõ thuaät
03 Phoøng taøi vuï
 Table NgachLuong
MSNgach HSLuong ChucDanh
001 4.50 Giaùm ñoác
002 3.65 Tröôûng phoøng
003 3.10 Nhaân vieân
 Table BangLuong
MaCB MaDV HoTen GioiTinh NgaySinh MSNgach Bac NXLuong TapThe
0001 01 Traàn Vaên Huøng Yes 14/02/1960 001 7 1995 No
0002 02 Luong Vaên Hoaøng Yes 19/05/1968 002 5 1996 No
0003 03 Vöông Huøng Vuõ Yes 16/02/1972 002 4 1997 Yes
0004 03 Phan Thò Thu Vaân No 15/01/1971 003 5 1995 Yes
0005 02 Leâ Thò Yeán Nöông No 06/07/1973 003 4 1998 Yes
0006 02 Voõ Tuyeát Trinh No 24/04/1975 003 3 1999 No
0007 03 Vöông Boäi Trang No 24/11/1970 003 5 1995 No
0008 03 Hoà thò Thuûy No 29/12/1987 002 4 1998 Yes
0009 01 Nguyeãn Vaên Tyù Yes 15/10/1979 002 2 1999 No
0010 03 Löu Hoøa Bình Yes 01/02/1980 003 2 2000 Yes

D. Taïo caùc Query sau bằng ngôn ngữ SQL và QBE:

 Q1: Lieät keâ danh saùch nhaân vieân ôû taäp theå (saép xeáp taêng theo hoï teân)
 Q2: Lieät keâ danh saùch nhaân vieân sinh sau naêm 1975 (saép xeáp giaûm theo hoï teân)
 Q3: Lieät keâ MaDV, TenDV, toång soá nhaân vieân thuoäc ñôn vò ñoù
 Q4: Thoáng keâ xem coù bao nhieâu phaùi nam, bao nhieâu phaùi nöõ.
 Q5: Thoáng keâ xem coù bao nhieâu nhaân vieân ôû taäp theå vaø khoâng ôû taäp theå..
 Q6: Lieät keâ: MaCB, MaDV, HoTen, Luong, TienNha, TamUng, ThucLanh.
Trong ñoù:
-Luong: + Neáu Bac >=5 thì 180000*HSLuong
+ Neáu Bac >=3 thì 144000*HSLuong
+ Coøn laïi thì 120000*HSLuong
-TienNha=0.05*Luong
-TamUng:
+Neáu MaDV laø “01”hoaëc coù Bac >=4 thì taïm öùng 30% cuûa Luong
+Coøn laïi thì taïm öùng 10% cuûa Luong
-ThucLanh:Luong-TienNha-TamUng.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 81
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 Q7: Lieät keâ: MaCB, MaDV, HoTen, Luong, TienNha, TamUng, ThucLanh coù löông
treân 700000 vaø saép xeáp taêng theo ThucLanh
 Q8: Lieät keâ: MaDV, TenDV, Toång löông töøng ñôn vò.

BÀI THỰC HÀNH 02 (THUCHANH02.MDB)


A. Taïo caáu truùc caùc Table sau:

 Baûng DMLop
Teân vuøng tin Kieåu döõ lieäu Kích Thöôùc Ghi chuù
MaLop Text 5 Maõ Lôùp (khoaù)
Ban Text ? Phaân ban hoc
GVCN Text ? Teân giaùo vieân chuû nhieäm
Yeâu Caàu:
 MaLop : Khoâng truøng , baét buoäc phaûi nhaäp, nhaäp xong phaûi hieån thò
daïng chöõ hoa
 BAN : Laø 1 chöõ caùi vaø chæ laø chöõ “A” hoaëc “B”
 GVNC : Daøi toái da laø 20 kyù töï .
 Baûng HocSinh
Teân vuøng tin Kieåu döõ lieäu Kích Thöôùc Ghi chuù
MaHS Text 7 Maõ soá Hoïc Sinh (khoaù)
MaLop Text 5 Maõ Lôùp
HoHS Text 30 Hoï Hoïc Sinh
TenHS Text 10 Teân Hoïc Sinh
PhaiNam Yes/No Phaùi Nam Laø Yes
NamSinh Number
Yeâu Caàu:
 MaHS : Khoâng truøng , baét buoäc phaûi nhaäp, nhaäp xong phaûi hieån thò
daïng chöõ hoa
 MaLop : Phuø hôïp vôùi maõ lôùp trong table DMLOP , buoäc phaûi nhaäp
(khoâng phaûi khoùa)
 HoHS,TenHS: Nhaäp xong phaûi hieån thò daïng chöõ hoa
 PhaiNam : Giaù trò maëc ñònh laø Yes, hieån thò daïng Check box
 NamSinh : Laø soá nguyeân vaø coù giaù trò <=1985
 Baûng Diem
Teân vuøng tin Kieåu döõ lieäu Kích Thöôùc Ghi chuù
MaHS Text 7 Maõ soá Hoïc Sinh (khoaù)
Toan Number ? Ñieåm moân Toaùn
Ly Number ? Ñieåm moân Lyù
Van Number ? Ñieåm moân Vaên
Anh Number ? Ñieåm moân Anh
Yeâu Caàu:
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 82
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 MaHS : khoâng truøng, baét buoäc phaûi nhaäp, nhaäp xong phaûi hieån thò daïng chöõ
hoa trong cô sôû döõ lieäu.
 Toan, Ly, Anh, Van : laø soá thöïc coù giaù trò töø 0 tôùi 10, laáy 1 soá leû, giaù trò maëc
ñònh laø 0
B. Thieát laäp quan heä giöõa caùc baûng trong cöûa soå Relationship nhö hình sau:

Anh

C. Thí sinh nhaäp döõ lieäu Töông öùng vôùi caùc table nhö sau:
Table Lop Table Diem
TENLOP Ban GVCN MSHS Toan Ly Van Anh
10A01 A Huyønh Taán 10A010 6 9 9 8
10A02 A Giang Nam 10A010 7 7 7 7
10A03 A Xuaân Ñoâng 10A010 8 8 8 8
10B01 B Tuyeát Ngoïc 10A010 6 9 6 9
10B02 B Uyeân Trinh 10A010 2 3 4 2
10B020 8 7 5 6
10B020 7 6 8 9
10B020 8.5 5.5 6.5 4
10B020 9 7 3 8
10B020 8 8 8 6

Table HocSinh
MSHS MaLop Ho Ten NamSinh PhaiNam
10A0101 10A01 Löông Thò Anh 1983
10A0102 10A01 Lyù Huøng Anh 1980 x
10A0103 10A01 Nguyeãn Thò Dung 1984
10A0104 10A01 Phan Ñöùc Duõng 1983 x
10A0105 10A01 Nguyeãn Vaên Hoaø 1984 x
10A0106 10A01 Nguyeãn Hoàng Phöông 1985
10B0201 10B02 Huyønh Dung 1983
10B0202 10B02 Nguyeãn Hoàng Long 1984 X
10B0203 10B02 Leâ Ñaêng Long 1983 X
10B0204 10B02 Traàn Thò Bích 1984
10B0205 10B02 Ñoã Huöõ Troïng 1983 X
D. Taïo caùc Query sau bằng ngôn ngữ SQL và QBE:

 Q1: Cho bieát thoâng tin veà caùc hoïc sinh hoïc lôùp 10A01.
 Q2: Cho bieát thoâng tin veà caùc hoïc sinh Nam, sinh tröôùc naêm 1985.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 83


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 Q3: Cho bieát danh saùch caùc hoïc sinh coù ñieåm taát caû caùc moân treân 5, bao goàm: MSHS,
HoTen HS, PhaiNam, TenLop, GVCN.
 Q4: Cho bieát danh saùch caùc hoïc sinh coù ñieåm Toaùn hoaëc ñieåm Lyù >=7.
 Q5: Taïo Query bao goàm caùc thoâng tin MAHS, MaLop, HoTen, NamSinh, PhaiNam,
Toan, Ly, Hoa, Van, Toång Ñieåm vaø Xeáp Loaïi.
Bieát raèng:
- HoTen : Bao goàm Hoï noái vôùi Teân
- Toång ñieåm : Neáu Ban laø “A” thì Toaùn * 2 + Lyù +Vaên + Anh coøn ban “B” thì
Toaùn + Lyù +Vaên * 2
- Xeáp loaïi : ñaùnh giaù cho töøng hoï sinh nhö sau:
+Gioûi : Neáu toång ñieåm >= 32
+Khaù : Neáu toång ñieåm >= 26
+Trung bình : Neáu toång ñieåm >= 20 Coøn laïi laø Hoûng
 Q6: Thoáng keâ xem moãi lôùp coù bao nhieâu hoïc sinh,
 Q7: Thoáng keâ xem coù bao nhieâu hoïc sinh gioæ, khaù, trung bình, hoûng,

BÀI THỰC HÀNH 03 (QUANLY.MDB)


A. Taïo caáu truùc caùc Table sau:
 GIAOVIEN (MS-GV, HO-GV, TEN-GV, #MS-KHOA, MS-CNK, LG-GV)
 KHOA (MS-KHOA, TEN-KHOA, NGS-KHOA)
 Kyù hieäu söû duïng:
 MS-CNK: Maõ soá chuû nhieäm khoa
 LG-GV: Löông giaùo vieân (ñôn vò tính 100000ñ)
 NGS-KHOA: Ngaân saùch khoa (ñôn vò tính 1000000ñ)
 Baûng töông öùng vôùi hai quan heä treân:
GIAOVIEN MS- GV HO-GV TEN-GV MS- KHOA MS-CNK LG-GV
T0 TRAN VAN D20 T4 20
T4 HOANG MANH D20 T4 18
T6 NGUYEN THI NGA D20 T4 10
T7 PHAM AN D15 T2 18
T2 HO VAN MINH D15 T2 20
T3 LE THU NGA D15 T2 15
T5 VU MINH D15 T2 21
T1 TRAN THONG D25 T1 23
T8 HUYNH NGOC THU D25 T1 16
T9 HO HUU NHAN D32 T9 13

KHOA MS-KHOA TEN-KHOA NGS-KHOA


D15 CONG NGHE THONG TIN 600
D20 VAT LY 800
D22 TOAN HOC 500
D25 THONG KE 400
D30 DI TRUYEN 700
D32 MOI TRUONG 100
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 84
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

B. Haõy söû duïng ngoân ngöõ coù caáu truùc SQL vaø QBE taïo caùc truy vaán sau:

 QueryQ1: Haõy cho bieát teân cuûa caùc khoa coù trong CSDL QUANLY.
 QueryQ2: Haõy cho bieát maõ soá caùc khoa.
 QueryQ3: Haõy cho bieát HO GV; TEN GV cuûa caùc GIAOVIEN thuoäc khoa D25.
 QueryQ4: Haõy cho bieát HO&TEN caùc giaùo vieân,TENKHOA coù maõ soá khoa D15,D22,D32.
 QueryQ5: Haõy cho bieát HO&TEN giaùo vieân thuoäc khoa D20 coù löông lôùn hôn 1600000.
 QueryQ6: Haõy cho bieát MS-GV; HO-GV; TEN-GV cuûa caùc khoa D15 vaø D20 coù löông lôùn
hôn 1500000 vaø beù hôn 2000000.
 QueryQ7: Haõy cho bieát MS-GV; HO-GV; TEN-GV cuûa caùc khoa D15 vaø D20 coù löông
nhoû hôn 1500000 hoaëc lôùn hôn 2000000.
 QueryQ8: Haõy cho bieát MS-GV; HO-GV; TEN-GV cuûa khoa D15 coù löông lôùn hôn
1700000 nhöng khoâng phaûi laø chuû nhieäm khoa.
 QueryQ9: Haõy tìm HO & TEN caùc ñoàng nghieäp cuøng khoa giaùo vieân HO=“PHAM” &
TEN=“AN”.
 QueryQ10: Haõy tìm caùc ñoàng nghieäp cuøng khoa cuûa GV coù HO= “TRAN” vaø TEN =
“THONG” maø löông lôùn hôn giaùo vieân TRAN THONG.
 QueryQ11: Haõy tìm HO & TEN cuûa giaùo vieân cuøng ngaân saùch khoa hoïc cuûa khoa maø GV
tröïc thuoäc cuûa nhöõng giaùo vieân coù löông lôùn hôn 2000000.
 QueryQ12: Haõy tìm caùc khoa khoâng coù giaùo vieân.
 QueryU1: Cheøn moät khoa môùi vaøo bảng KHOA coù noäi dung sau ñaây: {D36KINHTE 400{.
 QueryU2: Xoùa khoa coù maõ soá khoa D15.
 QueryU3: Haõy taêng ngaân saùch cuûa khoa coù MSKHOA = “D15” theâm 20000000.
 QueryU4: Haõy taêng löông cho taát caû GV cuûa khoa D7 theâm 10%.
 QueryF1: Haõy ñeám taát caû nhöõng ngöôøi höôûng löông coù trong CSDL QUANLY.
 QueryF2: Haõy tìm HO & TEN cuûa giaùo vieân coù löông lôùn nhaát.
 QueryF3: Haõy tìm toång soá khoa khaùc nhau coù trong thöïc theå GIAOVIEN.
 QueryF4: Haõy tìm tieàn löông trung bình cuûa moãi khoa.
 QueryF5: Haõy tìm tieàn löông trung bình tuaàn cuûa caùc khoa.
 QueryF6: Haõy tìm maõ soá KHOA vaø tieàn löông trung bình cuûa noù, tröø khoa coù maõ soá D15
 QueryF7: Haõy tìm caùc khoa coù soá löôïng GV lôùn hôn 2 vaø khaùc khoa coù maõ soá D15

BÀI THỰC HÀNH 04 (QLSV.MDB)


A. Taïo caáu truùc caùc Table sau:

 Table DMMH (MaMH, TEN-MH)


 Table DMKHOA (MaKHOA, TEN-KHOA)
 Table SINHVIEN (MaSV, HoSV, TenSV, GioiTinh, Ngaysinh, Noisinh, Diachi, Quan,
MaKHOA, Hocbong)
 Table KETQUA (MaSV, MaMH, DIEM)
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 85
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

B. Nhaäp döõ lieäu vaøo caùc baûng:

Maõ Hoï sinh Ngaøy Maõ Hoïc


Teân sv Phaùi Nôi sinh Ñòa chæ Quaän
SV vieân sinh khoa boång
A01 Nguyeãn Thò Haûi Nöõ 23/02/77 Saøi Goøn 12 Voõ Vaên Taàn Q3 AV 100,000
A02 Traàn Vaên Chính Nam 23/02/77 Saøi Goøn 34 Nguyeãn Traõi Q1 TH 120,000
A03 Leâ Thò Baïch Chính Nöõ 21/12/76 Haø Noäi 757 Pastuer BC VL 100,000
A04 Traàn Baïch Ñaèng Nam 05/01/73 Saøi Goøn 5 Leâ Lôïi Q1 AV 150,000
A05 Traàn Thuùy Uyeân Nöõ 06/05/76 An Giang 3 Huøng Vöông Q5 TH
A06 Nguyeãn Vaên Chính Nam 01/01/77 Saøi Goøn 05 Ng Vaên Cöø Q5 TR 120,000
B01 Traàn Thanh Mai Nöõ 20/12/77 Beán Tre 26 HBT Q1 TH
B02 Traàn Ñaêng Khoa Nam 05/03/75 Haø Noäi 135 Voõ T Saùu Q3 AV
B03 Ñaøo Thò Hoa Nöõ 06/01/75 An Giang 12 Leâ Quang BT TH 120,000
C01 Leâ Hoàng Chöông Nam 12/01/74 Traø Vinh 35 Huøng Vöông Q8 VL 140,000
C02 Nguyeãn Thò Giang Nöõ 04/12/75 Saøi Goøn 134 Leâ Duaån Q1 TR 200,000

Maõ khoa Teân khoa Maõ sinh vieân Maõ moân hoïc Ñieåm
AV ANH VAÊN A01 01 4.0
TH TIN HOÏC A01 02 2.0
TR TRIEÁT HOÏC A01 03 10.0
VL VAÄT LYÙ A02 01 10.0
A02 02 2.0
Maõ moân hoïc Teân moân hoïc A02 03 8.0
01 CÔ SÔÛ DÖÕ LIEÄU A03 04 5.0
02 TRÍ TUEÄ NHAÂN TAÏO A03 01 4.0
03 TRUYEÀN TIN A04 03 8.0
04 ÑOÀ HOÏA A05 01 8.0
05 VAÊN PHAÏM A05 02 5.0
06 ÑAØM THOAÏI B01 04 7.0
07 VAÄT LYÙ GNUYEÂN B01 03 3.0
08 VAÄT LYÙ ÑÒA CAÀU B02 01 10.0
09 TRIEÁT HOÏC ÑOÂNG B02 02 3.0
B03 02 8.0

C. Haõy söû duïng ngoân ngöõ coù caáu truùc SQL vaø QBE taïo caùc truy vaán sau:

 QueryQ1: Lieät keâ danh saùch sinh vieân goàm caùc field sau:
MASV, HOSV, TENSV, NGAYSINH, DIACHI, PHAI, NOISINH, HOCBONG.
 QueryQ2: Töông töï Q1 nhöng saép xeáp taêng daàn theo HOCBONG
 QueryQ3: Töông töï Q1 nhöng saép xeáp taêng daàn theo MAKH, giaûm daàn theo NGAYSINH
 QueryQ4: Töông töï Q1 nhöng loïc nhöõng sinh vieân coù teân laø “Chính”
 QueryQ5: Töông töï Q1 nhöng loïc nhöõng sinh vieân coù teân baét ñaàu laø chöõ “H”
 QueryQ6: Töông töï Q1 nhöng loïc nhöõng sinh vieân coù teân baét ñaàu laø chöõ [B – M]
 QueryQ7: Töông töï Q1 nhöng loïc nhöõng sinh vieân coù hoï laø Nguyeãn hoaëc Leâ

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 86


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 QueryQ8: Töông töï Q1 nhöng loïc nhöõng sinh vieân coù hoï loùt laø “Thò”
 QueryQ9: Lieät keâ caùc thoâng tin goàm caùc field sau:
MASV, HOSV, TENSV, NGSINH, NOISINH, PHAI, DIACHI, MAKH, TENKH, HOCBONG
 QueryQ10: Töông töï Q2 nhöng chæ hieån thò nhöõng sinh vieân coù hoïc boång
 QueryQ11: Töông töï Q2 nhöng chæ hieån thò nhöõng sinh vieân thuoäc khoa TH
 QueryQ12: Töông töï Q2 nhöng chæ hieån thò nhöõng sinh vieân thuoäc khoa AV & coù hoïc boång
 QueryQ13: Töông töï Q2 nhöng chæ hieån thò nhöõng sinh vieân thuoäc khoa TH hoaëc khoa AV
 QueryQ14: Töông töï Q2 nhöng chæ hieån thò nhöõng sinh vieân ôû Q1 hoaëc Q3 vaø coù hoïc boång
 QueryQ15: Töông töï Q2 nhöng chæ hieån thò nhöõng sinh vieân coù nôi sinh “Haø Noäi” vaø sinh
thaùng 12
 QueryQ16: Lieät keâ caùc thoâng tin goàm caùc field sau (TUOI ñöôïc tính naêm hieän haønh tröø
naêm sinh): MASV, HOSV, TENSV, NGAYSINH, TUOI
 QueryQ17: Lieät keâ caùc thoâng tin goàm field sau: MASV, HOTENSV, NGAYSINH,
NOISINH, PHAI, MAKHOA, TENKHOA, MAMH, TENMH, DIEM
 QueryQ18: Lieät keâ caùc thoâng tin goàm field sau: (HOCBONGPT baèng 10% HOCBONG)
MASV, HOTENSV, MAKHOA, TENKHOA, HOCBONG, HOCBONGPT
 QueryQ19: Lieät keâ KETQUA laø “ÑAÏT” neáu DIEM>=5, ngöôïc laïi laø “KHOÂNGÑAÏT” goàm
caùc Field sau: MASV, HOTENSV, PHAI, TENKHOA, TENMH, DIEM, KETQUA
 QueryQ20: Lieät keâ caùc thoâng tin goàm field sau:
MASV, HOTENSV, SOMT, DIEMTB, KETQUA
SOMT laø soá moân thi cuûa sinh vieân ñoù
DIEMTB laø ñieåm trung bình cuûa sinh vieân ñoù
KETQUA laø “Ñaäu” neáu DIEMTB >=5 vaø khoâng coù ñieåm < 2, ngöôïc laïi “Rôùt”
 QueryQ21: Töông töï Q7 nhöng chæ hieån thò nhöõng sinh vieân coù keát quaû laø Ñaäu
 QueryQ22: Lieät keâ caùc thoâng tin cho bieát toång sinh vieân theo töøng khoa goàm caùc field sau:
MAKHOA, TENKHOA, TONGSOSV
 QueryQ23: Lieät keâ thoâng tin cho bieát toång soá sinh vieân thi theo töøng moân hoïc goàm caùc
field sau: MAMH, TENMH, SOSVTHI.
 QueryQ24: Lieät keâ caùc thoâng tin goàm field sau: MAKH, TENKHOA, TONGSVNAM
 QueryQ25: Lieät keâ caùc thoâng tin goàm field sau: MAKH, TENKHOA, TONGSVNU
 QueryQ26: Cho bieát moân hoïc chöa coù sinh vieân thi goàm caùc field sau: MAMH, TENMH
 QueryQ27: Cho bieát sinh vieân coù ñieåm cao nhaát goàm caùc field: MASV, HOTENSV, DIEM
 QueryQ28: Cho bieát moân hoïc nhieàu sinh vieân thi nhaát goàm: MAMH, TENMH, SOSVTHI
 QueryQ29: Cho bieát caùc SV khoa ANH VAÊN chöa thi goàm caùc field: MASV, HOTENSV.
 QueryQ30: Cho bieát khoa coù sinh vieân nhieàu nhaát goàm caùc field: MAKH, TENKH, SOSV
 QueryQ31: Taêng theâm hoïc boång cho caùc sinh vieân thuoäc khoa AV 10%
 QueryQ32: Taêng 1 ñieåm moân hoïc Ñoà hoïa nhöõng sinh vieân coù maõ soá baét ñaàu baèng chöõ “A”

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 87


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 QueryQ33: Theâm khoa môùi vaøo Table DMKHOA goàm caùc thoâng tin “HV”, “Hoa vaên”
 QueryQ34: Theâm moät MH môùi vaøo Table DMMH goàm caùc thoâng tin “11”, “ÑH CN”
 QueryQ35: Xoùa sinh vieân coù maõ soá B03 trong Table KETQUA
 QueryQ36: Xoùa nhöõng sinh vieân thuoäc khoa Trieát hoïc trong Table SINHVIEN
 QueryQ37: Thoáng keâ sinh vieân theo phaùi theo daïng sau:
Phaùi Toång soá AV TH TR VL
Nam 6 2 1 2 1
Nöõ 5 1 3 1

BÀI THỰC HÀNH 05


A- Tạo các Table cho CSDL Banhang.mdb

 Table: Nhanvien

Field name Data Type Description Field Properties


Manv Number Mã nhân viên Field Size: Byte
Holot Text Họ lót nhân viên Field Size: 25
Ten Text Tên nhân viên Field Size: 8
Phai Yes/No Giới tính Format: “Nam”;“Nữ”
Display Control: TextBox
Ngaysinh Date/Time Ngày tháng năm sinh
Ngaynv Date/Time Ngày nhận việc
Dienthoainv Text Điện thoại liên lạc Field Size: 10
Input Mask: (999) 0000009
Hinhnv OLE Object Hình ảnh nhân viên

 Table: Khachhang

Field name Data Type Description Field Properties


Makh Text Mã khách hàng Field Size: 5
Tenkh Text Tên công ty Field Size: 50
Dienthoaikh Text Điện thoại khách hàng Field Size: 10
Input Mask: (999) 0000009
Diachikh Text Địa chỉ khách hàng Field Size: 50
Thanhpho Text Thành phố Field Size: 20

 Table: Sanpham

Field name Data Type Description Field Properties


Masp Number Mã sản phẩm Field Size: Byte
Format: 000
Tensp Text Tên sản phẩm Field Size: 30
Donvi Text Đơn vị tính Field Size: 10
Dongia Number Đơn giá bán Field Size: Double
Format: #,##0 $
Hinhsp OLE Object Hình sản phẩm

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 88


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 Table: Hoadon

Field name Data Type Description Field Properties


Mahd Text Mã hóa đơn Field Size : 8
Makh Text Mã khách hàng Field Size : 5
Manv Number Mã nhân viên Field Size : Byte
Ngaylaphd Date/Time Ngày lập hóa đơn
Ngaynhan Date/Time Ngày giao hàng

 Table : Chitiet

Field name Data Type Description Field Properties


Mahd Text Mã hóa đơn Field Size : 8
Masp Number Mã sản phẩm Field Size : Byte
Format : 000
Soluong Number Số lượng bán Field Size : Integer

B- Nhập dữ liệu

 Table: Nhanvien

 Table: Khachhang

 Table: Sanpham

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 89


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 Table: Hoadon

 Table: Chitiet

C- Tạo các Table cho CSDL Hocvien.mdb

 Table: Hocvien

Field name Data Type Description Field Properties


Mahv Text Mã học viên Field Size : 8 Format : >
Holothv Text Họ lót học viên Field Size : 30
Tenhv Text Tên học viên Field Size : 8
Phai Yes/No Giới tính Format : “Nam”;“Nữ”
Display Control : TextBox
Ngaysinhhv Date/Time Ngày tháng năm sinh
Noisinhhv Text Nơi sinh Format : 20
Dienthoaihv Text Điện thoại liên lạc Field Size : 10
Input Mask : (999) 0000009

 Table: Phancong

Field name Data Type Description Field Properties


Malop Text Mã lớp Field Size : 8 Format : >
Magv Number Mã giáo viên Field Size : Byte
Phutrach Text Phụ trách lý thuyết, thực hành Field Size : 10

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 90


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 Table: Lop

Field name Data Type Description Field Properties


Malop Text Mã lớp Field Size : 8
Format : >
Tenlop Text Tên lớp Field Size : 50
Siso Number Sỉ số ban đầu Field Size : Byte
Hocphi Number Học phí Field Size : Single
Ngaykhaigiang Date/Time Ngày tháng năm khai giảng
Ngaybegiang Date/Time Ngày bế giảng
SotietLT Number Số tiết lý thuyết Field Size : Byte
SotietTH Number Số tiết thực hành Field Size : Byte

 Table: Giaovien

Field name Data Type Description Field Properties


Magv Number Mã giáo viên Field Size : Byte
Holotgv Text Họ lót giáo viên Field Size : 30
Tengv Text Tên giáo viên Field Size : 8
Phai Yes/No Giới tính Format : “Nam”;“Nữ”
Display Control : TextBox
Ngaysinhgv Date/Time Ngày tháng năm sinh
Bangcap Text Bằng cấp Format : 20
Dienthoaigv Text Điện thoại liên lạc Field Size : 10
Input Mask : (999) 0000009
TiengioLT Number Tiền giờ lý thuyết Field Size : Single
TiengioTH Number Tiền giờ thực hành Field Size : Single

 Table: Ketqua

Field name Data Type Description Field Properties


Mahv Text Mã học viên Field Size : 8 Format : >
Malop Text Mã lớp Field Size : 8 Format : >
Ngaythi Date/Time Ngày tháng năm thi
DiemLT Number Điểm lý thuyết Format : Single Format : 0.0
Validation Rule : >=0 and <=10
Validation Text : “Bạn nhập điểm không
đúng !!”
DiemTH Number Điểm thực hành Format : Single Format : 0.0
Validation Rule : >=0 and <=10
Validation Text : “Bạn nhập điểm không
đúng !!”

D- Phần dữ liệu thử của CSDL Hocvien.mdb yêu cầu học viên tự nhập.

E- Các câu hỏi Select Query cho CSDL Banhang.mdb


1- QS1 : Tạo Query gồm các Field : Họ lót nhân viên, tên nhân viên, mã hóa đơn, ngày lập
hóa đơn. Sắp thứ tự theo tên nhân viên.
2- QS2 : Tạo Query gồm các Field : Mã hóa đơn, tên sản phẩm, đơn vị tính, số lượng, đơn
giá, ngày lập hóa đơn, ngày nhận hàng. Sắp thứ tự theo mã hóa đơn.
3- QS3 : Tạo Query gồm các Field : Tên khách hàng, tên sản phẩm, đơn vị tính, số lượng,
đơn giá.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 91
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

4- QS4 : Tạo Query gồm các Field : Mã hóa đơn, tên khách hàng, tên sản phẩm, họ lót nhân
viên, tên nhân viên, ngày lập hóa đơn. Sắp xếp tăng dần theo ngày lập hóa đơn.
5- QS5 : Hiển thị danh sách các đơn đặt hàng được lập trong tháng 3 năm 2004. Gồm các
Field : Mã hóa đơn, ngày lập hóa đơn, ngày nhận hàng, tên khách hàng và được sắp xếp
tăng dần theo ngày lập hóa đơn.
6- QS6 : Hiển thị danh sách các đơn đặt hàng do nhân viên có mã số 5 lập. Gồm các Field :
Họ lót nhân viên, tên nhân viên, mã hóa đơn, ngày lập hóa đơn, tên khách hàng.
7- QS7 : Hiển thị tên và địa chỉ những khách hàng đã mua hàng trong quý 2 năm 2004.
Gồm các Field : Tên khách hàng, địa chỉ khách hàng, thành phố khách hàng, mã hóa đơn,
ngày lập hóa đơn.
8- QS8 : Hiển thị danh sách các khách hàng ở Thành phố HCM hoặc Hà Nội. Gồm các Field :
Tên khách hàng, địa chỉ khách hàng, thành phố khách hàng, điện thoại khách hàng.
9- QS9 : Hiển thị danh sách các đơn đặt hàng có ngày lập và ngày nhận cách nhau không
quá 5 ngày. Gồm các Field : Mã hóa đơn, ngày lập hóa đơn, ngày nhận hàng.
10- QS10 : Hiển thị danh sách các khách hàng có tên khách hàng chứa chuỗi "TNHH". Gồm
các Field : Mã khách hàng, tên khách hàng, địa chỉ khách hàng, thành phố khách hàng, điện
thoại khách hàng.
11- QS11 : Hiển thị danh sách các đơn đặt hàng được lập trong 6 tháng đầu năm 2004. Gồm
những Field sau : Mã hóa đơn, ngày lập hóa đơn, tên khách hàng, họ tên nhân viên lập đơn.
Trong đó :
▬ Họ tên nhân viên được ghép từ họ lót và tên.
12- QS12 : Hiển thị danh sách các đơn đặt hàng lập trong tháng 9 hoặc 10 của các khách
hàng dạng "TNHH". Gồm các Field : Mã hóa đơn, ngày lập hóa đơn, họ tên nhân viên lập
đơn, tên sản phẩm, số lượng, đơn giá, thành tiền.
▬ Họ tên nhân viên được ghép từ họ lót và tên.
▬ Thành tiền : số lượng * đơn giá
13- QS13 : Hiển thị danh sách đơn đặt hàng có mã hóa đơn là 20040005. Gồm các Field :
Mã hóa đơn, tên sản phẩm, số lượng, đơn giá, thành tiền.
14- QS14 : Hiển thị danh sách chi tiết về các đơn đặt hàng. Gồm các Field : Mã hóa đơn, tên
sản phẩm, số ngày lập đơn, đơn giá, số lượng, thành tiền, tiền trả trước, tiền còn lại. Biết
rằng :
▬ Thành tiền : đơn giá * số lượng
▬ Số ngày lập đơn là khoảng cách từ ngày lập đơn đến ngày nhận hàng.
▬ Tiền trả trước : Nếu số ngày lập đơn ít hơn 20 thì bằng 20% của thành tiền. Nếu số
ngày lập đơn từ 20 đến 30 thì bằng 30% của thành tiền. Nếu số ngày lập đơn trên 30
thì bằng 40% của thành tiền.
▬ Tiền còn lại : thành tiền - tiền trả trước, nhưng giảm đi 5%.
▬ Khai báo thuộc tính “#,##0 $” cho các Field : Thành tiền, tiền trả trước, tiền còn lại.
15- QS15 : Hiển thị danh sách chi tiết về các đơn đặt hàng. Gồm các Field : Mã hóa đơn,
ngày lập hóa đơn, ngày nhận hàng, tên khách hàng, họ tên nhân viên, tên sản phẩm, đơn
giá, số lượng, thành tiền, tổng tiền. Biết rằng:
▬ Thành tiền: đơn giá * số lượng
▬ Tổng tiền: thành tiền + tiền kho. Với tiền kho được tính như sau :

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 92
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

 Nếu thời gian từ ngày lập đơn đến ngày nhận hàng trong khoảng từ 20 đến 40 ngày
thì không tính tiền kho.
 Nếu thời gian từ ngày lập đơn đến ngày nhận hàng nhỏ hơn 20 ngày thì giảm 2000
cho một ngày không lưu kho.
 Nếu thời gian từ ngày lập đơn đến ngày nhận hàng lớn hơn 40 ngày thì thêm 2000
cho một ngày lưu kho.
16- QS16 : Hiển thị danh sách các đơn đặt hàng. Gồm các Field: Mã hóa đơn, ngày lập hóa
đơn, tên sản phẩm, thành tiền, thuế, huê hồng, thực thu. Biết rằng:
▬ Thành tiền : số lượng * đơn giá
▬ Thuế : 20% * thành tiền
▬ Huê hồng : 4% * thành tiền, với điều kiện số lượng từ 40 trở lên.
▬ Thực thu : thành tiền – huê hồng - thuế
17- QS17 : Hiển thị danh sách các mặt hàng đặt mua trong 6 tháng cuối năm 2004. Gồm các
Field: Tên sản phẩm, mã hóa đơn, số lượng, đơn giá, đơn vị tính, thành tiền, quý. Biết rằng:
▬ Thành tiền : số lượng * đơn giá
▬ Quý : Ghi là "Quý 3" nếu ngày lập đơn từ đầu tháng 7 đến hết tháng 9 năm 2004. Ghi
là "Quý 4" nếu ngày lập đơn từ đầu tháng 10 đến hết tháng 12 năm 2004.
18- QS18 : Hiển thị danh sách của những đơn đặt hàng đặt mua trong 6 tháng đầu năm
2004. Gồm các Field : Mã hóa đơn, tên sản phẩm, số lượng, đơn giá, thành tiền, giảm, cước
phí, thanh toán.
▬ Thành tiền : số lượng * đơn giá
▬ Giảm : 10% * thành tiền, nếu số lượng trên 40
▬ Cước phí : 15% * thành tiền, nếu từ ngày lập đơn đến ngày nhận hàng trên 20 ngày.
▬ Thanh toán : thành tiền - giảm + cước phí
19- QS19 : Hiển thị các hóa đơn chưa giao hàng. Gồm các Field sau : Mã hóa đơn, ngày lập
hóa đơn, tên khách hàng, điện thoại khách hàng.
20- QS20 : Hiển thị tên sản phẩm có đơn giá bán thấp nhất. Gồm : Tên sản phẩm, đơn vị
tính, đơn giá.
21- QS21 : Hiển thị danh sách các khách hàng chưa đặt đơn hàng. Gồm : Mã khách hàng,
tên khách hàng, điện thoại khách hàng, địa chỉ khách hàng.
22- QS22 : Hiển thị danh sách các sản phẩm chưa có đơn đặt hàng. Gồm : Mã sản phẩm,
tên sản phẩm, đơn vị tính, đơn giá.
23- QS23 : Hiển thị danh sách các hóa đơn của một nhân viên bất kỳ có mã nhập vào từ bàn
phím. Các thông tin gồm : Hóa đơn nào ? Cho ai ? Ngày lập đơn ? Ngày nhận hàng ? Địa chỉ
của khách hàng ?
24- QS24 : Hiển thị danh sách các sản phẩm đã bán theo mã sản phẩm nhập từ bàn phím.
Thông tin gồm : Bán cho những hóa đơn nào ? Số lượng ? Đơn giá ? Tên khách hàng đặt
mua ? Thành tiền ?
25- QS25 : Cho biết trong một khoảng thời gian bất kỳ nào đó, một khách hàng nào đó có
mua hàng hay không ? Các thông tin cần xem : Mã khách hàng, tên khách hàng, ngày lập
hóa đơn, ngày nhận hàng, họ tên nhân viên, tên sản phẩm.

F- Thực hành tạo các Form Wizard theo mẫu

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 93


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

Mẫu 1: F_mau1

Mẫu 2: F_mau2

(Chỉnh sửa lại kích thước các đối tượng để có thể hiển thị đầy đủ nội dung)
Mẫu 3: F_mau3

Mẫu 4: FM_nhanvienhoadon

Mẫu 5: FM_hoadonchitiet

(Chỉnh sửa lại kích thước và vị trí các đối tượng đúng theo mẫu)

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 94


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
G- Thực hành tạo các Report Wizard theo mẫu

Mẫu 1: R_mau1

Mẫu 2: R_mau2

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 95


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
Mẫu 3: R_mau3

Mẫu 4: R_mau4

BÀI THỰC HÀNH 06


(Thực hiện trên CSDL HoaDon.mdb)

A- Các câu hỏi Total Query

1- QT1: Thiết kế query tính trị giá của hóa đơn đặt mua hàng có mã hóa đơn nhập vào
từ bàn phím. Biết rằng trị giá hàng hóa bằng tổng thành tiền của tất cả các sản phẩm
trong hóa đơn, đồng thời cho biết số sản phẩm trong hóa đơn đó. Gồm các Field : mã
hóa đơn, số sản phẩm, trị giá.
2- QT2 Thiết kế Query để cho biết trị giá của mỗi hóa đơn mà mỗi khách hàng đã đặt
mua. Gồm các Field : tên khách hàng, mã hóa đơn, trị giá.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 96


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
3- QT3: Thiết kế Query để cho biết số hóa đơn và tổng thành tiền của mỗi khách hàng
trong 6 tháng đầu năm 2004. Gồm các Field : tên khách hàng, số hóa đơn, tổng trị giá.
(Sử dụng Query QT2 với Table Hoadon).
4- QT4: Thiết kế query để cho biết số hóa đơn và tổng trị giá của các hóa đơn có trị giá
mỗi hóa đơn lớn hơn hoặc bằng 500000 mà mỗi khách hàng đã đặt mua hàng. Gồm :
tên khách hàng, số hóa đơn, tổng trị giá. (Sử dụng Query QT2 với Table Hoadon).
5- QT5: Thiết kế Query cho biết số hóa đơn và tổng trị giá của các hóa đơn mà mỗi
khách hàng đã mua hàng có tổng trị giá lớn hơn 8000000. Gồm : tên khách hàng, số
hóa đơn, tổng trị giá. (Sử dụng Query QT2 với Table Hoadon).
6- QT6: Thiết kế query để cho biết ở mỗi thành phố có bao nhiêu khách hàng.
7- QT7: Thiết kế một query để cho biết tổng số hóa đơn và tổng doanh thu của mỗi
quý trong năm 2004.
8- QT8: Thiết kế query để cho biết trị giá cao nhất ứng với mỗi sản phẩm ghi trên hóa
đơn. Thông tin gồm : mã hóa đơn, tên sản phẩm, trị giá cao nhất. (Tạo một Total
Query tính trị giá cao nhất ứng với mỗi sản phẩm. Sau đó tạo một Select Query với sự
tham gia của Total Query trên và sử dụng Field trị giá cao nhất trong Total Query để
đặt điều kiện cho Field trị giá trong Select Query).
9- QT9: Thiết kế query để cho biết mỗi nhân viên đã lập bao nhiêu hóa đơn và tổng số
tiền của các hóa đơn đó.
10- QT10: Thiết kế query để thống kê số liệu cho từng sản phẩm. Các thông tin gồm:
 Tổng số hóa đơn đã lập cho mỗi mặt hàng ?
 Tổng số lượng đã bán ?
 Tổng số tiền thu được ?
 Tổng số tiền thu được trong từng khoảng thời gian : 6 tháng đầu năm 2004 và
6 tháng cuối năm 2004.

B- Các câu hỏi Crosstab Query

1- QC1: Thiết kế Query cho biết tổng số tiền mua mỗi mặt hàng của mỗi khách hàng.
2- QC2: Thiết kế query cho biết tổng số tiền mua hàng của mỗi khách hàng trong mỗi
tháng của năm 2004. (khai báo thuộc tính Column Heading)
3- QC3: Thiết kế query cho biết tổng số tiền mua hàng của mỗi khách hàng trong mỗi
quý của năm 2004.
4- QC4: Thiết kế query cho biết tổng số tiền mua hàng của mỗi khách hàng trong 6
tháng đầu năm 2004. Đồng thời cho biết tổng số tiền mà mỗi khách hàng phải trả trong
6 tháng đó.
5- QC5: Thiết kế query cho biết tổng số hóa đơn mà mỗi nhân viên đã lập trong mỗi
quý của năm 2004. Đồng thời cho biết tổng số hóa đơn mà nhân viên đó đã lập trong
năm 2004.
6- QC6: Thiết kế query cho biết tổng trị giá thu được trong từng quý trong năm 2004
của mỗi khách hàng. Đồng thời cho biết tổng số tiền thu được và tổng số hóa đơn đã
đặt trong năm.
7- QC7: Thiết kế query thống kê mỗi mặt hàng đã bán trong mỗi tháng của năm 2004.
Gồm các thông tin: (khai báo thuộc tính Colum Heading)

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 97


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
 Số hóa đơn đã lập cho mỗi mặt hàng theo mỗi tháng.
 Tổng số tiền thu được mỗi sản phẩm.
 Tổng số hóa đơn đã lập cho mỗi sản phẩm.

8- QC8: Thiết kế query để lên danh sách tổng kết về từng nhân viên, cho biết các hóa
đơn mà nhân viên đó đã lập trong từng quý của năm 2004. Đồng thời cho biết tổng
tiền của các hóa đơn đó và tổng số hóa đơn mà nhân viên đó đã lập.
9- RQC2: Sử dụng Query QC2 để tạo một Report Wizard và quan sát mẫu Report này.
10- RQC8: Hãy sử dụng Query QC8 để thiết kế Report Wizard.

C- Các câu hỏi Query hành động

1- QM1: Tạo một Table gồm các cột : mã hóa đơn, mã khách hàng, ngày lập đơn,
thành tiền chứa danh sách các hóa đơn trong tháng 4 và 5 năm 2004.
2- QM2: Tạo một Table chứa danh sách các nhân viên nữ với đầy đủ các thông tin cá
nhân.
3- QM3: Tạo một Table chứa danh sách các sản phẩm có đơn vị tính là "kg" với các
Field : mã sản phẩm, tên sản phẩm, đơn giá.
4- QM4: Tạo một Table chứa danh sách các hóa đơn có ngày giao hàng trong quý 3
năm 2004.
5- QD1: Thiết kế Query để xóa các hóa đơn tháng 4 năm 2004 của Table QM1.
6- QD2: Thiết kế Query để xóa các nữ nhân viên trong Table QM2 có tuổi lớn hơn 25.
7- QA1: Thiết kế Query lấy các sản phẩm có đơn vị tính là "viên" từ Table Sanpham để
nối thêm vào Table QM3.
8- QA2: Thiết kế Query lấy thêm các hóa đơn giao hàng trong quý 1 năm 2004 từ Table
Hoadon để nối thêm vào Table QM4.
9- QU1: Thiết kế Query để nâng đơn giá của các sản phẩm có đơn vị tính là "kg" trong
Table Sanpham lên 15%.
10- QU2: Thiết kế Query để nâng đơn giá của các sản phẩm có đơn giá lớn hơn hoặc
bằng 20000 lên 0,5%.

D- Thiết kế các mẫu Form cơ bản

1- Mẫu 1: F_mau1

Yêu cầu:
▬ Các Texbox khai báo các thuộc
tính Name và Default Value (null).
▬ Các Command Button không sử
dụng Control Wizard và khai báo
thuộc tính Name. (bấm Ctrl Enter để xuống dòng khi nhập nhãn cho Command
Button).
▬ Chú ý các thuộc tính của Form.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 98


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
2- Mẫu 2 : F_mau2

Yêu cầu :
▬ Các Group “Level” và “Color” sử dụng
Control Wizard và có khai báo thuộc Name.
▬ Group “Device” được phép chọn tùy ý nên
thiết kế bằng thủ công và chú ý các thuộc
tính Name và Default Value (false) cho mỗi
tùy chọn.
▬ Chú ý các thuộc tính của Form.

3- Mẫu 3 : F_mau3

Yêu cầu :
▬ Nguồn của Form là
Table Sanpham.
▬ Các Command Button
được tạo bằng cách sử
dụng Control Wizard.
▬ Chú ý các thuộc tính của Form.

4- Mẫu 4 : F_mau4

Yêu cầu :
▬ Nguồn của Form là Table
Nhanvien.
▬ Field Phai được thay đổi bằng
Option Group.
▬ Các Command Button sử dụng
Control Wizard với nhãn là các
hình ảnh.
▬ Chú ý các thuộc tính của Form.

5- Mẫu 5 : F_mau5

Yêu cầu :
▬ Combobox “Chọn tên khách hàng” chứa
danh sách tên các khách hàng trong Table
Khachhang. Khai báo thuộc tính Name.
▬ Combobox “Chọn thành phố khách hàng”
chứa danh sách tự tạo gồm 2 cột : tên
thành phố và tên tỉnh tương ứng. Khai
báo thuộc tính Name và Column Widths.
▬ Listbox khai báo danh sách gồm 2 cột
theo mẫu. Sau đó truyền dữ liệu cột thứ hai qua Textbox. Khai báo các thuộc tính
Name và Column Widths.
▬ Chú ý các thuộc tính của Form.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 99


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

6- Mẫu 6 : F_mau6

Yêu cầu :
▬ Form thiết kế gồm các
Command Button sử dụng
Control Wizard.
▬ Nhóm “Quản lý nhập xuất” để
mở các Form : F_mau3 và
F_mau4.
▬ Nhóm “Chức năng khác” để mở
các Form : F_mau1, F_mau5 và F_mau2.
▬ Nhóm “Báo cáo” để mở các Report : RQC2 và RQC8.
▬ Chú ý các thuộc tính của Form.

E- Các mẫu Main-Sub Form

1- Mẫu 1 : FM_mau1

Yêu cầu :
▬ Khi chọn mã khách từ
Combobox “Chọn mã
khách hàng để xem”
sẽ hiện tên khách
trong Textbox. Đồng
thời hiện thông tin về
các hóa đơn mà khách
hàng đã đặt.
▬ Mặt khác, trên Form có
phần thống kê tổng
thành của các hóa đơn.

2- Mẫu 2 : FM_mau2

Yêu cầu :
▬ Khi chọn mã nhân
viên trong Combobox
“Chọn mã nhân viên”
đồng thời với việc
chọn một quý trong
Option Group “Chọn
quý của năm 2004”
sẽ xuất hiện thông
tin về các hóa đơn
mà nhân viên đó đã lập. Đồng thời với việc chọn mã nhân viên sẽ xuất hiện họ tên
nhân viên trong Textbox.
▬ Form có phần thống kê số hóa đơn và tổng số tiền của nhân viên được chọn. (Chú ý :
Khai báo thuộc tính Format cho Textbox “Tổng số tiền”).

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 100


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

3- Mẫu 3 : FM_mau3

Yêu cầu :
▬ Khi chọn một
giá trị năm
trong
Combobox
đồng thời với
việc chọn một
sản phẩm
trong Listbox
sẽ xuất hiện
thông tin về
trí giá trong từng quý của năm được chọn. (Chú ý : Nguồn của Subform là một
Crosstab Query).

4- Mẫu 4 : FM_mau4

Yêu cầu :
▬ Khi chọn mã
nhân viên từ
hộp Combo sẽ
xuất hiện các
thông tin về
hóa đơn mà
nhân viên này
đã lập trong
khung “Các
hóa đơn đã lập”.
▬ Ứng với mỗi Record trong khung “Các hóa đơn đã lập” khi được chọn sẽ xuất hiện hai
thông tin trong 2 Textbox “Chi tiết của hóa đơn” và “Của khách hàng”. Đồng thời,
khung ngay bên dưới 2 Textbox sẽ hiện các thông tin chi tiết về hóa đơn đã lập.
▬ Áp dụng các công thức truyền dữ liệu từ Subform ra Mainform.

5- Mẫu 5 : FM_mau5

Yêu cầu :
▬ Hãy tạo một
Report Wizard có
nguồn gồm các
thông tin : tên
sản phẩm, ngày
lập đơn, ngày
nhận hàng, số
lượng, đơn giá, thành tiền.
▬ Nhập khoảng thời gian lập đơn vào 2 Textbox trên Form đồng thời với việc chọn một
sản phẩm cần xem, khi bấm nút “Đồng ý” sẽ mở ra Report Wiazrd vừa tạo.
▬ Nút “Hủy bỏ” dùng để đóng Form.
▬ Áp dụng công thức truyền dữ liệu từ Mainform vào Query.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 101
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

BÀI THỰC HÀNH 07


(Thực hiện trên CSDL HoaDon.mdb)

A- Thiết kế các mẫu Report

1- Mẫu 1 : R_1

2- Mẫu 2 : R_2

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 102


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

3- Mẫu 3 : R_3

4- Mẫu 4 : R_4

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 103


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

5- Mẫu 5 : R_5

B- Các bài tập về Macro

1- Mẫu 1: F_mau7

Yêu cầu :
▬ Nút “Tất cả” được chọn mặc
định và để hiển thị toàn bộ các
khách hàng đã có.
▬ Chọn một trong các thành phố
để xem danh sách các khách
hàng theo thành phố đó.
▬ Nút “Đóng” dùng để đóng
Form.
2- Mẫu 2 : F_mau8

Yêu cầu :
▬ Nút “Xem tất cả” áp dụng cho Group
bên trái. Các tùy chọn tương ứng để
mở các báo cáo : R_3, R_4, R_5.
▬ Nút “Xem riêng” áp dụng cho Group
bên phải. Khi chọn tùy chọn thì
Combobox tương ứng sẽ bật sáng,
lúc này bấm nút “Xem riêng” sẽ
kiểm tra Combobox rỗng hay không
để mở các Report tương ứng : R_3, R_4, R_5 theo giá trị đã chọn trong Combobox.
▬ Nút “Đóng” dùng để đóng Form.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 104
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

3- Mẫu 3: F_mau9

Yêu cầu :
▬ Khi chọn tùy chọn “Tất cả thành phố”
thì Combobox sẽ mờ đi và lúc này nếu
bấm nút “Xem” sẽ mở Report :
RL_Thiepmoi đã tạo trong phần Access1
(tham khảo mẫu bên dưới).
▬ Khi chọn tùy chọn “Chọn thành phố” thì Combobox sẽ bật sáng và lúc này nếu bấm
nút “Xem” sẽ kiểm tra Combobox có rỗng hay không để mở Report “ RL_Thiepmoi
theo tên thành phố đã chọn trong Combobox.
▬ Nút “Đóng” dùng để đóng Form.
Mẫu Report : RL_Thiepmoi

4- Mẫu 4: F_mau10

Yêu cầu:
▬ Thiểt kế mẫu Form
theo đúng trạng thái
chọn của tùy chọn
khi Form hoạt động.
▬ Tùy chọn 1: Textbox
có nền màu đỏ, chuỗi “Hello!!!Learning Access” màu vàng.
▬ Tùy chọn 2: Textbox có nền màu xanh dương,chuỗi “Welcom to Access !!!” màu trắng.
▬ Tùy chọn 3: Textbox có nền màu vàng, chuỗi “Begin with Access !!!” màu xanh lá.
▬ Tùy chọn 4: Textbox có nền màu xanh lá, chuỗi “End. Goodbye” màu xanh dương.

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 105


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003

5- Mẫu 5: F_mau11

Yêu cầu :
▬ Khi chọn mục "Xem khách hàng
chung" thì Combobox "Chọn mã
khách hàng", Checkbox "In trên
màn hình", Checkbox "In ra giấy"
đồng thời không hiện sáng. Lúc
này, nếu nhấp nút "Xem" sẽ mở
Report : R_5 (Báo cáo hóa đơn theo khách hàng).
▬ Khi chọn mục "Xem khách hàng chi tiết" thì Combobox "Chọn mã khách hàng" sẽ hiện
sáng đồng thời 2 checkbox "In trên màn hình" và "In ra giấy" sẽ không hiện sáng.
Trong trường hợp này, nếu Combobox không được chọn sẽ xuất hiện thông báo yêu
cầu chọn. Ngược lại nếu được chọn và khi nhấp nút "Xem" sẽ hiện Report : R_5 theo
mã khách hàng vừa chọn trong Combobox.
▬ Khi chọn mục "Báo cáo doanh thu theo sản phấm" thì Combobox sẽ không hiện sáng,
đồng thời 2 Checkbox "In trên màn hình" và "In ra giấy" sẽ hiện sáng. Nếu chọn một
trong hai Checkbox sẽ mở Report : R_1 (Báo cáo doanh thu theo sản phẩm) theo đúng
ý nghĩa của tùy chọn. Nếu cả hai không được chọn sẽ hiện thông báo yêu cầu chọn.
Nếu chọn cả hai cũng sẽ xuất hiện Report : R_1 với cả hai ý nghĩa của tùy chọn.

C- Các bài tập về thủ tục xử lý sự kiện

1- Mẫu 1: F_code1

Yêu cầu :
▬ Cho phép nhập độ
dài 3 cạnh của một
tam giác (Có kiểm tra
điều kiện để 3 giá trị
nhập là 3 cạnh của
một tam giác). Sau
đó in ra các kết quả
theo mẫu (Lưu ý :
Kết quả in ra có màu
xanh dương).
▬ Các công thức :
abc
 Diện tích tam giác : S  p(p  a)(p  b)(p  c) với p 
2
abc
 Bán kính đường tròn ngoại tiếp : R 
4S
S
 Bán kính đường tròn nội tiếp : r 
p
(Các hàm cần sử dụng : hàm Sqr(…) để tính căn bậc hai ; Hàm Round(…) để làm tròn ;
Hàm Val(…) để đổi ra giá trị số.)

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 106


TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
2- Mẫu 2: F_code2

Yêu cầu :
▬ Tùy thuộc vào việc chọn lựa tại
Option Group mà ta có bài toán giải
tương ứng.
▬ Sau khi nhập các hệ số cho bài toán,
bấm nút “Kết quả” sẽ có kết quả hiện
trong Textbox.
▬ Lưu ý : Kết quả có màu đỏ và phải xuất hiện các chuỗi mô tả. Ví dụ :
Phuong trinh có :
Nghiem thu nhat la : x1 = 2.53
Nghiem thu hai la : x2 = 5.68
Hoặc: Phuong trinh co nghiem kep : x = 1.25
Hoặc: Phuong trinh vo nghiem !!!

3- Mẫu 3: F_code3
Yêu cầu :
▬ Khi nhập một số có 2 chữ số, bấm Enter, sẽ
hiện chữ trong Textbox thứ hai.
▬ Kiểm tra trường hợp ô số không nhập thì sẽ hiện thông báo.

D- Tạo thực đơn


▬ Thực đơn “Nhập” gồm các lệnh :
 Xuất|Nhập sản phẩm  Mở Form F_mau3 (Access2)
 Xuất|Nhập nhân viên  Mở Form F_mau4 (Access2)
▬ Thực đơn “Thống kê” gồm các lệnh :
 Thống kê hóa theo khách hàng  Mở Form FM_mau1 (Access2)
 Thống kê nhân viên  Mở Form FM_mau2 (Access2)
 Thống kê doanh số sản phẩm  Mở FM_mau3 (Access2)
 Thống kê hóa đơn theo thời gian  FM_mau5 (Access2)
▬ Thực đơn “Báo cáo” gồm các lệnh :
 Báo cáo sản phẩm  Mở Report R_1 (Access3)
 Báo cáo doanh thu khách hàng  Mở Report R_2 (Access3)
▬ Thực đơn “Xử lý” gồm các lệnh :
 Báo cáo  Mở Form F_mau8
 Thiệp mời  Mở Form F_mau9
▬ Thực đơn “Tiện ích” gồm các lệnh :
 Tam giác  Mở Form F_code1
 Giải phương trình  Mở Form F_code2
 Đổi số ra chữ  Mở Form F_code3
▬ Thực đơn “Hệ thống” gồm lệnh :
 Thoát  Mở một Macro với phương thức Quit

*****************CHÚC HỌC VIÊN THÀNH CÔNG*********************

Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 107

You might also like