Professional Documents
Culture Documents
GIÁO TRÌNH
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.
Khóa ngoại (Foreign Key): là một hay nhiều trường trong một bảng mà các
trường này lá khoá chính của một bảng khác, do đó dòng dữ liệu tại các cột
này bắt buộc phải tồn tại trong một bảng khác (tính tồn tại của dữ liệu)
Ví dụ: Để lưu trữ và quản lý thông tin của các học viên ta cần tổ chức các bảng đơn
giản sau:
Bảng MÔN HỌC: lưu trữ thông tin về các môn học
Tên môn học Mã môn học
Bảng Phân tích Thiết kế 01
Cơ sở dữ liệu 02
Visual Basic 03
Bảng SINH VIÊN: dùng để lưu trữ thông tin của các sinh viên.
Mã số Họ và tên Ngày sinh Thông tin khác
Dòng
A01 Võ Thị Ngọc Mai 27/07/1980 …………..
A02 Nguyễn Mai Phương 22/11/1981 …………..
Bảng KẾT QUẢ THI: lưu trữ điểm thi từng môn cho các sinh viên
Mã số Điểm Mã môn học
Quan hệ
Cột A01 5.0 01
A01 6.5 03
A02 9.0 01
A02 8.5 02
Trong đó:
Bảng MÔNHỌC có cột mã môn học là khoá chính, thông thường trong môn hình
quan hệ ta có thể viết bảng như sau:
MÔNHỌC (Mã môn học, Tên môn học)
(Các Field được gạch chân trong bảng là khoá chính của bảng, để thể hiện phụ
thuộc hàm trong bảng MÔNHỌC ta có thể viết: Mã môn học Tên môn học)
Trong bảng SINHVIÊN có cột mã số làm khoá chính và có thể viết thành:
SINHVIÊN (Mã số, Họ và tên, Ngày sinh, Địa chỉ ………)
(Để biểu diễn phụ thuộc hàm: Mã số Họ và tên, Ngày sinh, Địa chỉ)
Trong bảng KẾTQUẢTHI có 2 cột mã số và mã môn học là khóa ngoại. Trong
bảng này ở cột Mã số chỉ cho phép chứa các Mã sinh viên có trong bảng
SINHVIÊN và tương tự ở cột Mã môn học chỉ tồn tại các môn học có trong bảng
MÔNHỌC. Điều này thị hiểu nhiên vì chúng ta chỉ lưu trữ điểm thi của các sinh
viên có trong bảng SINHVIÊN.
KẾTQUẢTHI ( #Mã số, #Mã môn học, Điểm)
4) Các mối kết hợp (Relationship):
Mối kết hợp là sự liên kết hay ghép nối giữa 2 hay nhiều thực thể phản ánh chính
xác thực tế quản lý, để diễn đạt mối liên hệ giữa các thực thể ta sử dụng khái niệm mối
kết hợp. Mối kết hợp là sự diễn đạt về những liên kết nếu có giữa các loại thực thể khác
nhau và là phần tử trong mô hình tương ứng với một mối quan hệ giữa các thực thể
tham gia vào quan hệ đó. Mối kêt hợp được định danh bằng tên, thường là động từ hay
tính từ mang ý nghĩa về mối quan hệ giữa các lớp đối tượng liên quan trong tổ chức.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 3
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
Tên của
Tên của loại thực thể mối kết Tên của loại thực thể
hợp
Bản số của mối kết hợp Bản số của một thực thể đối với một mối kết hợp là cặp
(Bản số tối thiểu, Bản số tối đa). Trong đó chúng được định nghĩa như sau:
Bản số tối thiểu: Bằng 0 hoặc 1, là số lần tối thiểu mà một thể hiện bất kỳ
của một thực thể tham gia vào các thể hiện của mối kết hợp
Bản số tối đa: Bằng 1 hoặc n, là số lần tối đa mà một thể hiện bất kỳ của
một thực thể tham gia vào các thể hiện của mối kết hợp
Bản số phải được thể hiện ở cả hai nhánh mối kết hợp. Bản số được ký hiệu
dạng (x,y), với bất kỳ vị trí tương đối nào của thực thể đối với mối kết hợp
thì chỉ số bên trái (hay x) là bản số tối thiểu, chỉ số bên phải (hay y) là bản
số tối đa
Phân loại các mối kết hợp:
Kết hợp 1-1: thực thể A và thực thể B có mối kết hợp là 1-1 nếu một thực thể kiểu
A tương ứng với một thực thể kiểu B và ngược lại.
1-1
Sinh viên Thẻ sinh viên
Ghi chú: Trong CSDL khi 2 thực thể có mối kết hợp 1-1 sẽ được đồng nhất.
Kết hợp 1- n: thực thể A và thực thể B có mối kết hợp là 1-n nếu một thực thể
kiểu A tương ứng với nhiều thực thể kiểu B còn một thực thể kiểu B chỉ tương ứng
với 1 thực thể kiểu A.
1-n
Khách Hoá đơn
hàng
Kết hợp n-n: thực thể A và thực thể B có mối kết hợp là n-n nếu một thực thể kiểu
A tương ứng với nhiều thực thể kiểu B và ngược lại.
N-N
Công Ty Mặt hàng
Ghi chú: Trong CSDL khi 2 thực thể có mối kết hợp n-n sẽ được thực thể hoá thành
BÀI 02:
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.
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).
Kiểu Ý nghĩa
Text Chứa dữ liệu chuỗi (<=255 ký tự)
Memo Chứa dữ liệu văn bản (<=64000 ký tự)
Number Chứa dữ liệu số
Date/Time Chứa dữ liệu ngày/tháng - giờ/phút
Currency Chứa dữ liệu tiền tệ (dạng số có ký hiệu $)
AutoNumber Chứa dữ liệu số tuần tự
Yes/No Chứa dữ liệu luận lý (đúng|sai)
OLE Object Chứa dữ liệu nhúng (hình ảnh, đồ thị, …)
Hyperlink Chứa các địa chỉ liên kết trên mạng
b. Các thuộc tính theo kiểu
Kiểu Text
Thuộc tính Ý nghĩa
Field Size Số ký tự tối đa được phép nhập
Format Các dạng thức của dữ liệu
> Các ký tự nhập thành chữ in
< Các ký tự nhập thành chữ thường
Input Mask Qui định mặt nạ nhập dữ liệu
0 Bắt buộc nhập các số từ 0 – 9 Ví dụ :
9 Có thể nhập các số hoặc ký tự trắng Nhập : >LL000
L Bắt buộc nhập các chữ cái Bắt buộc
? Có thể nhập các chữ cái nhập 2 chữ cái
A Bắt buộc nhập các số và chữ cái và 3 chư số,
& Bắt buộc nhập một ký tự bất kỳ trong đó 2 chữ
> Các ký tự theo sau đổi thành chữ in cái thể hiện
< Các ký tự theo sau đổi thành chữ thường bằng ký tự in.
Caption Tên field khi chuyển sang Datasheet View
Default Value Giá trị mặc nhiên khi nhập liệu
Validation Rule Biểu thức giới hạn giá trị nhập (RBTV cho field)
Validation Text Thông báo nhập sai giới hạn (sai RBTV)
Required Chỉ rõ dữ liệu nhập có bắt buộc hay không
Allow Zero Length Cho phép nhập chuỗi rỗng hay không
Indexes Lập chỉ mục và có được phép trùng lắp hay không
Kiểu Number
Thuộc tính Ý nghĩa
Field Size Qui định phạm vi chứa số
Byte Chứa số nguyên từ 0 255
Integer Chứa số nguyên từ -32768 32767
Long Integer Chứa số nguyên từ -2147483648 2147483647
Single Chứa số thực
Double Chứa số thực lớn hơn
Format Qui định dạng hiển thị dữ liệu
General Number Dạng tổng quát như khi nhập
Currency Dạng có ký hiệu tiền tệ
Fixed Dạng có số số lẻ cố định
Standard Dạng có dấu phân cách hàng ngàn
Percent Dạng tính phần trăm
Decimal Place Số số lẻ cố định
Caption Tên field khi chuyển sang Datasheet View
Default Value Giá trị mặc nhiên khi nhập liệu
Validation Rule Biểu thức giới hạn giá trị nhập vào (RBTV)
Validation Text Thông báo nhập sai giới hạn (sai RBTV)
Required Chỉ rõ dữ liệu nhập vào có bắt buộc hay không
Indexes Lập chỉ và có được phép trùng lắp dữ liệu hay không
Kiểu Date/Time
Thuộc tính Ý nghĩa
Format Qui định dạng hiển thị dữ liệu
General Date Dạng tổng quát như khi nhập
Long Date Monday, September 27, 2004
Medium Date 27 – September – 04
Short Date 27/09/04
Input Mask Giống Text
Caption Chỉ định tên field khi chuyển sang Datasheet View
Default Value Giá trị mặc nhiên khi nhập liệu
Validation Rule Biểu thức giới hạn giá trị nhập vào (RBTV)
Validation Text Thông báo nhập sai giới hạn (sai RBTV)
Required Chỉ rõ dữ liệu nhập vào có bắt buộc hay không
Indexes Lập chỉ và có được phép trùng lắp dữ liệu hay không
Kiểu Yes/No
Thuộc tính Ý nghĩa
Format Qui định dạng hiển thị dữ liệu
Yes/No Yes hoặc No (0 hoặc -1)
Ture/False True hoặc False (0 hoặc -1)
On/Off On hoặc Off (0 hoặc -1)
Caption Tên field khi chuyển sang Datasheet View
Default Value Giá trị mặc nhiên khi nhập liệu
Validation Rule Biểu thức giới hạn giá trị nhập vào (RBTV)
Validation Text Thông báo nhập sai giới hạn (sai RBTV)
Required Chỉ rõ dữ liệu nhập vào có bắt buộc hay không
Indexes Lập chỉ mục và có được phép trùng lắp dữ liệu hay không
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 10
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
b. Tạo quan hệ
▬ Menu Tools Relationship
▬ Chọn các Table tham gia tạo quan
hệ từ cửa sổ Show Table (Manu
Relationship Show Table để mở
cửa sổ Show Table).
▬ Giữa hai Table có quan hệ, kéo
Field quan hệ đặt chồng lên nhau.
▬ Đánh dấu vào ba tùy chọn trong
hộp Edit Ralationship:
Enforce Referential Integrity: Dùng để ràng
buộc giá trị nhập trên Field khóa ngoại phải
phụ thuộc tồn tại vào giá trị trong Field
khóa chính.
Cascade Update Related Fields: Nếu muốn
khi sửa giá trị trên Field khóa chính thì giá
trị trên Field khóa ngoại cũng thay đổi theo.
Cascade Delete Ralated Fields: Nếu muốn
khi xóa giá trị trên Field khóa chính thì giá
trị trên Field khóa ngoại cũng xóa theo.
c. Hiệu chỉnh dây quan hệ
▬ Xóa dây quan hệ: nhấp phải vào dây quan hệ Chọn Delete
▬ Hiệu chỉnh thông số cho dây quan hệ: nhấp phải vào dây quan hệChọn Edit
Relationship
▬ Xóa bảng ra khỏi của sổ Relationship: nhấp chọn bảng Bấm Delete
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 11
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
2.4- Nhập dữ liệu vào Table
▬ Nhập dữ liệu vào table trong chế độ Datasheet.
▬ Thông thường là dữ liệu nhập theo hàng.
▬ Giá trị nhập vào Field quan hệ bên “một” có thể không có bên “nhiều”. Ngược lại,
một giá trị nhập vào Field quan hệ bên “nhiều” bắt buộc phải tồn tại bên “một”.
▬ Chỉ có thể nhập Record mới ở cuối Table, không thể chèn một Record mới vào
giữa Table.
▬ Có thể sử dụng các lệnh sau trong quá trình nhập liệu:
Menu Format Font: Chọn phông chữ khi nhập liệu.
Menu Record Sort Sort Ascending/Sort Descending: Sắp xếp dữ liệu khi
nhập.
Menu Edit Delete Record: Xóa Record.
a. Đối với các Field là khóa ngoại hoặc lồng khóa (bên nhiều), ta có thể tham
chiếu dữ liệu từ Field của bên “một” để thuận lợi trong việc nhập liệu (tránh
nhập dữ liệu chưa tồn tại bên “một”). Theo các bước sau:
Tại cửa sổ “Design Table” Đặt con trỏ tại dòng Field cần tham chiếu
Field Properties Thẻ Lookup
Display Control Combo Box
Nhấp vào nút ba chấm trong mục Row Source
Chọn Table chứa Field bên “một” chứa dữ liệu tham chiếu và kéo Field
xuống dòng Field
Đóng cửa sổ hiện hành Yes
b. Có thể tự tạo một danh sách các giá trị chọn lựa cho Field khi nhập liệu. Ví dụ:
Field Donvitinh có thể tạo các giá trị nhập: m, kg, lít, hộp, chai, …
Tại cửa sổ “Design Table” Đặt con trỏ trong Field cần tạo.
Field Properties Thẻ Lookup
Display Control Combo Box
Mục Row Source Type Value List
Nhập danh sách cần tạo trong mục Row Source
c. Nhập hình vào Field Hinh:
Đặt con trỏ tại ô cần chèn
Menu Insert Objects
Chọn cách chèn hình:
Create New: Chèn hình từ thư
viện chứa hình. Ví dụ như :
Corel, Paint, Word Picture, …
Create From File: Chèn hình từ
File hình (bấm nút Browse để mở hộp thoại chọn File hình)
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.
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.
BÀI 03:
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.
1. Thiết kế Query:
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á.
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”.
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.
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.
Cú pháp
<Field> is Null <Field> Is not Null
Hàm Ý nghĩa
1 IIf(<điều kiện>;<giá trị 1>;<giá trị 2>) Kiểm tra điều kiện
Ví dụ:
IIf(ngaylaphd between #1/1/04# and #30/6/04#;”6 tháng đầu”;”6 tháng cuối”)
2 Month(<ngày>) Trả về giá trị tháng
Ví dụ:
Month(#15/12/04#) 12
3 Year(<ngày>) Trả về giá trị năm
Ví dụ:
Year(#15/12/04#) 2004
4 Day(<ngày>) Trả về giá trị ngày
Ví dụ:
Day(#15/12/04#) 15
5 Datepart(“mã ngày tháng năm”;<ngày>) Trả về khoảng phần của ngày
Ví dụ:
Datepart(“m”;ngaylaphd) Trả về các giá trị tháng trong ngày lập đơn (1 – 12)
Datepart(“q”;ngaylaphd) Trả về các giá trị quý trong ngày lập đơn (1 – 4)
Datepart(“yyyy”;ngaylaphd) Trả về các giá trị năm trong ngày lập đơn
6 Val(<ký số>) Trả về giá trị số
Ví dụ:
Val(“12345”) số 12345
7 Round(<số>;<cách làm tròn) Làm tròn số
Ví dụ: Round(123.45;1) 123.5
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
Thanhtien:Dongia*Soluong
Ví dụ 2: Cho biết Mã nhân viên, họ tên nhân viên, mã hóa đơn, thành tiền
▬ Đặ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.
▬ Đặ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.
▬ Đặ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.
▬ Ẩ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.
▬ 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.
▬ 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:
▬ 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.
▬ 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ỉ.
▬ Bước 5: Tại dòng Total Chọn các tiêu chuẩn lập tổng nhóm (tiêu chuẩn mặc
nhiên được chọn là Group by).
▬ Bước 6: Kiểm tra kết quả Query: Menu View Datasheet View
▬ Bước 7: Lưu Query
Một số lưu ý khi tạo Total Query:
Có thể thực hiện việc tính tổng cộng trên tất cả các Record của một hoặc nhiều
Table bằng cách khi thiết kế Query không chọn tiêu chuẩn Group by trong các
cột có mặt trong lưới QBE.
Ở chế độ Datasheet, Access cho hiển thị những tiêu đề phản ánh các kết quả
đã thực hiện. Chẳng hạn, AvgOfThanhtien, SumOfThanhtien, MaxOfDongia, ….
Nếu muốn, ta có thể đổi tên các tiêu đề này cho phù hợp. Nhưng Field mới tạo
sẽ không được phép tham gia trong biểu thức tạo Field mới của cột đứng sau.
Có thể truyền tham số từ bàn phím vào Total Query.
Field được chọn tiêu chuẩn Where sẽ không được đánh dấu chọn ở dòng Show.
3. Một số các ví dụ
Ví dụ 1: Cho biết số hóa đơn mà mỗi khách hàng đã đặt. Gồm: Mã khách hàng, tên
khách hàng, số hóa đơn.
Sohd:Mahd
Ví dụ 2: Cho biết tổng số tiền mà mỗi khách hàng đã trả cho tất cả các đơn đặt
hàng. Gồm: Mã khách hàng, tên khách hàng, tổng thành tiền.
Thanhtien:dongia*soluong
Ví dụ 3: Muốn biết thông tin tổng hợp về khách hàng. Gồm: Mã khách hàng, tên
khách hàng, số hóa đơn, tổng thành tiền của các hóa đơn. (Tạo một Select Query
với sự tham gia của hai Total Query vừa tạo ở trên)
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.
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.
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.
▬ 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.
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:
▬ 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.
b. Ý nghĩa
▬ Thiết kế các báo cáo kết xuất những số liệu phát sinh tính từ một thời điểm nào
đó hoặc tính đến một thời điểm nào đó. Ví dụ, muốn thiết kế một bảng báo cáo
trình bày doanh số bán hàng trong 2 tháng cuối năm 2004. Thiết kế một Make
Table Query tạo ra một Table mới với những Record được trích từ các Record
hóa đơn bán trong 2 tháng cuối năm 2004 và sau đó dựa vào Table mới này để
thiết kế báo cáo.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 30
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
▬ Tạo ra bản sao phòng hờ cho một Table có tầm quan trọng đặc biệt.
▬ Làm tăng tính hiệu quả của Form và Report khi chúng cần những dữ liệu nguồn
từ nhiều Table. Việc tạo ra Make Table Query từ nhiều Table sau đó dùng nó
làm nguồn dữ liệu cho Form hoặc Report sẽ làm cho tốc độ khai thác dữ liệu
tăng lên đáng kể.
▬ Thế nhưng Make Table Query hoàn toàn bị động và chỉ được ghi nhận tại thời
điểm chạy Query.
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 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 đó.
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 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
*********************************************************
BÀI 04:
▬ 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
▬ 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
▬ 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.
▬ Chuyển qua chế độ Design View để chỉnh sửa. Dùng mouse chọn từng đối tượng
để có thể chỉnh sửa bằng các thao tác như các đối tượng Drawing của Word.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 37
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
BÀI 05:
REPORT WIZARD TRONG MICROSOFT ACCESS
I. Tổng quan
▬ Là đối tượng dùng để kết xuất dữ liệu trên Table|Query và có tác dụng rất mạnh
về mặt in ấn. Do đó, cần phải chú ý về mặt mỹ thuật khi thiết kế.
▬ Ngoài ra, để có thể thiết kế được Report ta cần phải chú ý rằng máy tính phải
được khai báo kết nối với một máy in.
▬ Chế độ thiết kế : Menu View Design View
▬ Chế độ xem trên màn hình : Menu View Print Preview
▬ 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”
Ví dụ 2: Mẫu Report được lập nhóm theo tên khách hàng và mã hóa đơn.
▬ 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:
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
▬ 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.
BÀI 06:
1- Giới thiệu
3- Cửa sổ Design
▬ Form Header/Footer : Các điều khiển thiết kế trong vùng này sẽ xuất hiện một lần
ở đầu hoặc cuối của
Nhấp kép vào đây để mở bảng Form. Thường dùng để
thuộc tính của Form tạo các nhãn cho Form.
(Lệnh : Menu View
Form Header/Footer)
▬ Page Header/Footer:
Các điều khiển thiết kế
trong vùng này sẽ xuất
hiện một lần ở đầu hoặc
cuối trang in. (Lệnh:
Menu View Page
Header/Footer)
▬ Detail: Chứa các điều
khiển chính của Form.
Caption
DividingLine
s
RecordSelec
NavigationButtons
▬ 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.
▬ 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.
1- Textbox
▬ 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.
▬ Name: Tên của Textbox, được dùng để trao đổi dữ liệu trong các câu lệnh (nên
đặt bắt đầu bằng 3 ký tự là txt…).
▬ Control Source: Tên Field làm nguồn hoặc công thức tạo ra giá trị trong Textbox.
▬ Format: Các định dạng cho dữ liệu trong Textbox.
▬ Default Value: Giá trị mặc nhiên khi mở Form.
▬ Visible: Xuất hiện hoặc không ở chế độ Form View (yes|no).
▬ Enabled: Hiện sáng hoặc mờ ở chế độ Form View (yes|no).
▬ Width: Chiều rộng của Textbox (inches).
▬ Height: Chiều cao của Textbox (inches).
▬ Back Color: Màu nền của Textbox.
▬ Fore Color: Màu chữ của Textbox.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 45
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
▬ 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.
▬ 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).
▬ 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, …
▬
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 47
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
▬ Đây là tập hợp 4 điều khiển tạo nên các nhóm tùy chọn trên Form. Trong đó,
Option Group là điều khiển khung nhóm tùy chọn có chức năng quản lý các tùy
chọn trong nhóm. Còn 3 điều khiển còn lại là các hình thức tùy chọn trong nhóm.
▬ Có 2 dạng tùy chọn:
Dạng 1: Chỉ được chọn 1 trong số các tùy chọn trong nhóm.
Dạng 2: Có thể chọn hoặc không chọn hoặc chọn nhiều tùy chọn trong
nhóm. Trên thực tế, đây là dạng nhóm tùy chọn mà trong đó các tùy chọn
được thiết kế rời sau đó bao chúng lại bằng điều khiển Option Group.
▬ Nhóm tùy chọn có thể được sử dụng cho các Field kiểu Yes/No với 2 tùy chọn ứng
với 2 trường hợp của Field (trường hợp Form có nguồn). Hoặc có thể thiết kế chọn
lựa các giá trị để xử lý trên các Form giao diện (trường hợp Form không nguồn).
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.
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 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.
Chú ý: Sau khi tạo xong nên khai báo thêm thuộc tính Name cho khung nhóm.
b. Không sử dụng Wizard
▬ Sử dụng cách này để thiết kế nhóm tùy chọn dạng 2. Các bước như sau:
Bước 1: Tạo các tùy chọn trước. Khi báo các thuộc tính cho mỗi tùy chọn,
nên khai báo thuộc tính Name và Default Value.
Bước 2: Tạo khung bao quanh các tùy chọn.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 49
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
Ví dụ 1: Mẫu Form có nguồn là Table Nhanvien chứa nhóm tùy chọn cho Field Phai.
5- Command Button
▬ 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.
▬ Name: Tên của nút lệnh dùng trong các câu lệnh.
▬ Caption: Nhãn của nút lệnh.
▬ Picture: Hình ảnh thay thế cho nhãn.
▬ Visible: Xuất hiện hoặc không ở chế độ Form View.
▬ Enabled: Hiện sáng hoặc mờ ở chế độ Form View.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 50
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
6- Combobox và Listbox
▬ Loại điều khiển chứa danh sách chọn lựa. Có hai loại danh sách chọn lựa:
Combobox: Loại này không chiếm diện tích trên Form nhưng phải nhấp
mouse để nhìn thấy danh sách.
Listbox: Loại này chiếm diện tích trên Form nhưng danh sách chọn lựa trực
quan hơn.
▬ Có thể tạo điều khiển này bằng Wizard hoặc bằng thủ công.
Combobox
Listbox
▬ 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.
a. Combobox chứa danh sách là dữ liệu trong các Field của Table|Query
Lưu ý: Nên khai báo thuộc tính Name cho điều khiển sau khi đã tạo xong.
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)
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ỳ
▬ 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 quý
▬ 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ổ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:
Truyền từ Subform:
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.
***************************************************************
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ị
▬ 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)
▬ 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
▬ Việc chỉ định phạm vi dữ liệu để lập nhóm có liên quan đế hai thuộc tính Group
On và Group Interval trong hộp thoại “Sorting and Grouping”. Hãy quan sát bảng
sau:
Field có dữ liệu kiểu Text
Group on Group interval Ý nghĩa
Each value 1 Nhóm các Record có giá trị bằng nhau.
Prefix character n Nhóm các Record có n ký tự bên trái bằng nhau.
Field có dữ liệu kiểu Date/Time
Group on Group interval Ý nghĩa
Each value 1 Nhóm các Record có giá trị bằng nhau.
Year Khai báo khoảng giá trị. Nhóm các Record có giá trị theo năm.
Qtr Khai báo khoảng giá trị. Nhóm các Record có giá trị theo quý.
… … …
Field có dữ liệu kiểu Number
Group on Group interval Ý nghĩa
Each value 1 Nhóm các Record có giá trị bằng nhau.
Interval Khai báo khoảng giá trị. Nhóm các Record theo khoảng giá trị đã khai báo.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 61
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
▬ 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:
*****************************************************************
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 63
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
BÀI 08:
THIẾT KẾ MACRO TRONG MICROSOFT ACCESS
I- Tổng quan
▬ Macro là đối tượng bao gồm một hoặc nhiều hành động, mỗi hành động dùng để
thực hiện một công việc nào đó. Những hành động này đã được cài sẵn trong
Access dưới dạng một danh sách nhằm tự động hóa quá trình xử lý công việc.
▬ Một Macro sau khi tạo sẽ được gán vào một sự kiện trên đối tượng và khi sự kiện
xảy ra thì Macro sẽ thực thi. Các sự kiện của đối tượng nằm trong thẻ Event của
hộp Properties.
Ví dụ: Một Macro được gán vào sự kiện OnClick của một nút lệnh thì khi nhấp mouse
vào nút lệnh thì Macro sẽ thi hành.
▬ Các công việc có thể sử dụng Macro:
Liên kết công việc giữa Form và Report.
Tìm kiếm hoặc lọc ra những thông tin cần tham khảo một cách tự động.
Cài đặt các thuộc tính cho Form, Report hoặc các điều khiển. Cũng như cài
đặt một giá trị của điều khiển trong Form vào kết quả của phép tính toán
hoặc vào giá trị của một bảng dữ liệu khác.
Tự động hóa việc nhập|xuất dữ liệu vào các Table.
Tạo ra một môi trường làm việc theo ý riêng. Chẳng hạn như điều chỉnh
thanh thực đơn cho Form, nhóm các Query…
▬ 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
▬ 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.
Yêu cầu:
▬ Thiết kế Form “Tìm khách hàng” sao cho khi nhập tên khách hàng hoặc tên đại
diện cho khách hàng trong Textbox, sau đó nhấp nút “Tìm” sẽ mở Form “Thông
tin khách hàng” để biết được các thông tin về khách đó.
Thiết kế:
▬ Tạo một Macro gán vào sự kiện OnClick của nút “Tìm” với hành động OpenForm
để mở Form “Thông tin khách hàng” theo điều kiện nhận được từ Textbox của
Form “Tìm khách hàng”.
Action Argument
OpenForm Form Name : “ F_Thongtinkhachhang
View : Form
Where Conditon :
Tenkh=Forms!F_Timkhachhang!txtTenkh
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 65
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
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.
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
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.
****************************************
BÀI 09:
Nhận xét:
▬ Một thủ tục luôn bắt đầu và kết thúc bằng 2 dòng:
Private Sub <tên đối tượng>_<sự kiện>([các tham số])
… <thân thủ tục>
End Sub
▬ Các dòng còn lại nằm giữa hai dòng trên chính là các lệnh trong thủ tục. Về
nguyên tắc, mỗi lệnh phải nằm trên một dòng độc lập.
▬ Một thủ tục có thể có [các tham số] tùy theo và nó được dùng để chứa các thông
tin trao đổi giữa hệ thống và người viết.
▬ Như vậy ta có thể tự viết ra các dòng lệnh hoặc sửa đổi các thủ tục Wizard như
trên để xử lý các sự kiện theo đúng như cầu của riêng mình.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 69
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
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
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
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.
1- Tổng quan
▬ Đây là cấu trúc thông dụng trong khi viết lệnh, nó được dùng để thực hiện các
lệnh tùy theo các điều kiện.
2- Các dạng If
2.1- Dạng 1
If <điều kiện> Then <lệnh>
Kiểm tra <điều kiện> và thực hiện 1 lệnh tương ứng nếu <điều kiện> xảy ra
(true). Nếu <điều kiện> không xảy ra (false) thủ tục sẽ bỏ qua dòng lệnh này.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 73
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
2.2- Dạng 2
If <điều kiện> Then
<nhóm lệnh>
End if
Giống dạng 1 nhưng thực hiện nhiều lệnh trong thân If.
2.3- Dạng 3
If <điều kiện 1> Then
<nhóm lệnh 1>
ElseIf <điều kiện 2> Then
<nhóm lệnh 2>
……
Else
<nhóm lệnh n>
End If
Kiểm tra nhiều <điều kiện …> và thực hiện các <nhóm lệnh …> tương ứng nếu
<điều kiện …> xảy ra. Ngược lại, thực hiện <nhóm lệnh n>.
3- Ví dụ
Xét mẫu Form sau:
Yêu cầu:
▬ Khi chọn tùy chọn “Tất cả thành phố” thì
Combobox sẽ mờ đi. Ngược lại, khi chọn tùy chọn
“Chọn thành phố” thì Combobox sẽ sáng lên để
cho phép chọn tên thành phố.
▬ Khi chọn tùy chọn “Tất cả thành phố”, nhấp nút “Xem” sẽ mở Report
“RL_Thiepmoi” ra màn hình. Ngược lại, khi chọn tùy chọn “Chọn thành phố” đồng
thời chọn một thành phố trong Combobox và nhấp nút “Xem” sẽ mở Report
“RL_Thiepmoi” ra màn hình theo đúng thành phố vừa chọn.
Thiết kế:
▬ Thủ tục đáp ứng yêu cầu trên:
Private Sub fraChon_AfterUpdate()
If fraChon = 1 Then
cobtp.Enabled = False
Else
cobtp.Enabled = True
End If
End Sub
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:
******************************************
BÀI 10:
2- Chọn Properties để xuất hiện và chọn Menu Bar trong hộp Type
▬ 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 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.
*********************************************************************
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 79
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
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:
Q1: Lieät keâ danh saùch nhaân vieân ôû taäp theå (saép xeáp taêng theo hoï teân)
Q2: Lieät keâ danh saùch nhaân vieân sinh sau naêm 1975 (saép xeáp giaûm theo hoï teân)
Q3: Lieät keâ MaDV, TenDV, toång soá nhaân vieân thuoäc ñôn vò ñoù
Q4: Thoáng keâ xem coù bao nhieâu phaùi nam, bao nhieâu phaùi nöõ.
Q5: Thoáng keâ xem coù bao nhieâu nhaân vieân ôû taäp theå vaø khoâng ôû taäp theå..
Q6: Lieät keâ: MaCB, MaDV, HoTen, Luong, TienNha, TamUng, ThucLanh.
Trong ñoù:
-Luong: + Neáu Bac >=5 thì 180000*HSLuong
+ Neáu Bac >=3 thì 144000*HSLuong
+ Coøn laïi thì 120000*HSLuong
-TienNha=0.05*Luong
-TamUng:
+Neáu MaDV laø “01”hoaëc coù Bac >=4 thì taïm öùng 30% cuûa Luong
+Coøn laïi thì taïm öùng 10% cuûa Luong
-ThucLanh:Luong-TienNha-TamUng.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 81
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
Q7: Lieät keâ: MaCB, MaDV, HoTen, Luong, TienNha, TamUng, ThucLanh coù löông
treân 700000 vaø saép xeáp taêng theo ThucLanh
Q8: Lieät keâ: MaDV, TenDV, Toång löông töøng ñôn vò.
Baûng DMLop
Teân vuøng tin Kieåu döõ lieäu Kích Thöôùc Ghi chuù
MaLop Text 5 Maõ Lôùp (khoaù)
Ban Text ? Phaân ban hoc
GVCN Text ? Teân giaùo vieân chuû nhieäm
Yeâu Caàu:
MaLop : Khoâng truøng , baét buoäc phaûi nhaäp, nhaäp xong phaûi hieån thò
daïng chöõ hoa
BAN : Laø 1 chöõ caùi vaø chæ laø chöõ “A” hoaëc “B”
GVNC : Daøi toái da laø 20 kyù töï .
Baûng HocSinh
Teân vuøng tin Kieåu döõ lieäu Kích Thöôùc Ghi chuù
MaHS Text 7 Maõ soá Hoïc Sinh (khoaù)
MaLop Text 5 Maõ Lôùp
HoHS Text 30 Hoï Hoïc Sinh
TenHS Text 10 Teân Hoïc Sinh
PhaiNam Yes/No Phaùi Nam Laø Yes
NamSinh Number
Yeâu Caàu:
MaHS : Khoâng truøng , baét buoäc phaûi nhaäp, nhaäp xong phaûi hieån thò
daïng chöõ hoa
MaLop : Phuø hôïp vôùi maõ lôùp trong table DMLOP , buoäc phaûi nhaäp
(khoâng phaûi khoùa)
HoHS,TenHS: Nhaäp xong phaûi hieån thò daïng chöõ hoa
PhaiNam : Giaù trò maëc ñònh laø Yes, hieån thò daïng Check box
NamSinh : Laø soá nguyeân vaø coù giaù trò <=1985
Baûng Diem
Teân vuøng tin Kieåu döõ lieäu Kích Thöôùc Ghi chuù
MaHS Text 7 Maõ soá Hoïc Sinh (khoaù)
Toan Number ? Ñieåm moân Toaùn
Ly Number ? Ñieåm moân Lyù
Van Number ? Ñieåm moân Vaên
Anh Number ? Ñieåm moân Anh
Yeâu Caàu:
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 82
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
MaHS : khoâng truøng, baét buoäc phaûi nhaäp, nhaäp xong phaûi hieån thò daïng chöõ
hoa trong cô sôû döõ lieäu.
Toan, Ly, Anh, Van : laø soá thöïc coù giaù trò töø 0 tôùi 10, laáy 1 soá leû, giaù trò maëc
ñònh laø 0
B. Thieát laäp quan heä giöõa caùc baûng trong cöûa soå Relationship nhö hình sau:
Anh
C. Thí sinh nhaäp döõ lieäu Töông öùng vôùi caùc table nhö sau:
Table Lop Table Diem
TENLOP Ban GVCN MSHS Toan Ly Van Anh
10A01 A Huyønh Taán 10A010 6 9 9 8
10A02 A Giang Nam 10A010 7 7 7 7
10A03 A Xuaân Ñoâng 10A010 8 8 8 8
10B01 B Tuyeát Ngoïc 10A010 6 9 6 9
10B02 B Uyeân Trinh 10A010 2 3 4 2
10B020 8 7 5 6
10B020 7 6 8 9
10B020 8.5 5.5 6.5 4
10B020 9 7 3 8
10B020 8 8 8 6
Table HocSinh
MSHS MaLop Ho Ten NamSinh PhaiNam
10A0101 10A01 Löông Thò Anh 1983
10A0102 10A01 Lyù Huøng Anh 1980 x
10A0103 10A01 Nguyeãn Thò Dung 1984
10A0104 10A01 Phan Ñöùc Duõng 1983 x
10A0105 10A01 Nguyeãn Vaên Hoaø 1984 x
10A0106 10A01 Nguyeãn Hoàng Phöông 1985
10B0201 10B02 Huyønh Dung 1983
10B0202 10B02 Nguyeãn Hoàng Long 1984 X
10B0203 10B02 Leâ Ñaêng Long 1983 X
10B0204 10B02 Traàn Thò Bích 1984
10B0205 10B02 Ñoã Huöõ Troïng 1983 X
D. Taïo caùc Query sau bằng ngôn ngữ SQL và QBE:
Q1: Cho bieát thoâng tin veà caùc hoïc sinh hoïc lôùp 10A01.
Q2: Cho bieát thoâng tin veà caùc hoïc sinh Nam, sinh tröôùc naêm 1985.
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. 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
Maõ khoa Teân khoa Maõ sinh vieân Maõ moân hoïc Ñieåm
AV ANH VAÊN A01 01 4.0
TH TIN HOÏC A01 02 2.0
TR TRIEÁT HOÏC A01 03 10.0
VL VAÄT LYÙ A02 01 10.0
A02 02 2.0
Maõ moân hoïc Teân moân hoïc A02 03 8.0
01 CÔ SÔÛ DÖÕ LIEÄU A03 04 5.0
02 TRÍ TUEÄ NHAÂN TAÏO A03 01 4.0
03 TRUYEÀN TIN A04 03 8.0
04 ÑOÀ HOÏA A05 01 8.0
05 VAÊN PHAÏM A05 02 5.0
06 ÑAØM THOAÏI B01 04 7.0
07 VAÄT LYÙ GNUYEÂN B01 03 3.0
08 VAÄT LYÙ ÑÒA CAÀU B02 01 10.0
09 TRIEÁT HOÏC ÑOÂNG B02 02 3.0
B03 02 8.0
C. Haõy söû duïng ngoân ngöõ coù caáu truùc SQL vaø QBE taïo caùc truy vaán sau:
QueryQ1: Lieät keâ danh saùch sinh vieân goàm caùc field sau:
MASV, HOSV, TENSV, NGAYSINH, DIACHI, PHAI, NOISINH, HOCBONG.
QueryQ2: Töông töï Q1 nhöng saép xeáp taêng daàn theo HOCBONG
QueryQ3: Töông töï Q1 nhöng saép xeáp taêng daàn theo MAKH, giaûm daàn theo NGAYSINH
QueryQ4: Töông töï Q1 nhöng loïc nhöõng sinh vieân coù teân laø “Chính”
QueryQ5: Töông töï Q1 nhöng loïc nhöõng sinh vieân coù teân baét ñaàu laø chöõ “H”
QueryQ6: Töông töï Q1 nhöng loïc nhöõng sinh vieân coù teân baét ñaàu laø chöõ [B – M]
QueryQ7: Töông töï Q1 nhöng loïc nhöõng sinh vieân coù hoï laø Nguyeãn hoaëc Leâ
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”
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
Table: Nhanvien
Table: Khachhang
Table: Sanpham
Table: Hoadon
Table : Chitiet
B- Nhập dữ liệu
Table: Nhanvien
Table: Khachhang
Table: Sanpham
Table: Hoadon
Table: Chitiet
Table: Hocvien
Table: Phancong
Table: Lop
Table: Giaovien
Table: Ketqua
D- Phần dữ liệu thử của CSDL Hocvien.mdb yêu cầu học viên tự nhập.
4- QS4 : Tạo Query gồm các Field : Mã hóa đơn, tên khách hàng, tên sản phẩm, họ lót nhân
viên, tên nhân viên, ngày lập hóa đơn. Sắp xếp tăng dần theo ngày lập hóa đơn.
5- QS5 : Hiển thị danh sách các đơn đặt hàng được lập trong tháng 3 năm 2004. Gồm các
Field : Mã hóa đơn, ngày lập hóa đơn, ngày nhận hàng, tên khách hàng và được sắp xếp
tăng dần theo ngày lập hóa đơn.
6- QS6 : Hiển thị danh sách các đơn đặt hàng do nhân viên có mã số 5 lập. Gồm các Field :
Họ lót nhân viên, tên nhân viên, mã hóa đơn, ngày lập hóa đơn, tên khách hàng.
7- QS7 : Hiển thị tên và địa chỉ những khách hàng đã mua hàng trong quý 2 năm 2004.
Gồm các Field : Tên khách hàng, địa chỉ khách hàng, thành phố khách hàng, mã hóa đơn,
ngày lập hóa đơn.
8- QS8 : Hiển thị danh sách các khách hàng ở Thành phố HCM hoặc Hà Nội. Gồm các Field :
Tên khách hàng, địa chỉ khách hàng, thành phố khách hàng, điện thoại khách hàng.
9- QS9 : Hiển thị danh sách các đơn đặt hàng có ngày lập và ngày nhận cách nhau không
quá 5 ngày. Gồm các Field : Mã hóa đơn, ngày lập hóa đơn, ngày nhận hàng.
10- QS10 : Hiển thị danh sách các khách hàng có tên khách hàng chứa chuỗi "TNHH". Gồm
các Field : Mã khách hàng, tên khách hàng, địa chỉ khách hàng, thành phố khách hàng, điện
thoại khách hàng.
11- QS11 : Hiển thị danh sách các đơn đặt hàng được lập trong 6 tháng đầu năm 2004. Gồm
những Field sau : Mã hóa đơn, ngày lập hóa đơn, tên khách hàng, họ tên nhân viên lập đơn.
Trong đó :
▬ Họ tên nhân viên được ghép từ họ lót và tên.
12- QS12 : Hiển thị danh sách các đơn đặt hàng lập trong tháng 9 hoặc 10 của các khách
hàng dạng "TNHH". Gồm các Field : Mã hóa đơn, ngày lập hóa đơn, họ tên nhân viên lập
đơn, tên sản phẩm, số lượng, đơn giá, thành tiền.
▬ Họ tên nhân viên được ghép từ họ lót và tên.
▬ Thành tiền : số lượng * đơn giá
13- QS13 : Hiển thị danh sách đơn đặt hàng có mã hóa đơn là 20040005. Gồm các Field :
Mã hóa đơn, tên sản phẩm, số lượng, đơn giá, thành tiền.
14- QS14 : Hiển thị danh sách chi tiết về các đơn đặt hàng. Gồm các Field : Mã hóa đơn, tên
sản phẩm, số ngày lập đơn, đơn giá, số lượng, thành tiền, tiền trả trước, tiền còn lại. Biết
rằng :
▬ Thành tiền : đơn giá * số lượng
▬ Số ngày lập đơn là khoảng cách từ ngày lập đơn đến ngày nhận hàng.
▬ Tiền trả trước : Nếu số ngày lập đơn ít hơn 20 thì bằng 20% của thành tiền. Nếu số
ngày lập đơn từ 20 đến 30 thì bằng 30% của thành tiền. Nếu số ngày lập đơn trên 30
thì bằng 40% của thành tiền.
▬ Tiền còn lại : thành tiền - tiền trả trước, nhưng giảm đi 5%.
▬ Khai báo thuộc tính “#,##0 $” cho các Field : Thành tiền, tiền trả trước, tiền còn lại.
15- QS15 : Hiển thị danh sách chi tiết về các đơn đặt hàng. Gồm các Field : Mã hóa đơn,
ngày lập hóa đơn, ngày nhận hàng, tên khách hàng, họ tên nhân viên, tên sản phẩm, đơn
giá, số lượng, thành tiền, tổng tiền. Biết rằng:
▬ Thành tiền: đơn giá * số lượng
▬ Tổng tiền: thành tiền + tiền kho. Với tiền kho được tính như sau :
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 92
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
Nếu thời gian từ ngày lập đơn đến ngày nhận hàng trong khoảng từ 20 đến 40 ngày
thì không tính tiền kho.
Nếu thời gian từ ngày lập đơn đến ngày nhận hàng nhỏ hơn 20 ngày thì giảm 2000
cho một ngày không lưu kho.
Nếu thời gian từ ngày lập đơn đến ngày nhận hàng lớn hơn 40 ngày thì thêm 2000
cho một ngày lưu kho.
16- QS16 : Hiển thị danh sách các đơn đặt hàng. Gồm các Field: Mã hóa đơn, ngày lập hóa
đơn, tên sản phẩm, thành tiền, thuế, huê hồng, thực thu. Biết rằng:
▬ Thành tiền : số lượng * đơn giá
▬ Thuế : 20% * thành tiền
▬ Huê hồng : 4% * thành tiền, với điều kiện số lượng từ 40 trở lên.
▬ Thực thu : thành tiền – huê hồng - thuế
17- QS17 : Hiển thị danh sách các mặt hàng đặt mua trong 6 tháng cuối năm 2004. Gồm các
Field: Tên sản phẩm, mã hóa đơn, số lượng, đơn giá, đơn vị tính, thành tiền, quý. Biết rằng:
▬ Thành tiền : số lượng * đơn giá
▬ Quý : Ghi là "Quý 3" nếu ngày lập đơn từ đầu tháng 7 đến hết tháng 9 năm 2004. Ghi
là "Quý 4" nếu ngày lập đơn từ đầu tháng 10 đến hết tháng 12 năm 2004.
18- QS18 : Hiển thị danh sách của những đơn đặt hàng đặt mua trong 6 tháng đầu năm
2004. Gồm các Field : Mã hóa đơn, tên sản phẩm, số lượng, đơn giá, thành tiền, giảm, cước
phí, thanh toán.
▬ Thành tiền : số lượng * đơn giá
▬ Giảm : 10% * thành tiền, nếu số lượng trên 40
▬ Cước phí : 15% * thành tiền, nếu từ ngày lập đơn đến ngày nhận hàng trên 20 ngày.
▬ Thanh toán : thành tiền - giảm + cước phí
19- QS19 : Hiển thị các hóa đơn chưa giao hàng. Gồm các Field sau : Mã hóa đơn, ngày lập
hóa đơn, tên khách hàng, điện thoại khách hàng.
20- QS20 : Hiển thị tên sản phẩm có đơn giá bán thấp nhất. Gồm : Tên sản phẩm, đơn vị
tính, đơn giá.
21- QS21 : Hiển thị danh sách các khách hàng chưa đặt đơn hàng. Gồm : Mã khách hàng,
tên khách hàng, điện thoại khách hàng, địa chỉ khách hàng.
22- QS22 : Hiển thị danh sách các sản phẩm chưa có đơn đặt hàng. Gồm : Mã sản phẩm,
tên sản phẩm, đơn vị tính, đơn giá.
23- QS23 : Hiển thị danh sách các hóa đơn của một nhân viên bất kỳ có mã nhập vào từ bàn
phím. Các thông tin gồm : Hóa đơn nào ? Cho ai ? Ngày lập đơn ? Ngày nhận hàng ? Địa chỉ
của khách hàng ?
24- QS24 : Hiển thị danh sách các sản phẩm đã bán theo mã sản phẩm nhập từ bàn phím.
Thông tin gồm : Bán cho những hóa đơn nào ? Số lượng ? Đơn giá ? Tên khách hàng đặt
mua ? Thành tiền ?
25- QS25 : Cho biết trong một khoảng thời gian bất kỳ nào đó, một khách hàng nào đó có
mua hàng hay không ? Các thông tin cần xem : Mã khách hàng, tên khách hàng, ngày lập
hóa đơn, ngày nhận hàng, họ tên nhân viên, tên sản phẩm.
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)
Mẫu 1: R_mau1
Mẫu 2: R_mau2
Mẫu 4: R_mau4
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á.
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)
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.
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%.
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.
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.
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.
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”).
3- Mẫu 3 : FM_mau3
Yêu cầu :
▬ Khi chọn một
giá trị năm
trong
Combobox
đồng thời với
việc chọn một
sản phẩm
trong Listbox
sẽ xuất hiện
thông tin về
trí giá trong từng quý của năm được chọn. (Chú ý : Nguồn của Subform là một
Crosstab Query).
4- Mẫu 4 : FM_mau4
Yêu cầu :
▬ Khi chọn mã
nhân viên từ
hộp Combo sẽ
xuất hiện các
thông tin về
hóa đơn mà
nhân viên này
đã lập trong
khung “Các
hóa đơn đã lập”.
▬ Ứng với mỗi Record trong khung “Các hóa đơn đã lập” khi được chọn sẽ xuất hiện hai
thông tin trong 2 Textbox “Chi tiết của hóa đơn” và “Của khách hàng”. Đồng thời,
khung ngay bên dưới 2 Textbox sẽ hiện các thông tin chi tiết về hóa đơn đã lập.
▬ Áp dụng các công thức truyền dữ liệu từ Subform ra Mainform.
5- Mẫu 5 : FM_mau5
Yêu cầu :
▬ Hãy tạo một
Report Wizard có
nguồn gồm các
thông tin : tên
sản phẩm, ngày
lập đơn, ngày
nhận hàng, số
lượng, đơn giá, thành tiền.
▬ Nhập khoảng thời gian lập đơn vào 2 Textbox trên Form đồng thời với việc chọn một
sản phẩm cần xem, khi bấm nút “Đồng ý” sẽ mở ra Report Wiazrd vừa tạo.
▬ Nút “Hủy bỏ” dùng để đóng Form.
▬ Áp dụng công thức truyền dữ liệu từ Mainform vào Query.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 101
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
1- Mẫu 1 : R_1
2- Mẫu 2 : R_2
3- Mẫu 3 : R_3
4- Mẫu 4 : R_4
5- Mẫu 5 : R_5
1- Mẫu 1: F_mau7
Yêu cầu :
▬ Nút “Tất cả” được chọn mặc
định và để hiển thị toàn bộ các
khách hàng đã có.
▬ Chọn một trong các thành phố
để xem danh sách các khách
hàng theo thành phố đó.
▬ Nút “Đóng” dùng để đóng
Form.
2- Mẫu 2 : F_mau8
Yêu cầu :
▬ Nút “Xem tất cả” áp dụng cho Group
bên trái. Các tùy chọn tương ứng để
mở các báo cáo : R_3, R_4, R_5.
▬ Nút “Xem riêng” áp dụng cho Group
bên phải. Khi chọn tùy chọn thì
Combobox tương ứng sẽ bật sáng,
lúc này bấm nút “Xem riêng” sẽ
kiểm tra Combobox rỗng hay không
để mở các Report tương ứng : R_3, R_4, R_5 theo giá trị đã chọn trong Combobox.
▬ Nút “Đóng” dùng để đóng Form.
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 104
TRƯỜNG TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH MICROSOFT ACCESS 2003
3- Mẫu 3: F_mau9
Yêu cầu :
▬ Khi chọn tùy chọn “Tất cả thành phố”
thì Combobox sẽ mờ đi và lúc này nếu
bấm nút “Xem” sẽ mở Report :
RL_Thiepmoi đã tạo trong phần Access1
(tham khảo mẫu bên dưới).
▬ Khi chọn tùy chọn “Chọn thành phố” thì Combobox sẽ bật sáng và lúc này nếu bấm
nút “Xem” sẽ kiểm tra Combobox có rỗng hay không để mở Report “ RL_Thiepmoi
theo tên thành phố đã chọn trong Combobox.
▬ Nút “Đóng” dùng để đóng Form.
Mẫu Report : RL_Thiepmoi
4- Mẫu 4: F_mau10
Yêu cầu:
▬ Thiểt kế mẫu Form
theo đúng trạng thái
chọn của tùy chọn
khi Form hoạt động.
▬ Tùy chọn 1: Textbox
có nền màu đỏ, chuỗi “Hello!!!Learning Access” màu vàng.
▬ Tùy chọn 2: Textbox có nền màu xanh dương,chuỗi “Welcom to Access !!!” màu trắng.
▬ Tùy chọn 3: Textbox có nền màu vàng, chuỗi “Begin with Access !!!” màu xanh lá.
▬ Tùy chọn 4: Textbox có nền màu xanh lá, chuỗi “End. Goodbye” màu xanh dương.
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.
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 :
abc
Diện tích tam giác : S p(p a)(p b)(p c) với p
2
abc
Bán kính đường tròn ngoại tiếp : R
4S
S
Bán kính đường tròn nội tiếp : r
p
(Các hàm cần sử dụng : hàm Sqr(…) để tính căn bậc hai ; Hàm Round(…) để làm tròn ;
Hàm Val(…) để đổi ra giá trị số.)
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.