107
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003 Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 1 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 --

Giao Trinh Dao Tao Access 2003

Embed Size (px)

Citation preview

Page 1: Giao Trinh Dao Tao Access 2003

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

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

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 --

Page 2: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 3: Giao Trinh Dao Tao Access 2003

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

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

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 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 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 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.

Bảng

Dòng

Cột Quan hệ

Page 4: Giao Trinh Dao Tao Access 2003

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

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

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.

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.

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.

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

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ữ.

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

hợp Tên của loại thực thể

Sinh viên Thẻ sinh viên 1-1

Khách hàng

Hoá đơn 1-n

Công Ty Mặt hàng N - N

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

Page 5: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 6: Giao Trinh Dao Tao Access 2003

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

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

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

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

- 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

Page 7: Giao Trinh Dao Tao Access 2003

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

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

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

Page 8: Giao Trinh Dao Tao Access 2003

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

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

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).

Page 9: Giao Trinh Dao Tao Access 2003

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

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

▬ 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 Các dạng thức của dữ liệu > Các ký tự nhập thành chữ in

Format

< Các ký tự nhập thành chữ thường Qui định mặt nạ nhập dữ liệu 0 Bắt buộc nhập các số từ 0 – 9 9 Có thể nhập các số hoặc ký tự trắng L Bắt buộc nhập các chữ cái ? Có thể nhập các chữ cái A Bắt buộc nhập các số và chữ cái & Bắt buộc nhập một ký tự bất kỳ > Các ký tự theo sau đổi thành chữ in

Input Mask

< Các ký tự theo sau đổi thành chữ thường

Ví dụ : Nhập : >LL000 Bắt buộc nhập 2 chữ cái và 3 chư số, trong đó 2 chữ cái thể hiện 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

Page 10: Giao Trinh Dao Tao Access 2003

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

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

Kiểu Number

Thuộc tính Ý nghĩa 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

Field Size

Double Chứa số thực lớn hơn 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

Format

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

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

Format

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

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)

Format

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

Page 11: Giao Trinh Dao Tao Access 2003

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

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

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

Page 12: Giao Trinh Dao Tao Access 2003

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

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

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)

Page 13: Giao Trinh Dao Tao Access 2003

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

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

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

Page 14: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 15: Giao Trinh Dao Tao Access 2003

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

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

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á.

Page 16: Giao Trinh Dao Tao Access 2003

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

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

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

Page 17: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 18: Giao Trinh Dao Tao Access 2003

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

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

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

Hàm Ý nghĩa IIf(<điều kiện>;<giá trị 1>;<giá trị 2>) Kiểm tra điều kiện 1 Ví dụ: IIf(ngaylaphd between #1/1/04# and #30/6/04#;”6 tháng đầu”;”6 tháng cuối”) Month(<ngày>) Trả về giá trị tháng 2 Ví dụ: Month(#15/12/04#) 12 Year(<ngày>) Trả về giá trị năm 3 Ví dụ:

Year(#15/12/04#) 2004 Day(<ngày>) Trả về giá trị ngày 4 Ví dụ:

Day(#15/12/04#) 15 Datepart(“mã ngày tháng năm”;<ngày>) Trả về khoảng phần của ngày 5 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 Val(<ký số>) Trả về giá trị số 6 Ví dụ:

Val(“12345”) số 12345 Round(<số>;<cách làm tròn) Làm tròn số 7

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

Page 19: Giao Trinh Dao Tao Access 2003

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

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

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.

Thanhtien:Dongia*Soluong

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

Page 20: Giao Trinh Dao Tao Access 2003

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

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

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.

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.

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.

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

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

Page 21: Giao Trinh Dao Tao Access 2003

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

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

▬ 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:

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

Page 22: Giao Trinh Dao Tao Access 2003

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

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

▬ 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

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

Page 23: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 24: Giao Trinh Dao Tao Access 2003

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

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

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ả.

Page 25: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 26: Giao Trinh Dao Tao Access 2003

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

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

▬ 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.

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

Sohd:Mahd

Page 27: Giao Trinh Dao Tao Access 2003

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

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

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.

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)

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.

Thanhtien:dongia*soluong

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

Page 28: Giao Trinh Dao Tao Access 2003

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

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

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ả.

Page 29: Giao Trinh Dao Tao Access 2003

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

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

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ả:

Page 30: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 31: Giao Trinh Dao Tao Access 2003

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

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

▬ 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

Page 32: Giao Trinh Dao Tao Access 2003

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

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

▬ 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.

Page 33: Giao Trinh Dao Tao Access 2003

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

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

▬ 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

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

Page 34: Giao Trinh Dao Tao Access 2003

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

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

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).

Page 35: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 36: Giao Trinh Dao Tao Access 2003

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

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

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).

Page 37: Giao Trinh Dao Tao Access 2003

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

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

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.

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.

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)

Page 38: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 39: Giao Trinh Dao Tao Access 2003

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

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

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).

Page 40: Giao Trinh Dao Tao Access 2003

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

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

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:

Page 41: Giao Trinh Dao Tao Access 2003

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

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

(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).

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

Page 42: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 43: Giao Trinh Dao Tao Access 2003

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

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

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 Form. Thường dùng để 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.

Nhấp kép vào đây để mở bảng thuộc tính của Form

Page 44: Giao Trinh Dao Tao Access 2003

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

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

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)

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.

Caption

RecordSelec

DividingLines

NavigationButtons

Page 45: Giao Trinh Dao Tao Access 2003

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

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

▬ 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.

▬ 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.

Thành phần Label Thành phần Textbox

Page 46: Giao Trinh Dao Tao Access 2003

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

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

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

Page 47: Giao Trinh Dao Tao Access 2003

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

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

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

Page 48: Giao Trinh Dao Tao Access 2003

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

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

▬ Đâ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).

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).

Thành phần Label

Option Button Checkbox Toggle Button Thành phần Option Group

Page 49: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 50: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 51: Giao Trinh Dao Tao Access 2003

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

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

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

Loại hành động cho phép nhảy con trỏ tới một Record nào đó.

Find Record : Tìm kiếm Record Find Next : Tìm tiếp 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 Loại hành động xử lý mẫu tin.

Add New Record : Thêm một Record mới 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 Loại hành động xử lý Form.

Apply Form Filter : Thực hiện lọc các Record Close Form : Đóng Form hiện hành Open Form : Mở một Form khác

Report Operations Loại hành động xử lý báo cáo.

Preview Report : In báo cáo ra màn hình Print Report : In báo cáo ra máy in

Application Các hành động liên quan đến ứng dụng.

Quit Application : Thoát khỏi ứng dụng Run Application : Thi hành một ứng dụng khác

Miscellaneous Các hành động khác.

Print Table : In một Table Run Macro : Thi hành một Macro Run Query : Thi hành một Query

Page 52: Giao Trinh Dao Tao Access 2003

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

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

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.

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

Combobox

Listbox

Page 53: Giao Trinh Dao Tao Access 2003

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

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

▬ 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) NextXuấ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.

Page 54: Giao Trinh Dao Tao Access 2003

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

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

▬ 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.

Page 55: Giao Trinh Dao Tao Access 2003

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

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

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ỳ

Page 56: Giao Trinh Dao Tao Access 2003

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

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

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 khách hàng tại đây

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

Chọn mã nhân viên

Chọn quý

Page 57: Giao Trinh Dao Tao Access 2003

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

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

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.

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

Page 58: Giao Trinh Dao Tao Access 2003

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

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

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)

Page 59: Giao Trinh Dao Tao Access 2003

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

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

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

Page 60: Giao Trinh Dao Tao Access 2003

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

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

▬ 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).

Page 61: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 62: Giao Trinh Dao Tao Access 2003

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

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

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:

Page 63: Giao Trinh Dao Tao Access 2003

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

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

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

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

Page 64: Giao Trinh Dao Tao Access 2003

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

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

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

Page 65: Giao Trinh Dao Tao Access 2003

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

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

▬ 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ẻ MacroNew 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

Page 66: Giao Trinh Dao Tao Access 2003

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

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

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

hiển thị khi xử lý dữ liệu. Filter Name: Tên của Query dùng để 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 khiển trên Form.

Control Name: Tên của đối tượng chuyển tới.

GotoRecord Cho phép di chuyển con trỏ Record trong Table|Query hoặc Form.

Object Type: Kiểu đối tượng trong Table|Query 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 đến người dùng.

Message: Nội dung của thông báo cần 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.

Page 67: Giao Trinh Dao Tao Access 2003

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

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

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 menu của Access.

Command : Lệnh trên menu.

ShowAllRecords Hiển thị tất cả các Record trong Table|Query|Form.

(không có đối số)

SetValue Gán giá trị cho một Field, điều khiển hoặc thuộc tính.

Item : Tên của Field, điều khiển hoặc 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

Page 68: Giao Trinh Dao Tao Access 2003

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

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

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.

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

Page 69: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 70: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 71: Giao Trinh Dao Tao Access 2003

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

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

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

Page 72: Giao Trinh Dao Tao Access 2003

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

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

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

Page 73: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 74: Giao Trinh Dao Tao Access 2003

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

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

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

Page 75: Giao Trinh Dao Tao Access 2003

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

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

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:

Page 76: Giao Trinh Dao Tao Access 2003

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

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

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, …

Page 77: Giao Trinh Dao Tao Access 2003

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

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

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.

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

Page 78: Giao Trinh Dao Tao Access 2003

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

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

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

Page 79: Giao Trinh Dao Tao Access 2003

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

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

▬ 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.

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

Page 80: Giao Trinh Dao Tao Access 2003

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

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

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:

Page 81: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 82: Giao Trinh Dao Tao Access 2003

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

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

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:

Page 83: Giao Trinh Dao Tao Access 2003

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

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

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:

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.

Anh

Page 84: Giao Trinh Dao Tao Access 2003

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

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

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

Page 85: Giao Trinh Dao Tao Access 2003

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

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

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)

Page 86: Giao Trinh Dao Tao Access 2003

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

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

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

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â

Maõ SV

Hoï sinh vieân

Teân sv Phaùi Ngaøy sinh

Nôi sinh Ñòa chæ Quaän Maõ khoa

Hoïc 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õ sinh vieân Maõ moân hoïc Ñieåm A01 01 4.0 A01 02 2.0 A01 03 10.0 A02 01 10.0 A02 02 2.0 A02 03 8.0 A03 04 5.0 A03 01 4.0 A04 03 8.0 A05 01 8.0 A05 02 5.0 B01 04 7.0 B01 03 3.0 B02 01 10.0 B02 02 3.0 B03 02 8.0

Maõ khoa Teân khoa AV ANH VAÊN TH TIN HOÏC TR TRIEÁT HOÏC VL VAÄT LYÙ

Maõ moân hoïc Teân moân hoïc 01 CÔ SÔÛ DÖÕ LIEÄU 02 TRÍ TUEÄ NHAÂN TAÏO 03 TRUYEÀN TIN 04 ÑOÀ HOÏA 05 VAÊN PHAÏM 06 ÑAØM THOAÏI 07 VAÄT LYÙ GNUYEÂN 08 VAÄT LYÙ ÑÒA CAÀU 09 TRIEÁT HOÏC ÑOÂNG

Page 87: Giao Trinh Dao Tao Access 2003

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

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

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”

Page 88: Giao Trinh Dao Tao Access 2003

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

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

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

Page 89: Giao Trinh Dao Tao Access 2003

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

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

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

Page 90: Giao Trinh Dao Tao Access 2003

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

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

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

Page 91: Giao Trinh Dao Tao Access 2003

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

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

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á.

Page 92: Giao Trinh Dao Tao Access 2003

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

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

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 :

Page 93: Giao Trinh Dao Tao Access 2003

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

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

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

Page 94: Giao Trinh Dao Tao Access 2003

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

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

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)

Page 95: Giao Trinh Dao Tao Access 2003

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

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

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

Mẫu 1: R_mau1

Mẫu 2: R_mau2

Page 96: Giao Trinh Dao Tao Access 2003

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

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

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á.

Page 97: Giao Trinh Dao Tao Access 2003

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

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

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)

Page 98: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 99: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 100: Giao Trinh Dao Tao Access 2003

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

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

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”).

Page 101: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 102: Giao Trinh Dao Tao Access 2003

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

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

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

Page 103: Giao Trinh Dao Tao Access 2003

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

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

3- Mẫu 3 : R_3

4- Mẫu 4 : R_4

Page 104: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 105: Giao Trinh Dao Tao Access 2003

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

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

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.

Page 106: Giao Trinh Dao Tao Access 2003

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

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

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 :

Diện tích tam giác : S p(p a)(p b)(p c) với a b c

p2

Bán kính đường tròn ngoại tiếp : abc

R4S

Bán kính đường tròn nội tiếp : S

rp

(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ố.)

Page 107: Giao Trinh Dao Tao Access 2003

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

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

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*********************