SlideShare a Scribd company logo
KHOA CÔNG NGHỆ THÔNG TIN
MICROSOFT
ACCESS 2010
TRƯỜNG ĐẠI HỌC KINH DOANH CÔNG NGHỆ HÀ NỘI
1
https://tophosting.vn/
Tổng quan về hệ quản trị CSDL Access 2010
Chương 1
NỘI DUNG CHƯƠNG TRÌNH:
Thiết kế và cài đặt Cơ Sở Dữ Liệu
Chương 2
Làm việc với Bảng (Table)
Chương 3
Truy vấn dữ liệu ( Query)
Chương 4
Thiết kế biểu mẫu ( Form)
Chương 5
Thiết kế báo cáo ( Report)
Chương 6
Thiết kế Macro
Chương 7
Lập trình Module
Chương 8 2
https://tophosting.vn/
TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
Tổng quan về hệ quản trị CSDL Access 2010
Chương 1
Access
4. Các thành phần của Access
6. Cách tạo CSDL trong Access
3. Khởi động chương trình
2. Giới thiệu Access 2010
1. Giới thiệu về Hệ quản trị CSDL
7. Quản lý CSDL
8. Giao diện người dùng
5. Các đối tượng chính trong Access
3
https://tophosting.vn/
1.1 Giới thiệu Hệ Quản Trị Cơ Sở Dữ Liệu Access
Access là một trong những hệ quản trị cơ sở dữ liệu quan hệ (RDMS -
Relational Database Management System) và là phần mềm quản lý cơ sở
dữ liệu quan hệ do hãng Microsoft giữ bản quyền.
Tổng quan về hệ quản trị CSDL Access 2010
Chương 1
1.1.1 Access là gì:
Databas
e
(Cơ Sơ
Dữ Liệu)
Access là gì?
4
https://tophosting.vn/
➢ Access cung cấp hệ thống công cụ rất mạnh, giúp người dùng nhanh
chóng và dễ dàng xây dựng chương trình ứng dụng.
1.1.2 Access làm những gì:
➢ Access cho phép người sử dụng quản lý, bảo trì, khai thác, lưu trữ số
liệu một cách có tổ chức trên máy tính, tạo ra các ứng dụng mà
không cần lập trình.
1.1.3 Những ứng dụng của Access:
➢ Dùng để xây dựng hệ cơ sở dữ liệu
➢ Có thể dùng để xây dựng trọn gói những phần mềm quản lý qui
mô vừa và nhỏ.
➢ Dùng để quản lý dữ liệu cho phép người dùng đăng nhập vào rồi
xem, tìm kiếm, sửa, xóa, chia sẻ... Tạo các ứng dụng về quản lý
mà không cần phải là một nhà phát triển.
VD: Quản lý Sinh Viên, Quản Lý Bán Hàng, Quản Lý Nhân Viên...
5
https://tophosting.vn/
1.1.3 Những ứng dụng của Access:
QUẢN LÝ THƯ VIỆN
QUẢN LÝ SINH VIÊN QUẢN LÝ HỌC VIÊN
QUẢN LÝ NHÀ HÀNG
6
https://tophosting.vn/
Cơ sở dữ liệu Access( CSDL) là 1 tập hợp các dữ liệu về 1 “tổ chức” nào đó
(ví dụ dữ liệu Sinh Viên) được lưu giữ trong máy tính, được nhiều người sử
dụng và được tổ chức theo mô hình dữ liệu.
4. Cơ sở dữ liệu(Database) là gì?
Tìm
hiểu?
1.1.4 Cơ sở dữ liệu (CSDL):
Các tiêu chuẩn của 1 Cơ sở dữ liệu:
➢ Không có sự dư thừa thông tin.
➢ Phản ánh đúng đắn hoạt động của tổ chức
➢ Đảm bảo an toàn dữ liệu (vì được nhiều người sử dụng)
➢ Có sự độc lập giữa CSDL và các chương trình để đảm bảo cho việc bảo trì
➢ Hiệu quả sử dụng tốt: khai thác trên các máy khác nhau cho kết
quả như nhau.
7
https://tophosting.vn/
➢ Có rất nhiều loại hệ quản trị CSDL khác nhau, ngoài Access còn có:
MySQL, Oracle, PostgreSQL, SQL Server, DB2, Infomix...
➢ Hệ quản trị cơ sở dữ liệu (Database Management System -
DBMS), là phần mềm hay hệ thống được thiết kế để quản trị
một cơ sở dữ liệu.
5. Hệ quản trị
cơ sở dữ liệu
là gì?
Đặt ra
câu hỏi?
1.1.5 Hệ quản trị CSDL:
?
?
?
?
8
https://tophosting.vn/
1.2 Giới thiệu Microsoft Access 2010
1.2.1 Lịch sử phát triển:
9
https://tophosting.vn/
➢ Các lệnh được bố trí trên các tab ở phía bên trái của màn hình, và
mỗi tab chứa một nhóm các lệnh có liên quan. Các thao tác sử dụng ít
đi, đơn giản hơn so với phiên bản trước
➢ Giao diện của Access 2010 cũng đã thay đổi khá là thân thiện với
người sử dụng. Cửa sổ Danh mục chính thay thế và mở rộng các chức
năng của cửa sổ Database.
➢ Backstage View cho phép bạn truy cập vào tất cả các lệnh áp dụng
cho toàn bộ cơ sở dữ liệu, như là thu gọn và sửa chữa, hoặc các lệnh từ
menu File.
1.2.2 Access 2010 có gì mới?
10
https://tophosting.vn/
1.3 Khởi động Access 2010
Cửa sổ chương trình MS Access 2010
Khởi động chương trình MS Access bằng một trong hai cách sau:
1. Start -> (All) Programs -> Microsoft Office -> Microsoft Office Access 2010.
2. Click đúp chuột trái vào biểu tượng MS Access 2010 trên Desktop.
11
https://tophosting.vn/
1.4 Các thành phần trong cửa sổ khởi động
Chú ý: Thanh Quick Access chỉ hiển thị khi bạn đang mở một Cơ
sở dữ liệu (CSDL) bất kỳ.
➢ Thanh Quick Access: hiển thị bên trái của thanh tiêu đề, mặc
định thanh Quick Access gồm các nút công cụ Save, Undo, …
1.4.1 Thanh Quick Access
12
https://tophosting.vn/
➢ Bên phải của Quick Access chứa nút Customize , giúp bạn chỉ định các
nút lệnh hiển thị trên thanh Quick Access,
➢ Nhấp vào Show Below the Ribbon :
Để hiển thị Thanh Quick Access dưới
Ribbon.( Hình 3)
1.4.1 Thanh Quick Access
13
https://tophosting.vn/
➢ Muốn thêm, xóa, nút lệnh vào Quick Access : File/option/ Quick
Access toobar ( Hình 2)
Nhấp Add để thêm
Nhấp Remove để xóa
Nhấp OK
để lưu
1.4.1 Thanh Quick Access
14
https://tophosting.vn/
Là một cửa sổ được chia thành 3 khung:
1. Khung bên trái gồm các
lệnh trong tab File
2. Khung giữa chứa các loại tập
tin cơ sở dữ liệu mà bạn có thể
tạo mới.
3. Khung bên phải: để nhập tên và
chọn vị trí lưu tập tin mới tạo và thực
thi lệnh tạo mới cơ sơ dữ liệu.
.
1
2
3
1.4.2 Vùng làm việc:
15
https://tophosting.vn/
Dưới thanh tiêu đề, Thanh dài hiển thị các nút lệnh Home, Create...
được gọi là Ribbon
➢ Ribbon được chia thành
từng nhóm khác nhau
➢ Mỗi nhóm hiển thị tiêu đề
con bên dưới mỗi nhóm
➢Để thiết lập thuộc tính mỗi
nhóm nhấp vào
Thu nhỏ kích thước của Ribbon bằngcách
click nút Minimize The Ribbon
1.4.3 Thanh Ribbon:
16
https://tophosting.vn/
Cửa sổ Properties giúp bạn có thể hiệu chỉnh thuộc tính của đối tượng,
tùy theo đối tượng đang được chọn mà cửa sổ thuộc tính sẽ chứa
những thuộc tính tương ứng của đối tượng đó.
Cửa sổ Properties được chia thành
năm nhóm:
➢ Format: Gồm các thuộc tính định
dạng đối tượng
➢ Data: Gồm các thuộc tính truy suất
dữ liệu của đối tượng.
➢ Event: Gồm các sự kiện (event) của
đối tượng.
➢ Other: Gồm các thuộc tính giúp
bạn tạo hệ thống menu,
toolbars,…
➢ All: Gồm tất cả các thuộc tính trong
bốn nhóm trên.
1.4.4 Cửa sổ Properties:
17
https://tophosting.vn/
➢ Navigation Pane là khung chứa nội dung chính của cơ sở dữ liệu.
➢ Từ khung Navigation Pane, bạn có thể mở bất kỳ Table, Query, Form,
Report, Macro, hoặc Module trong cơ sở dữ liệu bằng cách double
click vào tên của đối tượng.
1
•Ẩn hiện khung cửa sổ Nagvigation Pane
2
•Ẩn hiện đối tượng
3
•Hiển thị đối tượng
4
•Danh sách các đối tượng
Thanh Navigation Pane khi bị ẩn:
1.4.5 Thanh Navigation Pane
18
https://tophosting.vn/
1.5 Các đối tượng chính trong Access 2010
Table
(Bảng)
Module
(Lập
trình)
ACCESS
(Cơ sở dữ liệu)
Query
(Truy vấn)
Form
(Biểu mẫu)
Macro
(Tập lệnh)
Report
(Báo cáo)
19
https://tophosting.vn/
Table: Là đối tượng dùng để lưu dữ liệu. Một bảng bao gồm cột và
hàng
- Cột hay còn gọi là trường (Field)
- Hàng hay còn gọi là bản ghi (Record)
VD: Quan sát bảng Khách Hàng dưới đây:
Bảng có 5 trường: Mã KH, Tên công ty, Địa Chỉ, Thành phố, SĐT.
Table Query Form Macro Module
Repor
t
1.5.1 Table (Bảng)
20
https://tophosting.vn/
Query: là công cụ được sử dụng để trích rút dữ liệu theo những điều kiện được
xác định, tập dữ liệu trích rút cũng có dạng bảng biểu.
VD: Quan sát truy vấn dưới đây:
Truy vấn trên trích rút ra thông tin các sản phẩm theo Mã KH.
Table Query Form Macro Module
Repor
t
1.5.2 Query (Truy vấn)
21
https://tophosting.vn/
Form: Là đối tượng thiết kế để nhập hoặc hiển thị dữ liệu giúp xây dựng
các thành phần giao tiếp giữa người sử dụng với chương trình.
VD: Quan sát Form dưới đây:
Table Query Form Macro Module
Repor
t
1.5.3 Form ( Biểu mẫu)
22
https://tophosting.vn/
Report: Là công cụ được sử dụng để tạo báo cáo dữ liệu được lấy từ
các bảng (Table) hoặc từ truy vấn (Queries).
VD: Quan sát Report dưới đây:
Table Query Form Macro Module
Repor
t
1.5.4 Report ( Báo cáo)
23
https://tophosting.vn/
Marco: Là đối tượng định nghĩa một hoặc nhiều hành động (thao tác)
mà Access sẽ thực hiện một lần khi chạy.
VD: Quan sát Macro dưới đây:
Table Query Form Macro Module
Repor
t
1.5.5 Macro ( Tập lệnh)
24
https://tophosting.vn/
Module: Là ngôn ngữ lập trình hoạt động theo các sự kiện, trên nguyên
tắc của lập trình cấu trúc, nhằm xây dựng các ứng dụng một cách linh
hoạt trên nền các đối tượng của Access.
VD: Quan sát Module dưới đây:
Table Query Form Macro Module
Repor
t
1.5.6 Lập trình Module
25
https://tophosting.vn/
1.6 Cách tạo cơ sở dữ liệu trong Access 2010
Thực hiện:
Menu File -> New - > Blank Database -> Create
1.6.1 Tạo một cơ sở dữ liệu rỗng (Blank Database)
➢ File name: nhập tên cho Cơ Sở
Dữ Liệu
➢ Đuôi mở rộng của Access
2010 là .accdb
➢ Nếu không chỉ định đường dẫn
thì CSDL được lưu mặc định
vào thư mục Document
➢ Để chỉ định thư mục lưu ta
chọn Brows và nhấp vào
Create để tạo CSDL
26
https://tophosting.vn/
Thực hiện:
Tại cửa sổ khởi động/ New/Sample Template/CSDL có sẵn/Create
1.6.2 Tạo một cơ sở dữ liệu theo mẫu (Template)
➢ Trong khung File name
nhập tên CSDL.
➢ Click vào nút Brows để chỉ
định vị trí lưu tệp tin
➢ Click vào Create để tạo
CSDL.
27
https://tophosting.vn/
1.7 Quản lý Cơ Sở Dữ Liệu Access 2010
Recent: hiển thị danh sách các tập tin cơ sở dữ liệu được mở
gần nhất. Số tập tin hiển thị trong danh sách này mặc định là 9
Có thể thay đổi bằng các cách sau:
1.7.1 Recent
➢ Tại cửa sổ làm việc của Acces,
chọn tab File.
➢ Chọn Options/Client Settings
➢ Trong mục Display, thay đổi giá
trị của thuộc tính “Show This
Number of Recent Documents”
➢ Nhập số bản ghi muốn hiển thị
28
https://tophosting.vn/
Để mở một cơ sở dữ liệu đã có ta thực hiện một trong các cách sau:
Cách 1: Tại cửa sổ khởi động chọn File/Open.../chọn tệp tin cở sở cần
mở/Open
Cách 2: nhấp double click vào tệp CSDL cần mở
1.7.2 Mở một cơ sở dữ liệu (Open)
➢ Open: mở CSDL mặc định
bình thường.
➢ Open Read Only: mở CSDL
ở chế độ chỉ đọc, không chỉnh
sửa.
➢ Open Exclusive: mở chế độ
bảo mật.
➢ Open Exclusive Read Only:
chế độ chỉ đọc và bảo mật.
29
https://tophosting.vn/
Để đóng một cơ sở dữ liệu đang chạy ta thực hiện cách sau:
Tại cửa sổ khởi động , File -> Close Database
Để đóng chương trình Access ta thực hiện cách sau:
Tại cửa sổ khởi động, File -> Exit (Alt+F4) hoặc ấn nút (X)
1.7.3 Thoát khỏi cơ sở dữ liệu (Exit)
30
https://tophosting.vn/
Khi tạo thêm đối tượng trong cơ sở dữ liệu thì dung lượng của tập tin cơ
sở dữ liệu sẽ tăng lên, khi xóa một đối tượng thì vùng nhớ của nó sẽ
rỗng, nhưng không sử dụng được.
1.7.4 Thu gọn và chỉnh sửa CSDL (Compact & Repair)
Chức năng Compact & Repair Database giúp thu hồi lại phần bộ nhớ
bị rỗng, làm cho tập tin cơ sở dữ liệu gọn lại.
Cách thực hiện:
- Mở cơ sở dữ liệu cần thu gọn và chỉnh sửa
- Chọn Menu File
- Click nút Compact & Repair Database
31
https://tophosting.vn/
Có thể xuất dữ liệu sang cơ sở dữ liệu Access khác, hoặc
Excel, Word, Pdf…
1.7.5 Xuất dữ liệu từ Access sang ứng dụng khác (Export)
Cách thực hiện:
➢ Chọn đối tượng muốn xuất sang ứng dụng khác.
➢ Chọn tab External Data.
➢ Trong nhóm công cụ Export, chọn loại ứng dụng mà bạn muốn xuất
dữ liệu: Excel, Text file, XML file, Word, Access…
➢ Click nút Browse… chỉ định vị trí xuất dữ liệu.
➢ Click OK hoàn tất việc export dữ liệu.
32
https://tophosting.vn/
Có thể chép dữ liệu từ ứng dụng khác như Excel, ODBC Database,
Access, …vào cơ sở dữ liệu hiện hành.
1.7.6 Nhập dữ liệu từ ứng dụng khác vào Access (Import)
Cách thực hiện:
➢ Chọn tab External Data
➢ Trong nhóm lệnh Import & Link, chọn ứng dụng mà bạn muốn
chép dữ liệu.
➢ Lần lượt làm theo các bước hướng dẫn của Access:
33
https://tophosting.vn/
1.7.6 Nhập dữ liệu từ ứng dụng khác vào Access (Import)
Trong cửa sổ làm việc của Access, chọn tab External Data, click nút
Excel trong nhóm lệnh Import & Link
Chọn tập tin Excel cần chép (Click nút Browse… để tìm tập tin Excel)->
Open-> OK, sau đó thực hiện theo các bước hướng dẫn của Access:
+ Chọn sheet chứa dữ liệu cần chép -> Next.
+ Chọn dòng làm tiêu đề cho bảng -> Next.
+ Chỉ định thuộc tính cho các field -> Next.
+ Chọn cách tạo khóa cho bảng:
▪ Let Access add primary key: Access tự tạo khóa.
▪ Chose my own primary key: Bạn chỉ định khóa.
▪ No primary key: Không tạo khóa
+ Nhập tên cho bảng -> Finish
+ Access hiển thị thông báo cho biết hoàn tất quá trình import một
file Excel thành một bảng trong Access
a. Nhập dữ liệu từ Excel vào Access (Import)
34
https://tophosting.vn/
Có thể chép dữ liệu từ ứng dụng khác như Excel, ODBC Database,
Access, …vào cơ sở dữ liệu hiện hành.
1.7.6 Nhập dữ liệu từ ứng dụng khác vào Access (Import)
➢ Trong cửa sổ làm việc của Access, chọn tab External Data, click
nút Access trong nhóm lệnh Import & Link
➢ Chọn tập tin Access chứa dữ liệu cần chép (Click nút Browse… để
tìm tập tin Access)- >Open.
➢ Chọn tùy chọn “Import table, query, form, report, macro and
modules into the current database”để chỉ định vị trí lưu trữ dữ liệu
trong cơ sở dữ liệu hiện hành->OK
➢ Trong cửa sổ Import object, chọn đối tượng cần chép. Có thể chọn
nhiều đồng thời đối tượng hoặc chọn tất cả bằng cách click nút Select
All->OK.
b. Nhập dữ liệu từ Access vào CSDL hiện hành:
35
https://tophosting.vn/
Cách thực hiện:
+ Mở cơ sở dữ liệu ở chế độ Exclusive bằng cách: File-Open- Open
Exclusive.
+ Chọn tab File, Chọn lệnh Info Click nút set Database Password
1.7.7 Bảo Mật trong Access 2010 (Password)
+ Nhập Password 2 lần , OK
a. Tạo mật khẩu bảo mật CSDL:
36
https://tophosting.vn/
Cách thực hiện:
+ Mở cơ sở dữ liệu ở chế độ Exclusive bằng cách: File-Open- Open
Exclusive.
+ Chọn tab File, chọn lệnh Info-Click nút UnSet DatabasePassword.
.
1.7.7 Bảo Mật trong Access 2010 (Password)
+ Nhập Password để gỡ bỏ , OK
b. Gỡ bỏ mật khẩu trong CSDL:
37
https://tophosting.vn/
1.8 Giao diện người dùng trong Access 2010
➢ Click tab Create trên thanh Ribbon.
➢ Trong nhóm công cụ của từng đối tượng,chọn cách tạo tương ứng
1.8.1 Tạo mới một đối tượng:
1.8.2 Thiết kế lại một đối tượng:
➢ Nếu đối tượng đang đóng:
+ Click phải trên đối tượng cần thiết kế lại.
+ Chọn Design view.
➢ Nếu đối tượng đang mở
+ Click nút Design View
1.8.3 Xem nội dung trình bày của một đối tượng:
➢ Nếu đối tượng đang mở ở chế độ Design View
+ Click nút View.
➢ Nếu đối tượng đang đóng:
+ Click phải trên tên đối tượng cần xem.
+ Chọn Open.
38
https://tophosting.vn/
➢ Click phải chuột trên đối tượng cần xóa,
➢ Chọn mục delete trên Menu Popup.
➢ Hoặc chọn rồi nhấn phím Delete. Hoặc nút trên thanh công cụ.
1.8.4 Xóa một đối tượng
1.8.5 Đổi tên đối tượng:
➢ Click phải chuột trên đối tượng, chọn rename,
➢ Hoặc nhấn F2
➢ Nhập tên mới.
1.8.6 Sao chép một đối tượng:
➢ Click phải chuột lên thành viên cần chép
➢ Chọn mục copy để chép đối tượng vào Clipboard.
➢ Click nút Paste trên thanh Menu để chép vào cửa sổ database.
➢ Nhập tên cho đối tượng sao chép.
➢ Đối với kiểu đối tượng Table, ta có thể lựa chọn 1 trong 3 kiểu sao chép
+ Structure only: Sao chép cấu trúc
+ Structure and data: Sao chép cấu trúc và dữ liệu
39
https://tophosting.vn/
Chức năng Link trong Acces để duy trì mối liên kết với dữ liệu nguồn.
Nếu dữ liệu nguồn thay đổi thì dữ liệu trong bảng liên kết sẽ thay đổi
theo và ngược lại.
Cách thực hiện:
Tương tự như chức năng Import, nhưng trong cửa sổ Get External Data,
ta chọn tùy chọn “Link to data source by creating a link table”- Chọn
bảng muốn link- OK
1.8.7 Chức năng Link
1.8.8 Chọn giao diện người dùng trong Access 2010:
Access 2010, bạn có sự lựa chọn của việc sử dụng các giao diện truyền
thống hoặc loại giao diện mới có dạng các tab.
40
https://tophosting.vn/
Tabbed Documents là giao diện lý tưởng cho người dùng làm việc với
nhiều hơn một đối tượng tại một thời điểm.
➢ Trong giao diện này form và report không thể nằm trên đầu trang của
một khác và người dùng có thể xem tất cả các điều khiển trên một
đối tượng giao diện người dùng mà không cần phải di chuyển một đối
tượng trong đường đi.
1.8.9 Tabbed Documents
41
https://tophosting.vn/
➢ Overlapping Windows có lợi thế hơn. Do sự đa dạng của việc thiết
lập thuộc tính BorderStyle và khả năng loại bỏ các nút Min, Max, và
Close.
➢ Với giao diện Overlapping Windows, bạn có thể dễ dàng buộc người
dùng tương tác với một form tại một thời điểm.
1.8.10 Overlapping Windows
42
https://tophosting.vn/
Chuyển sang dạng Overlapping Windows ta thực hiện như sau:
1.8.11 Chuyển từ giao diện Tabbed Documents sang
Overlapping Windows
➢ Trong cửa sổ làm việc của
Access, chọn tab File- chọn lệnh
Options.
➢ Trong cửa sổ Access options,
chọn Current Database.
➢ Trong mục Document- Window
Options - Chọn Overlapping
Windows-OK
➢ Thoát khỏi Access và khởi
động lại.
43
https://tophosting.vn/
TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
Thiết kế và cài đặt Cơ sở dữ liệu
Chương 2
1
Thiết kế các Bảng và xác định các mối quan hệ
2. Cài đặt các Bảng lên đĩa thông qua Access
2
3
3. Thiết lập các mối quan hệ giữa các Bảng
44
https://tophosting.vn/
2.1 Phân tích CSDL
2.1.1 Đặt vấn đề
Trong một xí nghiệp, hàng ngày người ta xuất vật tư theo phiếu xuất kho:
➢ Cùng một người nhận vật tư, nhưng ở phiếu khác thì ta phải ghi lặp
lại tên và địa chỉ của họ.
➢ Nếu có thêm vật tư M3, M4, v.v.. thì cấu trúc trên bị thiếu cột, nghĩa
là cấu trúc trên không phù hợp nữa, mặt khác rất lãng phí để ghi tên
trường mã vật tư.
➢ Bởi vậy phải biết phân tích CSDL để đưa ra được bảng hợp lý
Ta thấy cấu trúc bảng trên có những điều không hợp lý như sau:
45
https://tophosting.vn/
Để phân tích tốt phải hiểu được CSDL là gì ?
Đó là một môn học riêng (dành cho chuyên ngành) Ở đây ta chỉ dùng
trực giác để xây dựng một cách tương đối, đáp ứng nhu cầu ứng dụng
ngay của Access mà thôi.
2.1.1 Đặt vấn đề
46
https://tophosting.vn/
➢ Giả sử bạn cần quản lý một cửa hàng bán hàng hóa trong thành
phố. Bạn hãy phân tích và thiết kế một CSDL nhằm thực hiện các
yêu cầu quản lý thực tế. Đó là quản lý các nhân viên trong cửa
hàng, các sản phẩm, các khách hàng, các hoá đơn
➢ Theo trực giác chúng ta cần gì?
➢ NHÂN VIÊN: Mỗi một nhân viên cần có thông tin gì?
➢ SẢN PHẨM: Mỗi sản phẩm cần có gì để quản lí
➢ KHÁCH HÀNG: Mỗi khách hàng cần có thông tin gì?
➢ HÓA ĐƠN: Mỗi một hóa đơn cần có những gì?
➢ CHI TIẾT HÓA ĐƠN: Một chi tiết hóa đơn cho biết gì?
2.1.1 Giải quyết vấn đề
47
https://tophosting.vn/
1
Mỗi trường trong bảng phải mô tả một loại thông tin duy nhất.
2
Mỗi bản ghi có một số trường tối thiểu, nhờ nó mà không có các
bản ghi trùng nhau. (số trường tối thiểu đó gọi là khoá cơ bản)
3
Các trường trong bảng phải đầy đủ và liên quan đến khoá cơ
bản hay còn gọi là liên quan đến chủ thể của bảng (điều này
được gọi là phụ thuộc hàm)
Có thể thay đổi được một trường bất kỳ (trừ các khoá cơ bản)
mà không ảnh hưởng đến mọi trường khác
4
2.1.2 Một số các quy tắc về xây dựng CSDL
48
https://tophosting.vn/
1 Mỗi trường trong bảng phải mô tả một loại thông tin duy nhất.
Giả sử ta có một phiếu
xuất kho như sau:
Ta thấy mã vật tư 1 và vật tư
2 đều mô tả một loại thông
tin là mã vật tư vậy tại sao ta
không để chung là mã vật tư
https://tophosting.vn/
2 Mỗi bản ghi có một số trường tối thiểu, nhờ nó mà không có các bản ghi trùng
nhau. (số trường tối thiểu đó gọi là khoá cơ bản)
Để xây dựng bảng
Nhân Viên ta xây
dựng gồm:
➢ Ta thấy có hai bản ghi
thông tin giống hệt
nhau vậy làm cách nào
để phân biệt
➢ Hãy thêm mã nhân
viên sẽ giúp chúng ta
khác phục điều này
Họ tên Giới
tính
Ngày sinh Địa chỉ
Lê Anh Nu 12/2/1977 Hà nội
Hà Thi Tú Nu 13/4/1974 Hà Nam
Lê Anh Nu 12/2/1977 Hà nội
Mã
NV
Hoten Giới
tính
Ngày
sinh
Địa chỉ
01 Lê Anh Nu 12/2/1977 Hà nội
02 Hà Thị Tú Nu 13/4/1974 Hà Nam
03 Lê Anh Nu 12/2/1977 Hà nội
https://tophosting.vn/
3 Các trường trong bảng phải đầy đủ và liên quan đến khoá cơ bản hay còn gọi
là liên quan đến chủ thể của bảng (điều này được gọi là phụ thuộc hàm)
➢ Ta thấy Họ tên, giới tính, ngày sinh, địa chỉ liên quan đến Mã
NV giúp cho thông tin nhân viên rõ ràng
Mã
NV
Họ tên Giới
tính
Ngày sinh Địa chỉ
01 Lê Anh Nu 12/2/1977 Hà nội
02 Hà Thị Tú Nu 13/4/1974 Hà Nam
03 Lê Anh Nu 12/2/1977 Hà nội
Ta gọi Mã NV là khóa cơ bản
➢ Không thể thêm vào một trường chẳng hạn Số lượng vào bảng này
vì chẳng liên quan gì đến Mã NV cả
https://tophosting.vn/
4 Có thể thay đổi được một trường bất kỳ (trừ các khoá cơ bản) mà không ảnh
hưởng đến mọi trường khác
➢ Ở bảng Phiếu Kho bên
cạnh nếu dòng 1 ta vô tình
gõ sai tên người nhận là Lê
Anh Quân thì:
- Địa chi Lê Anh Quân chỉ
có là 13 Hàng Bài
- không có Lê Anh Quân nào
ở 35 Tràng Thi
- Thực ra Địa Chỉ là phụ
thuộc vào Người Nhận.
Do đó ta nên tách bảng
Phiếu Kho
thành 2 bảng:
Phiếu và Địa Chỉ như bên:
Bảng Phiếu
Bảng Địa Chỉ
https://tophosting.vn/
Bảng 1: Danh mục Khách Hàng (KHACHHANG):
Bảng 2: Danh mục Sản Phẩm
(SANPHAM):
Bảng 3: Danh mục Nhân Viên (NHANVIEN):
Để rõ hơn về vấn đề này chúng ta phải hiểu Bảng là gì? Hãy hình dung bài
toán CSDL vừa phân tích gồm các bảng
2.2 Cài đặt dữ liệu lên các bảng trong Access
53
https://tophosting.vn/
Bảng 4: Hóa đơn (HOADON):
Bảng 5: Chi tiết hóa đơn (CTHD):
Một cơ sở dữ liệu Access bao gồm tập hợp các bảng dữ liệu có quan hệ
chặt chẽ, phù hợp để phục vụ lưu trữ dữ liệu cho một ứng dụng quản lý
2.2 Cài đặt dữ liệu lên các bảng trong Access
54
https://tophosting.vn/
2.3 Thiết kế các bảng và xác định mối quan hệ
➢ Dựa vào số liệu thống kê trên ta xây dựng Bảng.
Tìm hiểu cấu trúc của một bảng và cách tạo một bảng trong Access
55
https://tophosting.vn/
TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
Làm việc với Bảng (Table)
Chương 3
Các thao tác với Bảng
1. Khái niệm Bảng
2. Cách tạo Bảng
3. Các kiểu dữ liệu
4. Các thuộc tính Bảng
1
Hiệu chỉnh cấu trúc Bảng
5. Hiệu chỉnh cấu trúc
của Bảng
6. Tạo các quan hệ
giữa các Bảng trong
cùng CSDL
2
Thao tác CSDL
7. Cách nhập dữ liệu
cho Bảng
8. Các thao tác với
Bảng ở chế độ
Datasheet
3
56
https://tophosting.vn/
3.1 Các khái niệm
3.1.1 Khái niệm về bảng trong Access
Bảng (Table): Là thành phần cơ bản, đối tượng chính trong cơ sở dữ
liệu Access.
➢ Đây là đối tượng quan trọng nhất, dùng để lưu trữ dữ liệu, mỗi
bảng lưu trữ thông tin về một đối tượng đang quản lý.
➢ Một bảng gồm có nhiều cột (Fields) và nhiều hàng (Records).
57
https://tophosting.vn/
3.1.1 Khái niệm về bảng trong Access
❑ Cột (Field) : Mỗi field (field hoặc cột) trong một bảng chỉ chứa
một loại dữ liệu duy nhất, nó lưu trữ một thuộc tính của đối
tượng.Trong một bảng phải có ít nhất một field.
❑ Dòng (Record): Là một thể hiện dữ liệu của các field trong bảng.
Trong một bảng có thể có không có record nào hoặc có nhiều
records. Trong một bảng thì dữ liệu trong các record không được
trùng lắp.
Record(Bản ghi)
Field
(Cột)
58
https://tophosting.vn/
3.1.2 Khái niệm Các Khóa trong Bảng
Khóa chính (Primary Key):
➢ Trường khoá có tác dụng phân biệt giá trị các bản ghi trong cùng
một bảng với nhau.
➢ Trường khoá có thể chỉ 01 trường, cũng có thể được tạo từ tập
hợp nhiều trường (gọi bộ trường khoá).
➢ Khi một Field hoặc nhiều field kết hợp
được chỉ định là khóa chính thì
Access sẽ tự động tạo chỉ mục cho
chúng.
➢ Khi nhập dữ liệu, Access sẽ tự động
kiểm tra khóa chính và không cho
phép trùng lắp, và không rỗng.
59
https://tophosting.vn/
3.2 Khái niệm Các Khóa trong Bảng
Khóa phụ (Foreign Key):
➢ Khóa ngoại là một field hay một nhóm các field trong một record
của một bảng, trỏ đến khóa chính của một record khác của một
bảng khác.
➢ Thông thường, khóa ngoại trong một bảng trỏ đến khóa chính
của một bảng khác.
➢ Dữ liệu trong field khóa ngoại phải tồn tại trong field khóa chính
mà nó trỏ tới. Khóa ngoại dùng để tạo quan hệ giữa các bảng
trong cơ sở dữ liệu.
60
https://tophosting.vn/
3.2.1 Tạo bảng bằng chức năng Table Design
3.2 Cách tạo bảng
➢ trên thanh Ribbon
➢ click tab Create, trong nhóm lệnh Table
➢ click nút lệnh Table Design
➢ xuất hiện cửa sổ thiết kế bảng gồm các
thành phần:
➢ Field Name: định nghĩa các trường trong
bảng
➢ Data Type: chọn kiểu dữ liệu để lưu trữ dữ
liệu của Trường tương ứng.
➢ Description: dùng để chú thích ý nghĩa của
trường.
➢ Field Properties: thiết lập các thuộc tính
của trường, gồm có hai nhóm
Bước 1: Trong cửa sổ làm việc của Access
61
https://tophosting.vn/
3.2.1 Tạo bảng bằng chức năng Table Design
➢ Nhập tên field trong cột Field Name ( Tên trường)
➢ Chọn kiểu dữ liệu cho field trong cột Data Type. ( Kiểu dữ liệu)
➢ Chú thích cho field trong cột Description.( Ghi chú thích)
➢ Chỉ định thuộc tính cho trường trong khung Field Properties (Thuộc tính)
➢ Đặt trỏ tại field được chọn làm khóa chính
(hoặc chọn các trường đồng thời làm khóa).
➢ Click nút Primary key trên thanh công cụ
Table (Table Tools), hoặc click phải trên tên
field, chọn lệnh Primary key.
Bước 2: Trong cửa sổ thiết kế, thực hiện các công việc sau:
Bước 3: Xác định khóa chính cho bảng:
62
https://tophosting.vn/
3.2.1 Tạo bảng bằng chức năng Table Design
Bước 4: Lưu bảng vừa tạo bằng cách:
➢ Click vào nút Save trên
thanh Quick Access.
➢ Nhập tên cho bảng trong
hộp thoại Save as như hình
(trong trường hợp Table mới
tạo, chưa đặt tên).
Lưu ý: Nếu bảng chưa được đặt khóa chính thì Access sẽ hiển thị một hộp
thoại thông báo:
➢ Nhấn nút Cancel để trở lại cửa
sổ thiết kế, đặt khoá chính cho
bảng.
➢ Nhấn nút No để lưu mà không
cần đặt khóa chính, có thể đặt
sau.
➢ Nhấn nút Yes để Access tự tạo
khoá chính có tên là ID, kiểu
Autonumber. 63
https://tophosting.vn/
3.2.2 Tạo bảng trong chế độ Datasheet View :
Có thể tạo bảng bằng cách định nghĩa trực tiếp các cột trong chế độ
DataSheet View như sau:
Trong cửa sổ làm việc của Access:
➢ Chọn tab Create trên thanh Ribbon,
trong nhóm lệnh Table
➢ Click nút Table, xuất hiện bảng mới
ở chế độ Datasheet View.
➢ Thanh Ribbon chuyển sang
tab Field với nhóm lệnh Add &
Delete giúp bạn chọn kiểu dữ
liệu cho Field mới khi thêm
Field vào bảng.
➢ Nhập tên cho Field mới.
64
https://tophosting.vn/
3.3 Các kiểu dữ liệu trong Bảng (Data Type)
Trong Access mỗi Field có thể nhận một trong các kiểu dữ liệu sau:
Kiểu dữ liệu Dữ liệu Kích thước
Text Văn bản Tối đa 255
ký tự
Memo Văn bản nhiều dòng Tối đa
65.535 ký tự
Number Kiểu số 1,2,4, 8
byte
Date/Time Ngày tháng 8 byte
Currency Tiền tệ, mặc định $ 8 byte
AutoNumber Số tự động tăng dần 4 byte
Yes/No Kiểu logic, Yes/No; True/False 1 bit
OLE Object Dữ liệu kiểu đối tượng
65
https://tophosting.vn/
3.4 Các thuộc tính của Trường (Field Properties )
3.4.1 Field Size ( kích thước của trường)
➢ Dữ liệu kiểu text: giới hạn kích
thước từ 0- 255 ký tự, mặc định
là 50 ký tự.
➢ Dữ liệu kiểu Memo: giới hạn
kích thước từ 0- 65.535 ký tự.
➢ Đối với kiểu dữ liệu Number:
kiểu Number bao gồm một số
kiểu con, giới hạn kích thước
kiểu Number chính là xác định
kiểu con
Quy định kích thước của field, tuỳ thuộc vào kiểu dữ liệu.
Chỉ có hiệu lực với các Field có kiểu là Text hoặc Number.
66
https://tophosting.vn/
3.4 Các thuộc tính của Trường (Field Properties )
3.4.2 Decimal Places :
Quy định số chữ số thập phân (chỉ sử dụng trong trường hợp số có
dạng single, double).
Đối với kiểu Currency, Fixed, Percent luôn luôn decimal places là 2.
67
https://tophosting.vn/
3.4 Các thuộc tính của Trường (Field Properties )
3.4.3 Format
a. Các ký tự định dạng kiểu dữ liệu Text ( văn bản)
Ký tự định dạng Tác dụng
@ Chuỗi ký tự
> Chuỗi văn bản chữ in hoa
< Chuỗi văn bản chữ thường
‘’Chuỗi ký tự’’ Chuỗi ký tự nằm sau 2 dấu ‘
<ký tự> Ký tự nằm sau dấu 
[Black], [Yellow], [Red] Màu chữ (Màu đen, màu vàng,
đỏ)
[Green], [Blue], [White] Xanh, xanh biển, trắng
Định dạng Dữ liệu nhập Hiển thị
>[Red] Thiên yết THIÊN YẾT
68
https://tophosting.vn/
3.4 Các thuộc tính của Trường (Field Properties )
3.4.3 Format
b. Các ký tự định dạng kiểu dữ liệu Number
Ký tự Tác dụng
General Number Hiển thị đúng như số nhập vào
Currency Có dấu phân cách, thập phân
và ký hiệu tiền tệ
Fixed Giống như định dạng trong máy
tính và số lẻ phụ thuộc vào
phần Decimal ( thập phân)
Standard Giống như Fixed thêm có dấu
phân cách hàng ngàn
Percent Hiển thị phần trắm (%)
Scientific Hiện thị dạng khoa học.
Định dạng Dữ liệu nhập Hiển thị
Currency 235.5 $235.50
69
https://tophosting.vn/
3.4 Các thuộc tính của Trường (Field Properties )
3.4.3 Format
c. Các ký tự định dạng kiểu dữ liệu Số
Ký tự Tác dụng
. (period) Dấu chấm thập phân
.(comma) Dấu chấm ngăn cách
0 Số (0-9)
# Số hoặc khoảng trắng (blank)
$ Dấu $
% Phần trăm
E+E+e+e- Số dạng khoa học
Khoảng trắng (blank) Khoảng trắng
Định dạng Dữ liệu nhập Hiển thị
% 0.02 2%
70
https://tophosting.vn/
3.4 Các thuộc tính của Trường (Field Properties )
3.4.3 Format
d. Các ký tự định dạng kiểu ngày tháng (Data/Time)
Ký tự Hiển thị Ví dụ
General Ngày , giờ 1/08/2014
12:30:45PM
Long Date Thứ , ngày , tháng , năm Friday, 28 Octorber
2014
Medium Date Ngày – tháng – năm 15-03-2014
Short Date Ngày / tháng/ năm 28/10/14
Long time Giờ - phút – giây AM/PM 05:02:35 AM
Medium Time Giờ - phút AM/PM 05:02 AM
Short Time Giờ - phút 15:10
71
https://tophosting.vn/
3.4 Các thuộc tính của Trường (Field Properties )
3.4.3 Format
e. Định dạng dữ liệu kiểu Yes/No
Định dạng Ý nghĩa
Yes/No Đúng / Sai
True/False Đúng / Sai
On/foff Đúng / Sai
➢ Chuỗi ký tự định dạng kiểu yes/no gồm 3 phần: First; Second; Third.
➢ First: bỏ trống, định dạng trong mục này không ảnh hưởng đến dữ
liệu kiểu Yes/No.
➢ Second: field hợp nội dung field mang giá trị đúng.
➢ Third: field hợp nội dung field mang giá trị sai.
72
https://tophosting.vn/
3.4 Các thuộc tính của Trường (Field Properties )
3.4.4 Input Mask ( mặt nạ nhập dữ liệu)
Quy định khuôn định dạng dữ liệu. Người sử dụng khi nhập dữ liệu vào
bảng bắt buộc phải tuân theo đúng định dạng đó.
Quy định khuôn định dạng dữ liệu. Người sử dụng khi nhập dữ liệu vào
bảng bắt buộc phải tuân theo đúng định dạng đó.
Những field cùng lúc qui định thuộc tính Format và Input Mask,
Access sẽ hiển thị theo dạng qui định trong Format khi hiển thị
dữ liệu. Tuy nhiên nếu điều chỉnh dữ liệu thông qua biểu mẫu,
Access dùng dạng thức qui định trong Input Mask.
Các ký tự dùng định dạng trong Input Mask.
73
https://tophosting.vn/
3.4 Các thuộc tính của Trường (Field Properties )
3.4.4 Input Mask ( mặt nạ nhập dữ liệu)
Các ký tự dùng định dạng trong Input Mask.
Ký tự Ý nghĩa
0 Vị trí bắt buộc nhập, nhập các số 0-9 cho phép
nhập dấu
9 nhập các số 0-9 cho phép nhập dấu
# Vị trí không bắt buộc nhập, Nhập số 0-9,
khoảng trắng, +,-
L Bắt buộc nhập ký tự chữ A-Z
? Không bắt buộc nhập, ký tự chữ và số
A Bắt buộc nhập các ký tự chữ và số
a Không bắt nhập các ký tự chữ và số
& bắt buộc nhập, ký tự bất kỳ hoặc khoảng trắng
C Không bắt buộc nhập nhập ký tự bất kỳ hoặc
khoảng trắng74
https://tophosting.vn/
3.4 Các thuộc tính của Trường (Field Properties )
3.4.5 Validation rule (Quy tắc hợp lệ) :
➢ Kiểm tra tính hợp lệ của dữ liệu khi nhập liệu. Nếu dữ liệu không
thỏa điều kiện cho trước, Access xuất hiện trên màn hình một
thông báo chứa dòng văn bản quy định ở Validation text.
➢ Trong Validation Rule có các phép toán sau:
➢ Phép toán so sánh: > , < , >=, <=, =, < >
➢ Phép toán quan hệ: OR; AND; NOT
➢ Phép toán về chuỗi: toán tử Like (giống như).Có thể sử dụng toán
tử Like kèm với các ký tự thay thế như:
Dấu *: thay thế tất cả các ký tự.
Dấu #: thay thế các ký tự số.
Dấu ?: thay thế ký tự tại vị trí có dấu ?.
75
https://tophosting.vn/
3.4 Các thuộc tính của Trường (Field Properties )
3.4.6 Validation text (Thông báo lỗi) :
➢ Chuỗi thông báo xuất hiện khi dữ liệu nhập vào không thoả
điều kiện của Validation Rule, chuỗi trong validation text có độ
dài tối đa 255 ký tự.
76
https://tophosting.vn/
3.4 Các thuộc tính của Trường (Field Properties )
3.4.7 Caption: Tiêu đề
➢ Qui định nhãn là một chuỗi ký tự xuất hiện tại dòng tên field. Chuỗi
này cũng xuất hiện tại tiêu đề của các điều khiển trong các biểu mẫu
hoặc báo cáo.
➢ Nếu giá trị này bỏ trống thì Access sẽ lấy tên field làm tiêu đề.
3.4.8 Default value: giá trị ngầm định
➢ Quy định giá trị mặc nhiên cho cột.
➢ Access sẽ tự động gán giá trị này vào khi thêm mẩu tin mới.
➢ Người sử dụng có thể gán một biểu thức cho thuộc tính này
3.4.9 Required: Yêu cầu
➢ Có yêu cầu bắt buộc nhập dữ liệu cho một field hay có thể để trống
77
https://tophosting.vn/
3.4 Các thuộc tính của Trường (Field Properties )
3.4.10 AllowZeroLength: trường trống
Quy định field có kiểu Text hay Memo có thể có (yes) hoặc không có
(no) chuỗi có độ dài Zero. Nếu field là field khoá thì thuộc tính này là No.
Chú ý:
➢ Cần phân biệt field có giá trị null (trống chưa có dữ liệu) và một field
chứa chuỗi có độ dài là zero (đó là chuỗi "").
➢ Khi hiển thị ra màn hình cả hai có hình thức giống nhau.
3.4.11 Index ( Chỉ mục, sắp xếp)
➢ Nếu chọn No thì không sắp xếp dữ liệu.
➢ Nếu chọn Yes (No Duplicates) thì tạo chỉ mục (sắp xếp) trên field và
không cho phép các giá trị trùng nhau.
➢ Nếu chọn Yes (Duplicates Yes) thì tạo chỉ mục (sắp xếp) trên field và
cho phép các giá trị trùng nhau.
Quy định thuộc tính Index để tạo chỉ mục đơn (chỉ mục trên một field).
78
https://tophosting.vn/
3.5 Hiệu chỉnh cấu trúc Bảng
Thêm, sửa, thay đổi trường dữ liệu
➢ Mở bảng ở chế độ thiết kế (Design View)
bằng cách: Trong cửa sổ Database, chọn
bảng muốn thay đổi cấu trúc, click phải,
chọn Design View.
➢ Thanh Ribbon chuyển sang Tab Design gồm
các công cụ cho phép hiệu chỉnh cấu trúc
của bảng.
➢ Insert Rows: chèn thêm một field trên field
hiện hành.
➢ Delete Rows: xóa các field được đánh dấu
chọn
Di chuyển field: Click chọn tên field muốn di chuyển, drag chuột
vào tên field, di chuyển đến vị trí mới.
79
https://tophosting.vn/
Quan hệ 1-1 (một-một)
➢ mỗi record của bảng thứ 1 sẽ
liên kết với một record của
bảng thứ 2
3.6.1 Các loại mối quan hệ:
3.6 Tạo quan hệ giữa các bảng trong cơ sở dữ liệu
➢ Bảng Nhan Vien và Luong
được liên kết qua MANV
➢ Những bảng có mối quan
hệ 1 -1 ta có thể gộp các
trường vào làm một bảng
80
https://tophosting.vn/
Quan hệ 1-n: mỗi record của
bảng 1 sẽ liên kết với một hoặc
nhiều record của bảng n, ngược lại
một record của bảng n chỉ liên kết
với duy nhất một record trong
bảng 1.
3.6.1 Các loại mối quan hệ:
Quan hệ 1-n (một-nhiều)
81
https://tophosting.vn/
Tại cửa sổ làm việc của Access, chọn tab Database Tools trên thanh
Ribbon, click nút Relationships.
➢ Nếu là lần đầu tiên (CSDL
chưa có quan hệ) thì hộp
thoại Show Tables sẽ
xuất hiện.
➢ Nếu không có cửa sổ Show Table thì
Click nút Show Table trên thanh Ribbon.
➢ Tab Tables: hiển thị tất cả các bảng
trong cơ sở dữ liệu
➢ Tab Queries: hiển thị các truy vấn đã tạo
trong cơ sơ dữ liệu
➢ Tab Both: hiển thị tất cả Table và Query.
3.6.2 Cách tạo mối quan hệ
82
https://tophosting.vn/
➢ Chọn bảng hoặc Query cần thiết lập quan hệ, click Add.
➢ Click nút Close đóng cửa sổ Show Table.
➢ Cửa sổ RelationShips chứa các bảng muốn thiết lập quan hệ.
➢ Drag chuột kéo field quan hệ
từ bảng này sang bảng kia.
➢ (vd: Kéo field MaNV từ bảng
NHANVIEN sang MaNV của
bảng HOADON).
➢ Xuất hiện cửa sổ Edit
RelationShips với các tùy
chọn:
3.6.2 Cách tạo mối quan hệ
83
https://tophosting.vn/
➢ Nếu vi phạm các nguyên tắc trên thì Access sẽ không nhận dữ
liệu và thông báo lỗi.
Enforce Referential Integrity nếu muốn quan hệ có tính ràng buộc toàn
vẹn. Quan hệ có tính ràng buộc toàn vẹn sẽ đảm bảo các vấn đề sau:
➢ Khi nhập dữ liệu, dữ liệu của field tham gia quan hệ ở bảng
"nhiều" (bảng con) phải tồn tại trong bảng "một" (bảng cha).
Ví dụ: muốn nhập một sinh viên cho bảng KETQUA thì MaSV đó
phải tồn tại trong bảng SINHVIEN.
➢ Không thể xóa những mẩu tin trong bảng "một" khi những mẩu
tin trong bảng "nhiều" có quan hệ với mẩu tin bên "một".
3.6.2 Cách tạo mối quan hệ
84
https://tophosting.vn/
Muốn xóa quan hệ giữa 2 bảng, ta Click phải mối quan hệ muốn xóa,
chọn Delete, hoặc chọn mối quan hệ và nhấn phím Delete.
Lưu ý:
➢ Nếu nhập dữ liệu trước khi tạo quan hệ thì khi nhập liệu ta
có thể nhập dữ liệu cho các bảng theo trình tự tùy ý.
➢ Ngược lại, nếu tạo quan hệ trước, nhập liệu sau thì khi
nhập liệu ta phải nhập bảng 1 (bảng cha) trước và bảng n
(bảng con) sau.
3.6.3 Cách xóa mối quan hệ
85
https://tophosting.vn/
3.7 Cách nhập dữ liệu cho Bảng
Để nhập dữ liệu cho bảng, trước hết phải mở bảng ở chế độ
Datasheet View
Trong cửa sổ Database chọn Object Table → chọn bảng
muốn nhập hoặc sửa dữ liệu → click phải chọn Open. Hoặc
double click vào tên bảng muốn mở.
➢ Bảng được mở ở chế độ nhập liệu (Chế độ Data Sheet view).
➢ Mặc định, luôn có một dòng rỗng để nhập record mới ở cuối
bảng
➢ Khi nhập dữ liệu phải nhập theo từng Record, dữ liệu nhập vào
phải thỏa mãn các thuộc tính của bảng và thuộc tính của field
khi thiết kế bảng. Nếu dữ liệu không thỏa mãn thì Access sẽ
thông báo lỗi.
86
https://tophosting.vn/
3.7 Cách nhập dữ liệu cho Bảng
Đối với field có kiểu dữ liệu OLE object:
➢ Tại vị trí nhập, click chuột phải,
➢ Chọn Insert – Object.
➢ Chọn Create New nếu muốn tạo đối tượng mới.
➢ Chọn Create from file nếu muốn lấy đối tượng từ tập tin trên đĩa
(thường là hình ảnh) chọn file cần sử dụng.
87
https://tophosting.vn/
3.8 Các thao tác với bảng ở chế độ Datasheet view:
Thay đổi font chữ:
➢ Trên thanh Ribbon chọn tab Home.
➢ Trong nhóm lệnh Text Formatting, chọn
font chữ cho Table và các định dạng khác.
3.8.1 Một số định dạng trong chế độ Database View :
Click nút trên nhóm Text Formatting ->
cửa sổ Datasheet Formatting cho phép
bạn hiệu chỉnh các thuộc tính của
Datasheet như màu nền, màu lưới.
88
https://tophosting.vn/
Thay đổi độ rộng cột:
Để thay đổi độ rộng của cột ta có thể sử dụng một trong các cách
sau:
3.8.1 Một số định dạng trong chế độ Database View :
Cách 1: đặt trỏ ở đường biên bên phải
của cột, khi trỏ có dạng mũi tên 2 chiều
thì drag chuột để thay đổi độ rộng của
cột.
Cách 2: Click phải trên tên của cột
muốn thay đôi độ rộng và chọn Field
width. Nhập kích thước của cột vào ô
Column Width.
89
https://tophosting.vn/
Thay đổi vị trí cột:
Click vào tiêu đề cột. Drag để thay đổi vị trí cột (chuột vẫn đang ở
tại tiêu đề cột).
3.8.1 Một số định dạng trong chế độ Database View :
Che dấu (Hide column) và hiển
thị (Unhide column) cột:
➢ Chọn cột muốn ẩn.
➢ Trên thanh Ribbon, trong nhóm
lệnh Records, click nút More,
chọn lệnh Hide fields.
➢ Muốn hiển thị tại cột bị ẩn, ta
làm tương tự như thao tác ẩn
cột, nhưng trong menu lệnh của
nút Moreta chọn lệnh Unhide
fields. 90
https://tophosting.vn/
Cố định và bỏ cố định cột:
3.8.1 Một số định dạng trong chế độ Database View :
➢ Chọn cột cần cố định.
➢ Trên thanh Ribbon, trong
nhóm lệnh Records, click
nút More, chọn lệnh Freeze
Fields.
➢ Ngược lại, muốn bỏ cố định
cột ta chọn lệnh UnFreeze
All Fields
91
https://tophosting.vn/
Thay đổi chiều cao dòng:
3.8.1 Một số định dạng trong chế độ Database View :
➢ Đặt con trỏ vào đường biên của dòng sao cho xuất hiện
mũi tên 2 chiều, Drag để thay đổi chiều cao của dòng.
92
https://tophosting.vn/
Sắp xếp theo một field :
3.8.2 Sắp xếp ( Sort):
➢ Đặt trỏ tại field chứa dữ liệu cần sắp
xếp.
➢ Click nút sort Ascending (sắp xếp tăng
dần)/ Sort Descending (sắp xếp giảm
Sắp xếp theo nhiều fields :
➢ Để sắp xếp theo nhiều field, trong nhóm lệnh sort & Filter trên
thanh Ribbon, click nút lệnh Advanced filter options
93
https://tophosting.vn/
3.8.2 Sắp xếp (Sort)
➢ Chọn lệnh → Advanced Filter/Sort.
➢ Xuất hiện cửa sổ Filter → Double click chọn các field chứa dữ liệu
cần sắp xếp, thứ tự ưu tiên từ trái sang phải.
➢ Ở mục Sort → chọn kiểu sắp xếp.
➢ Để thực hiện sắp xếp ta chọn lệnh Apply Filter/Sort.
94
https://tophosting.vn/
3.8.3 Tìm kiếm và Thay thế
a. Tìm kiếm (Find)
Để tìm một giá trị trong bảng ta click nút Find trong nhóm lệnh
Find trên thanh Ribbon.
Xuất hiện cửa sổ Find and Replace.
95
https://tophosting.vn/
3.8.3 Tìm kiếm và Thay thế
a. Tìm kiếm (Find)
➢ Find What: Nhập giá trị cần tìm.
➢ Look In: Phạm vi tìm kiếm.
➢ Kiểu so trùng giá trị cần tìm với giá trị trong ô.
➢ Search: hướng tìm.
➢ Match Case: Tìm phân biệt chữ hoa và chữ thường.
➢ Click nút Find Next để thực hiện tìm kiếm, nếu tìm hết
access sẽ cho xuất hiện hộp thông báo hoàn tất việc tìm kiếm.
96
https://tophosting.vn/
3.8.3 Tìm kiếm và Thay thế
b. Thay thế (Replace)
➢ Trong cửa sổ Find and Replace, nếu muốn thay thế các giá trị
được tìm thấy bằng một giá trị khác ta chọn tab Replace
➢ Replace With: Nhập giá trị cần thay thế.
➢ Click nút Replace để thay thế giá trị được tìm thấy hiện tại.
➢ Click nút Replace All để thay thế toàn bộ các giá trị được
tìm thấy.
97
https://tophosting.vn/
3.8.4 Lọc dữ liệu ( Filter)
a. Filter by selection :
Filter by selection giúp bạn chọn ra những Record dựa trên
một giá trị hiện hành. Cách thực hiện:
Đặt trỏ tại field chứa giá trị lọc, chọn giá trị làm điều kiện lọc.
Click nút lệnh Seletion trong nhóm lệnh Sort & Filter trên thanh
Ribbon:
➢ Equals …: lọc các records có giá trị bằng với giá trị được
chọn.
➢ Does Not Equal…: lọc các records có giá trị khác với giá trị
được chọn.
➢ Contains …: lọc các records chứa giá trị được chọn.
➢ Does Not Contains …: lọc các records không chứa giá trị
được chọn.
98
https://tophosting.vn/
3.8.4 Lọc dữ liệu ( Filter)
a. Filter by selection :
➢ Ngoài ra, cũng có thể lọc bằng cách click nút công cụ Selection
button bên phải tên field.
➢ Đánh dấu check vào giá trị làm điều kiện lọc.
➢ Click OK.
99
https://tophosting.vn/
3.8.4 Lọc dữ liệu ( Filter)
b. Filter by form :
➢ Filter by form giúp bạn lọc bằng cách nhập giá trị lọc vào một
dòng trên Datasheet
➢ Click nút Advanced trong nhóm lệnh
Sort & Filter, chọn lệnh Filter By Form.
➢ Chuyển dạng Datasheet của bảng thành
một dòng trống, và xuất hiện các
nút Dropdown list trên mỗi field cho
phép chọn giá trị lọc.
➢ Nếu lọc theo nhiều giá trị thì click
tab Or và chọn giá trị làm điều kiện lọc
tiếp theo.
➢ Click nút Toggle Filter để thực hiện
lọc. 100
https://tophosting.vn/
3.8.4 Lọc dữ liệu ( Filter)
b. Advanced filter :
➢ Chức năng Advanced filter cho phép lọc với nhiều điều kiện ở
nhiều field khác nhau.
➢ Click nút Advanced, chọn lệnh Advanced filter/Sort, xuất hiện
cửa sổ Filter, với các dòng:
➢ Field: Nhập tên các field chứa điều kiện lọc.
➢ Sort: Chọn kiểu sắp xếp (nếu có yêu cầu).
➢ Criteria: Nhập điều kiện lọc. Nếu các điều kiện lọc ở các field bắt
➢ buộc thỏa mãn đồng thời (và) thì các điều kiện phải được nhập
trên cùng một dòng. Nếu các điều kiện không thỏa mãn đồng
thời (hoặc) thì nhập trên khác dòng.
101
https://tophosting.vn/
TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
102
Query – Truy vấn trong Access
Chương 4
1
• Đặt vấn đề
2
• Cách tạo Select Query bằng Design View
3
• Total Query
4
• Queries tham số (Parameter Queries)
5
• Crosstab query
6
• Action query
https://tophosting.vn/
4.1 Khái Niệm
Query là các câu lệnh SQL (Structured Query Language - ngôn ngữ truy
vấn mang tính cấu trúc) là một loại ngôn ngữ phổ biến để tạo, hiệu
chỉnh, và truy vấn dữ liệu từ một cơ sở dữ liệu quan hệ.
Query – Truy vấn trong Access
Chương 4
103
https://tophosting.vn/
• Là truy vấn lựa chọn thông tin từ một hoặc nhiều bảng.
Select
query
• Là một loại đặc biệt của truy vấn chọn. Thực hiện chức
năng tổng hợp dữ liệu trên một nhóm các record.
Total
query
• Là loại query có thể hiển thị dữ liệu dưới dạng tóm tắt
như một bảng tính, với các tiêu đề hàng và tiêu đề cột
dựa trên các field trong bảng
Crosstab
query
• Top (n) cho phép bạn chỉ định một số hoặc tỷ lệ phần
trăm của record mà bạn muốn trả về từ bất kỳ loại truy
vấn khác (select query, total query, …).
Top (n)
query
• Gồm các loại query như Make-Table, Delete, Update,
Append cho phép bạn tạo ra các bảng mới hoặc thay đổi
dữ liệu trong các bảng hiện có của cơ sở dữ liệu
Action
query
4.2 Các loại Query
104
https://tophosting.vn/
4.3 Cách tạo select query bằng Design View
Để tạo query bạn chọn tab Create trên thanh Ribbon, click nút query
Design trong nhóm lệnh Queries.
Xuất hiện cửa sổ thiết kế query và
cửa sổ Show table cho phép chọn các
bảng hoặc query tham gia truy vấn.
105
https://tophosting.vn/
➢Chọn các bảng chứa các field mà bạn muốn hiển thị trong kết quả, hoặc các field cần
trong các biểu thức tính toán.
➢ Click nút Add để thêm các bảng vào cửa sổ thiết kế query
➢ Sau khi chọn đủ các bảng hoặc query cần thiết, click nút close để đóng cửa sổ Show
Table.
➢ Chọn các field cần hiển thị trong kết quả vào lưới thiết kế bằng cách drag chuột kéo
tên field trong field list hoặc double click vào tên field.
➢ Nhập điều kiện lọc tại dòng Criteria.
➢ Click nút View để xem trước kết quả, click nút run để thực thi.
106
https://tophosting.vn/
4.3.1 Các thành phần trong cửa sổ thiết kế Query
- Table/query pane: khung chứa các bảng hoặc query tham gia truy
vấn.
- Lưới thiết kế (Query by Example - QBE) : Chứa tên field tham gia
vào truy vấn và bất kỳ tiêu chuẩn được sử dụng để chọn các records. Mỗi
cột trong lưới QBE chứa thông tin về một field duy nhất từ một bảng
hoặc query trên Table/query pane, bao gồm:
Field: field được tạo vào hoặc thêm
vào và hiển thị trong kết quả truy vấn.
Table: tên của các bảng chứa các
field tương ứng trên dòng Field.
Sort: chỉ định kiểu sắp xếp dữ liệu
của các field trong query.
Show: quyết định để hiển thị các
field trong Recordset.
Criteria: Nhập các điều kiện lọc các
record.
Or: thêm các điều kiện lọc tương ứng
với phép OR, nếu các biểu thức điều
kiện ở các field cùng đặt trên một dòng
thì tương ứng với AND.
107
https://tophosting.vn/
4.3.2 Cách nhập biểu thức điều kiện
➢ Biểu thức điều kiện là các quy tắc lọc áp dụng cho dữ liệu khi chúng được
chiết xuất từ cơ sở dữ liệu, nhằm giới hạn các record trả về của truy vấn.
Ví dụ: người dùng chỉ muốm xem thông tin về các NHANVIEN tên là Nga
➢ Biểu thức điều kiện được nhập trên dòng Criteria và dòng Or của lưới thiết
kế query và tại cột chứa giá trị của biểu thức điều kiện lọc.
Ví dụ: Chuỗi điều kiện "Nga" là giá trị trong field TenNV, do đó chuỗi
"Nga" được nhập trên dòng Critetia tại cột TenVN.
108
https://tophosting.vn/
Cách nhập biểu thức điều kiện
➢ Các loại dữ liệu dates, times, text, và giá trị trong biểu thức điều kiện:
➢ Toán tử được sử dụng trong biểu thức điều kiện:
➢ Ngoài ra các hàm ngày giờ, hàm dữ liệu chuỗi,… cũng được
sử dụng trong biểu thức điều kiện
109
https://tophosting.vn/
4.3.3 Truy vấn có nhiều điều kiện ở nhiều fields
➢ Khi bạn muốn giới hạn các records dựa trên nhiều điều kiện ở nhiều field
khác nhau, thì Access sẽ kết hợp các điều kiện lại với nhau bằng cách sử
dụng toán tử And và Or, cho hai trường hợp:
➢ Nếu các điều kiện phải được thoả mãn đồng thời thì các điều kiện phải được
liên kết nhau bởi phép AND, bằng cách nhập các điều kiện trên cùng một
dòng Criteria trong lưới thiết kế query.
110
Ví dụ:
Ví dụ: Hãy đưa ra các
nhân viên tên Nga lập
hoá đơn Xuất:
https://tophosting.vn/
➢ Nếu chỉ cần thỏa mãn một trong các điều kiện thì các điều kiện được liên
kết nhau bởi phép OR, bằng cách nhập các điều kiện trên các dòng khác
nhau trong lưới thiết kế query.
111
https://tophosting.vn/
4.3.4 Top value
➢ Chức năng top value được sử dụng để hiển thị những record trên cùng
của danh sách được tạo ra bởi một truy vấn
➢ Thực hiện :
❑ Descending : Chiều giảm dần
❑ Ascending : Chiều tăng dần
❑ Return: nhập vào số giá trị muốn hiển thị
➢ Các tùy chọn trong Top Values
❑ All : Hiển thị tất cả các record của Query.
❑ 5, 25, 100… : Hiển thị 5,25,100… record đầu tiên.
❑ 5%, 25%... : Hiển thị 5%, 25% record đầu tiên trên tổng số.
➢ Nếu các record thuộc Top Values có giá trị trùng nhau thì chúng cũng
xuất hiện trong kết quả.
➢ Nếu muốn chỉ xuất hiện duy nhất một record trong các record có giá trị
trùng nhau ta click phải trong cửa sổ thiết kế query → chọn properties,
tại thuộc tính Unique Values → chọn yes.
112
https://tophosting.vn/
4.3.5 Tạo Field tính toán trong Query
Để làm được các phép tính trong một truy vấn, bạn tạo một field tính toán
mới trong query. Tên của field tính toán không trùng với tên của các field
trong bảng.
Cú pháp:
Ví dụ: Tạo Field
ThanhTien:[SoLuong]*[GiaBan]
113
https://tophosting.vn/
➢Access cung cấp chức năng kết nhóm các record và thực hiện các phép thống kê dữ
liệu trên nhóm record đó. Các hàm count, sum, min, max, avg là các hàm cơ bản
trong Total Query.
➢Ví dụ: Thông tin bao gồm MaSp, TenSp TongSoLuong. Trong đó TongSoLuong là sum
của Soluong, kết nhóm theo Masp.
4.4 Total Query
114
https://tophosting.vn/
Sau khi tổng hợp dữ liệu ta có kết quả:
* Kết quả của query trước khi tổng hợp dữ liệu
115
https://tophosting.vn/
Để tạo một Total query, bạn thực hiện các bước sau:
➢Tạo một query mới bằng Design view.
➢Chọn các table cần sử dụng trong query từ cửa sổ Show Table.
➢Chọn các field chứa dữ liệu cần thống kê vào lưới thiết kế.
➢Chọn Query Tools, chọn tab Design.
4.4.1 Cách tạo Total Query
116
https://tophosting.vn/
➢Trong nhóm lệnh Show/Hide, click nút Totals.
➢Trên lưới thiết kế query xuất hiện thêm dòng Total.
➢Tại mỗi field, chọn các tùy chọn trên dòng Total.
117
https://tophosting.vn/
4.4.2 Các tùy chọn trên dòng Total
118
Tùy Chọn Ý Nghĩa
Group by Nhóm các Record có giá trị giống nhau tại 1 số field được chỉ định
thành 1 nhóm
SUM Tính tổng các giá trị trong một nhóm Record tại field được chỉ định
AVG Tính trung bình cộng các giá trị trong một nhóm Record tại field
được chỉ định
MAX Tìm giá trị lớn nhất trong nhóm Record tại field được chỉ định
MIN Tìm giá trị nhỏ nhất trong nhóm Record tại field được chỉ định
COUNT Đếm số Record trong nhóm
FIRST Tìm giá trị đầu tiên trong nhóm tại cột được chỉ định
LAST Tìm giá trị cuối cùng trong nhóm tại cột được chỉ định
Expression Dùng cho Field chứa biểu thức tính toán
Where Dùng cho Field chứa điều kiện để lọc
Record trước khi tính toán và không hiển thị trong kết quả
https://tophosting.vn/
Query tham số là query nhắc người dùng nhập điều kiện cho query tại
thời điểm query thực thi.
Cách tạo:
➢Trong cửa sổ thiết kế query, chọn các bảng/query tham gia truy vấn.
➢Chọn các field hiển thị trong kết quả .
➢Tại field chứa điều kiện lọc, nhập câu nhắc trên dòng Critetia và đặt
trong cặp dấu [ ].
4.5 Queries tham số (Parameter Queries)
119
https://tophosting.vn/
- Khi thực thi query, chương trình yêu cầu nhập giá trị
120
https://tophosting.vn/
4.6.1 Khái niệm :
Crosstab query là một query dùng để tổng hợp dữ liệu dưới dạng bảng tính
hai chiều, trong đó tiêu đề của dòng và cột của bảng là các giá trị được kết
nhóm từ các field trong bảng dữ liệu, phần thân của bảng tính là dữ liệu được
thống kê bởi các hàm: Sum, count, avg, min, max, và các chức năng khác.
4.6 Crosstab Query
➢ Ví dụ: Thống kê tổng số lượng sản phẩm mỗi khách hàng đã bán
121
https://tophosting.vn/
a) Tạo Crosstab query bằng chức năng Wizard:
- Trên thanh Ribbon, click nút Create.
- Trong nhóm lệnh Query, chọn Query Wizard.
- Trong cửa sổ New Query, chọn Crosstab Query Wizard → OK.
4.6.2 Cách tạo
122
https://tophosting.vn/
- Chọn dữ liệu nguồn cho Crosstab Query, có thể là table hoặc Query → Next.
123
https://tophosting.vn/
- Chọn field làm Row heading trong khung Available Fields
- Click nút > để chọn field.
- Click Next.
124
https://tophosting.vn/
- Chọn field làm column heading → Next.
125
https://tophosting.vn/
- Chọn field chứa dữ liệu thống kê trong khung Fields.
- Chọn hàm thống kê trong khung Function → Next.
- Nhập tên cho query và click nút Finish để kết thúc.
126
Hạn chế khi tạo crosstab query bằng wizard:
Nếu các field trong Crosstab query được lấy từ nhiều bảng hoặc trong query
có chứa các điều kiện lọc dữ liệu thì phải tạo một select query chứa tất cả
các field và các điều kiện, sau đó lấy select query này làm dữ liệu nguồn tạo
crosstab query. https://tophosting.vn/
b) Tạo Crosstab query bằng Design
Một crosstab query cần ít nhất là 3 field:
➢Một field để lấy giá trị làm tiêu đề cho cột gọi là column heading.
➢Một field (hoặc nhiều field) để lấy giá trị làm tiêu đề cho dòng gọi là row
heading.
➢Một field chứa dữ liệu thống kê (Value).
Ví dụ:
127
https://tophosting.vn/
- Để tạo một Crosstab query bằng Design View ta thực hiện như sau:
- Trong cửa sổ thiết kế Query, trên thanh Ribbon, chọn Query Tools, chọn
Tab Design.
- Trong nhóm lệnh Query Type, chọn Crosstab.
128
https://tophosting.vn/
- Trong lưới thiết kế query xuất hiện thêm dòng Crosstab và dòng Total.
129
https://tophosting.vn/
❖Chỉ định chức năng cho các field:
➢Đối với các field làm row heading và column heading thì trên dòng
Total ta chọn chức năng Group by, trên dòng Crosstab, chỉ định chức
năng Row Heading hoặc Column Heading.
➢Đối với field chứa dữ liệu để thống kê thì trên dòng Total, chọn hàm
thống kê (Sum, Avg, Count, Min, Max, …), trên dòng Crosstab
chọn Value.
➢Đối với các field chứa điều kiện lọc dữ liệu thì trên dòng Total
chọn Where, các field này sẽ không xuất hiện trong kết quả.
Lưu ý:
Row Heading và Column Heading có thể hoán đổi nhau, nhưng đối với những
field chứa nhiều giá trị thì nên chọn làm Row Heading.
130
https://tophosting.vn/
4.7.1. Find Duplicate query :
Find Duplicate query Wizard dùng để tìm những record có giá trị trùng lắp ở
một số field. Ví dụ, tìm những nhân viên có trùng ngày sinh, trùng tên, …
Cách tạo:
➢Trong cửa sổ làm việc của Access, trên thanh Ribbon, chọn tab Create.
➢Trong nhóm lệnh Queries click nút Query Wizard.
4.7 Các loại Query tạo bằng chức năng Wizard
131
https://tophosting.vn/
- Trong cửa sổ New Query chọn Find Duplicate query Wizard.
- Xuất hiện cửa sổ Find Duplicates query wizard → OK.
- Chọn bảng chứa field muốn tìm dữ liệu trùng lắp → Next.
- Chọn field chứa dữ liệu trùng lắp → Next.
- Chọn các field muốn hiển thị trong kết quả → Next.
- Nhập tên cho query → Finish.
132
https://tophosting.vn/
4.7.2. Find Unmatched query Wizard :
➢Trong quan hệ 1-n, một record trong bảng 1 quan hệ với nhiều record
trong bảng n. Tuy nhiên cũng có những record không quan hệ với bất kỳ
record nào trong bảng n.
Ví dụ, những nhân viên chưa tham gia lập hóa đơn, những nhân viên
này tồn tại trong bảng NHANVIEN, nhưng không tồn tại trong bảng
HOADON.
➢Find Unmatched query Wizard dùng để tìm những record có trong bảng 1
nhưng không có trong bảng n
133
https://tophosting.vn/
Cách tạo:
➢Trong cửa sổ làm việc của Access, trên thanh Ribbon, chọn
tab Create.
➢Trong nhóm lệnh Queries click nút Query Wizard.
➢Trong cửa sổ New Query chọn Find Unmatched query Wizard
→ OK.
❖Xuất hiện cửa sổ Find Unmatched query wizard.
➢Chọn bảng 1 là bảng chứa các record cần tìm → Next.
➢Chọn bảng n là bảng chứa record quan hệ → Next.
134
https://tophosting.vn/
Ví dụ: tìm những nhân viên chưa lập hóa đơn, bảng 1 là bảng NHANVIEN,
bảng n là bảng HOADON, field quan hệ là field MANV.
- Chọn field quan hệ giữa hai bảng → Next.
- Chọn các field hiển thị trong kết quả → Next.
- Nhập tên cho query → Finish.
135
https://tophosting.vn/
Action query là loại query mà khi thực thi sẽ làm thay đổi dữ liệu trong các
bảng của cơ sở dữ liệu, sự thay đổi có thể làm cho cơ sở dữ liệu bị sai, do đó
trước khi thực thi các loại action query bạn nên chép một file dự phòng.
Có 4 loại action query:
4.8 Action Query
136
https://tophosting.vn/
a) Chức năng
Update query dùng để cập nhật dữ liệu trong các bảng.
b) Cách tạo
- Trong cửa sổ làm việc của Access, trên thanh Ribbon chọn tab Create, trong
nhóm lệnh Queries, click nút Query Design.
- Chọn các bảng chứa dữ liệu muốn cập nhật.
4.8.1 Update Query
137
https://tophosting.vn/
- Thanh Ribbon chuyển sang tab Design.
- Trong nhóm lệnh Query Type, Click nút Update, Trong lưới thiết kế xuất
hiện dòng Update to.
- Chọn field chứa dữ liệu cần cập nhật và các field chứa điều kiện.
- Tại field chứa dữ liệu muốn cập nhật và trên dòng Update to ta nhập biểu
thức cập nhật dữ liệu.
138
https://tophosting.vn/
c) Thực thi Update Query:
- Click nút run để thực thi query.
- Khi thực thi query sẽ xuất hiện hộp thoại thông báo số record được Update.
- Nếu đồng ý → click yes.
- Xem kết quả trong bảng chứa dữ liệu Update.
139
https://tophosting.vn/
a) Chức năng
Make-Table dùng để tạo một bảng mới dựa trên các bảng hoặc query có sẵn.
b) Cách tạo
Trong cửa sổ làm việc của Access, trên thanh Ribbon chọn tab Create, trong
nhóm lệnh Queries, click nút Query Design.
- Chọn các bảng hoặc query làm dữ liệu nguồn cho MakeTable. Thanh Ribbon
chuyển sang tab Design.
- Chọn các field muốn hiển thị trong bảng mới.
- Trong nhóm lệnh Query Type, click nút Make - Table.
4.8.2 Make-Table Query
140
https://tophosting.vn/
➢Xuất hiện hộp thoại Make Table với các tùy chọn:
Table name: Nhập tên bảng mới.
CurrentDatabase: Bảng mới được lưu trong cơ sở dữ liệu hiện hành.
Another Database: Bảng mới được lưu trong một cơ sở dữ liệu khác,
click nút browse để tìm cơ sở dữ liệu chứa bảng mới.
➢Click nút OK để tạo Make-Table.
141
https://tophosting.vn/
c) Thực thi Make-Table Query
- Click nút Run để thực thi query, xuất hiện hộp thông báo số record được
đưa vào bảng mới.
- Nếu đồng ý → Click yes, khi đó bảng mới sẽ được tạo, xem kết quả
trong phần Table.
142
https://tophosting.vn/
8.3. Append query :
a) Chức năng
Append query dùng để nối dữ liệu vào cuối một bảng có sẵn.
b) Cách tạo
Trong cửa sổ làm việc của Access, trên thanh Ribbon chọn tab Create, trong
nhóm lệnh Queries, click nút Query Design.
- Chọn các bảng hoặc query làm dữ liệu nguồn cho Append Query. Thanh
Ribbon chuyển sang tab Design.
- Chọn các field chứa dữ liệu nối vào bảng có sẵn, các field được chọn phải
tương ứng với các field trong bảng muốn nối dữ liệu vào.
- Click nút Append trong nhóm lệnh Query Type.
4.8.3 Append Query
143
https://tophosting.vn/
- Xuất hiện hộp thoại Append → Chọn bảng muốn nối dữ liệu vào.
- Trong lưới thiết kế xuất hiện dòng Append to, chứa tên các field tương
ứng trong bảng có sẵn.
144
https://tophosting.vn/
c) Thực thi Append query
- Click nút run để thực thi query.
- Xuất hiện hộp thông báo số record được nối vào.
- Nếu đồng ý → click yes, xem kết quả trong phần Table.
145
https://tophosting.vn/
a) Chức năng:
Delete query xóa các record từ các bảng, thông thường dựa trên các điều kiện
mà bạn cung cấp, Delete query xóa tất cả các record trong một bảng trong
khi vẫn giữ nguyên cấu trúc của bảng.
Delete Query là nguy hiểm vì nó xóa vĩnh viễn dữ liệu từ các bảng trong cơ sở
dữ liệu của bạn, do đó trước khi thực thi loại query này cần phải có một
backup.
4.8.4 Delete Query
146
https://tophosting.vn/
b) Cách tạo:
Trong cửa sổ làm việc của Access, trên thanh Ribbon chọn tab Create, trong
nhóm lệnh Queries, click nút Query Design.
- Chọn bảng hoặc query chứa dữ liệu cần xóa. Thanh Ribbon chuyển sang tab
Design.
- Click nút Delete trong nhóm Query Type.
- Chọn field chứa điều kiện xóa, lưới thiết kế xuất hiện dòng Delete → tại field
chứa điều kiện xóa ta chọn where.
147
https://tophosting.vn/
- Nhập điều kiện xóa trên dòng Criteria.
148
https://tophosting.vn/
c) Thực thi Delete Query
- Click nút run để thực thi, xuất hiện hộp thông báo số record bị xóa.
- Nếu đồng ý → yes, các record trong bảng đã bị xóa, xem kết quả trong
phần Table.
149
https://tophosting.vn/
TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
Form – Biểu mẫu trong Access
Chương 5
1. Công dụng và khái quát về biểu mẫu
2. Cách tạo Form
3. Tùy biến Form trong chế độ Design View
4. Cách tạo các Control có hỗ trợ của chức năng Wizard
5. Form và những bảng liên kết
6. Tab Control
7. Navigation Form
https://tophosting.vn/
5.1 Giới thiệu
Biểu mẫu (Form) là phương tiện giao dịên cơ bản giữa người dùng và
Access, thông tin trong biểu mẫu được lấy từ bảng, có thể thiết kế các
biểu mẫu cho nhiều mục đích khác nhau:
➢ Hiển thị và chỉnh sửa dữ liệu: Đây là công việc thông dụng nhất
của biểu mẫu. Sử dụng biểu mẫu để thay đổi, bổ sung, xoá dữ liệu
thì dễ dàng hơn.
➢ Nhập các dữ liệu: Có thể thiết kế biểu mẫu dùng để nhập dữ liệu
mới vào CSDL hoặc để cung cấp dữ liệu cho việc tự động hoá tính
toán.
➢ Và còn nhiều mục đích khác.
151
https://tophosting.vn/
5.2 Cách tạo Form
From Design :Tạo một From mới trống và
hiển thị nó trong chế độ Design View
Blank Form : Tạo một Form trống, Form mới
không bị ràng buộc với một nguồn dữ liệu,
mở ra trong chế độ Layout View
Form Wizard: Hỗ trợ thiết kế Form đơn giản
:Wizard yêu cầu các nguồn dữ liệu, chọn Field
hiển thị…
Navigation Form: (một tính năng hoàn toàn
mới trong Access 2010) Cho phép người dùng
dễ dàng di chuyển giữa các thành phần trong
form
Để tạo form, chọn tab
Create trên thanh
Ribbon, chọn cách tạo
form bằng các nút lệnh
trong nhóm lệnh Forms.
Nguồn cho Form có thể
là table hoặc query.
152
https://tophosting.vn/
5.2.1 Tạo một Single Form
Access cung cấp một cách dễ dàng và thuận lợi để tạo một form dựa trên
dữ liệu nguồn là Table/Query. Cách thực hiện:
• Trong Navigation, chọn table hoặc query mà bạn muốn sử dụng làm dữ
liệu nguồn cho from.
• Chọn tab trên thanh Ribbon.
• Trong nhóm lệnh Form, click nút Form.
• Xuất hiện một Form mới ở dạng Layout view.
• Single form hiển thị một record tại một thời điểm.
• Mặc định mỗi field hiển thị trên một dòng và theo thứ tự của các field
trong bảng hoặc query dữ liệu nguồn.
153
https://tophosting.vn/
Nếu dữ liệu nguồn của form là bảng cha có liên kết với bảng con, thì kết quả form
sẽ hiển thị các record quan hệ trong bảng con.
154
https://tophosting.vn/
5.2.2 Tạo Form bằng chức năng Form Wizard
• Là công cụ tạo Form qua các bước trung gian với một loạt câu hỏi gợi ý
giúp xây dựng From phù hợp nhất.
- Trên thanh
Ribbon chọn
Create / From
Wizard
- Chọn Table/ Query làm dữ liệu cho Form. Chọn các Field sử dụng trong
khung Available Field. Chọn Next để tiếp tục
- Chọn dạng Form gồm :
➢ Columnar
➢ Tabular
➢ Datasheet
➢ Justified
- Chọn Next
- Nhập tiêu đề cho Form -> Finish
155
https://tophosting.vn/
5.2.3 Tạo Form bằng Design
• Thiết kế From bằng tay mà không có sự hỗ trợ của Access
5.2.3.1 Layout View ( Blank Form)
Cách tạo:
➢ Chọn tab Create trên thanh Ribbon, click nút Blank Form trong nhóm
lệnh Forms.
➢ Xuất hiện một form trắng ở chế độ Layout view.
➢ Drag chuột kéo các field từ field list vào form.
156
https://tophosting.vn/
Khi thiết kế form bằng Design view thì các control khi thả vào form nó không
tự động canh theo hàng và cột như Blank Form.
Cách tạo:
➢Chọn tab Create trên thanh Ribbon, click nút Design View trong nhóm
lệnh Forms.
➢Xuất hiện một form trắng ở chế độ Design view.
➢Drag chuột kéo các field từ field list vào form.
5.2.3.2 Design View
157
https://tophosting.vn/
5.2.3.3 Các thành phần trong cửa sổ thiết kế Form
➢ Form Header: Chứa nội dung tiêu đề Form
➢ Form Footer: Chứa nội dung của phần cuối Form
➢ Detail: Chứa nội dung chính của Form, hiện thị
nội dung trong dữ liệu nguồn của Form hoặc các
control đưa vào từ toolbox
158
https://tophosting.vn/
➢Chọn form cần thiết lập thuộc tính.
➢Click nút Properties Sheet.
➢Chọn thuộc tính.
* Các thuộc tính trong Properties Sheet
được hiển thị theo từng nhóm
5.2.3.4 Thiết lập các thuộc tính của Form
159
https://tophosting.vn/
5.2.3.5 Các thuộc tính quan trọng trong nhóm Format
Thuộc tính Công dụng
Caption Tạo tiêu đề cho form.
Default view
Thiết lập dạng hiển thị của form.
- Single Form chỉ hiển thị một Recor tại một thời
điểm
- Continuous Form: hiển thị các record liên tiếp
nhau.
- Datasheet hiển thị dữ liệu dạng bảng.
Scroll Bar Thiết lập chế ñộ hiển thị thanh cuộn.
Record
Selectors
Bật/tắt thanh chọn record.
Navigation
Buttons
Bật/tắt các nút duyệt record.
Dividing lines
Bật/tắt các ñường kẽ phân cách các phần
của form.
Auto Center
Tự động hiển thị form ngay giữa màn
hình.
Border Style Chọn kiểu đường viền của form.
Min Max botton Bật/tắt nút Max/Min.
Close Button Bật/tắt nút close form.
Picture
Alignment
Canh vị trí cho các picture trên form.
160
https://tophosting.vn/
5.2.3.6 Các thuộc tính quan trọng trong nhóm Data
Thuộc tính Công dụng
Record Source Chọn dữ liệu nguồn cho form.
Filter Khai báo điều kiện lọc.
Order by Khai báo field cần sắp xếp số liệu.
Allow filter Cho phép/không cho phép lọc các
record.
Allow Edits Cho phép/ không cho phép chỉnh sửa.
Allow Additions Cho phép nhập thêm các record hay
không.
161
https://tophosting.vn/
5.3 Sử dụng Form
• Một Form khi thiết kế xong có ba dạng
➢ Layout view: Cho phép xem những gì trông giống như Form của bạn,
sắp xếp lại các field, và áp dụng định dạng
➢ Design view: Cho phép tinh chỉnh lại Form, nhưng không nhìn thấy dữ
liệu thực.
➢ Form view: Thực hiện các thao tác trên dữ liệu thông qua Form
162
https://tophosting.vn/
5.3.1 Tìm kiếm và chỉnh sửa một record
- Mở form ở dạng form view.
- Chọn tab Home trên thanh
Ribbon.
- Đặt trỏ trong field chứa dữ liệu
cần tìm, Click nút Find trong
nhóm lệnh Find.
- Xuất hiện cửa sổ Find and
Replace.
Find What: nhập giá trị cần
tìm.
Look in: Phạm vi tìm kiếm.
Search: Hướng tìm.
Match: Chọn cách so trùng giá
trị nhập trong ô Find What với giá
trị trong field chứa dữ liệu cần
tìm.
163
a) Sử dụng form để tìm kiếm một record
https://tophosting.vn/
b) Thay thế hoặc chỉnh sửa dữ liệu
Khi đã tìm thấy record cần tìm, bạn thực hiện chỉnh sửa thì giá trị sau khi
chỉnh sửa sẽ cập nhật xuống bảng. Nếu cần thay thế giá trị thì chọn tab
Replace trong cửa sổ Find and Replace.
oNhập giá trị cần thay thế trong ô Replace with.
oClick nút Replace hoặc Replace All nếu cần thay tất cả giá trị trong
bảng.
164
https://tophosting.vn/
Khi làm việc trên form, để thêm một record mới bạn thực hiện như sau:
➢Mở form ở chế độ form view.
➢Click nút New Record trên thanh Navigation button bên dưới cửa sổ
form.
➢Form sẽ chuyển đến record trống, cho phép bạn nhập dữ liệu. Tuy nhiên
khi nhập dữ liệu phải thỏa mãn các ràng buộc trong cơ sở dữ liệu.
5.3.2 Thêm một record
165
https://tophosting.vn/
➢Di chuyển đến record cần xóa.
➢Trong nhóm lệnh Record trên thanh Ribbon, chọn lệnh Delete →
chọn Delete Record. Tuy nhiên khi xóa record phải xem xét ảnh hưởng
đến các Record quan hệ.
5.3.3 Xóa một record
166
https://tophosting.vn/
➢Mở form ở dạng Form view.
➢Trong nhóm lệnh Sort & Filter trên thanh Ribbon, click nút Advanced,
Chọn lệnh Filter by Form.
➢Form chuyển sang dạng Filter.
5.3.4 Lọc dữ liệu trên form
167
https://tophosting.vn/
- Click nút combobox của field chứa giá trị chọn điều kiện lọc.
- Nếu có nhiều điều kiện thì bạn chọn tab OR bên dưới cửa sổ Filter, chọn điều
kiện lọc tiếp theo.
- Click nút Toggle Filter để thực hiện lọc.
- Click nút Toggle Filter để bỏ lọc.
168
https://tophosting.vn/
* 5.4. Tùy biến form trong chế độ Desing view :
5.4.1. Thêm một control vào form :
Để thêm một control vào form ta làm các bước như sau:
➢Chuyển form sang dạng Design view, Thanh Ribbon chuyển sang Form
Design Tools.
➢Chọn tab Design, trong nhóm Control, chọn các control.
➢Drag chuột vẽ vào form tại bất kỳ vị trí nào mà bạn mong muốn.
169
https://tophosting.vn/
- Đối với các control có sự trợ giúp của Control Wizard thì có thể thiết kế bằng
hai cách: Design hoặc Wizard bằng cách bật tắt nút Control Wizard.
170
https://tophosting.vn/
5.4.2. Các loại form control :
171
https://tophosting.vn/
172
5.4.2. Các loại form control :
https://tophosting.vn/
a) Canh lề cho các control
Chọn các control cần canh lề và thực hiện một trong
các cách như sau:
- Click phải và chọn Align, sau đó chọn một trong các
kiểu canh lề trên submenu.
- Chọn tab Arrange trên Form Design Tools.
- Trong nhóm lệnh Sizing & Ordering, click nút Align và
chọn một trong các kiểu canh lề trong Submenu.
5.4.3 Định dạng các control trên form
173
https://tophosting.vn/
b) Hiệu chỉnh kích thước và khoảng cách giữa các
control trên form
➢Chọn các control cần hiện chỉnh.
➢Chọn tab Arrange trên Form Design Tools.
➢Trong nhóm lệnh Sizing & Ordering, click
nút Size/Space.
➢Chọn lệnh hiệu chỉnh thích hợp.
174
https://tophosting.vn/
- Chọn control cần thiết lập thuộc tính.
- Click nút properties Sheet trong nhóm lệnh Tools trên thanh Ribbon.
5.4.4 Thiết lập thuộc tính cho control
175
https://tophosting.vn/
5.5.1. Command button :
a) Tạo bằng wizard
➢Chọn button trong nhóm Controls, drag chuột vẽ vào form.
➢Xuất hiện cửa sổ Command button Wizard.
➢Trong khung Categories chọn nhóm lệnh.
5.5 Cách tạo các control có hỗ trợ của chức năng Wizard
176
https://tophosting.vn/
Record Navigation: chứa các lệnh di chuyển giữa các record như:
➢Go To First Record: di chuyển đến record đầu,
➢Go To Last Record: di chuyển đến record cuối,
➢Go To Next Record: di chuyển đến record kế record hiện hành,
➢Go To Previous Record: di chuyển đến record trước record hiện hành.
Các lệnh này thường dùng để tạo thanh navigation buttons trên form.
177
https://tophosting.vn/
Record Operations: gồm các lệnh thêm record hoặc xóa record như:
➢Add New Record: Thêm record mới.
➢Delete Record: Xóa record.
➢Duplicate Record: Tạo các record có giá trị trùng ở tất cả các field.
➢Print Record: In mẩu tin hiện tại
➢Save Record: lưu những thay đổi trước khi chuyển đến record tiếp
theo.
➢Undo Record: Hủy sự thay đổi sau cùng.
178
https://tophosting.vn/
Form Operations: gồm các lệnh về form
➢CloseForm: đóng form hiện hành.
➢Print Current Form: in form hiện hành.
➢Open Form: Mở một form khác.
Report Operations: gồm các lệnh về Report
➢ Open Report: mở report.
➢ Preview Report: xem một report trước khi in.
➢ Print Report: in report.
Application: gồm lệnh liên quan đến ứng dụng như Quit Application.
Miscellaneous: chứa những lệnh tổng hợp: Run Query, Run Macro...
➢ Chọn lệnh cho nút trong khung Action, click Next.
➢ Chọn Text hoặc Picture hiển thị trên nút, click Next.
➢ Đặt tên cho nút, Finish.
179
https://tophosting.vn/
b) Tạo bằng design
➢Tắt nút wizard.
➢Chọn nút button trong nhóm controls.
➢Drag chuột vẽ vào form.
➢Gán lệnh bằng cách click phải trên nút, chọn Build event.
➢Chọn Macro builder,
➢Trong khung New Action, chọn lệnh Close Window.
➢Điền các argument vào các khung.
Object type: Form
Object name: Nhập tên form.
180
https://tophosting.vn/
a) Tạo bằng wizard
➢Chọn công cụ option group trong nhóm Controls.
➢Xuất hiện cửa sổ Option group Wizard.
➢Nhập nhãn cho các option, click Next.
➢Chọn/không chọn option mặc định, click Next.
➢Nhập giá trị cho các option, mặc định, option đầu tiên sẽ có option value
là 1, click Next.
5.5.2 Option Group
181
https://tophosting.vn/
➢Chọn vị trí lưu trữ giá trị của option group, click Next.
➢ Chọn loại option trong option group và style cho option group, các option
này có hình dạng khác nhau nhưng chức năng là giống nhau, click Next.
➢ Nhập nhãn cho Option group, click Finish.
182
https://tophosting.vn/
b) Tạo bằng design
➢Tắt nút Control Wizard.
➢Click nút Option group trong nhóm Controls vẽ vào form.
➢Chọn loại Option vẽ vào trong khung của Option group.
➢Mở Properties Sheet của Option group và thiết lập các thuộc tính sau:
Control source: chọn field chứa dữ liệu nguồn cho option group.
Lần lượt chọn từng option và gán giá trị cho thuộc tính option value.
183
https://tophosting.vn/
a) Tạo bằng wizard:
➢Chọn công cụ Combo box/List box trong nhóm Controls.
➢Drag chuột vẽ vào form, xuất hiện cửa sổ Combo box Wizard với hai lựa
chọn ứng với hai chức năng của combo box:
5.5.3 Combobox và Listbox
184
https://tophosting.vn/
- Nếu chọn I want the combo box to get the values from another table or
query thì sau khi click Next để thực hiện bước tiếp theo ta chọn bảng chứa dữ
liệu nguồn cho Combo box, dữ liệu nguồn có thể là Table hoặc Query,
click Next.
185
https://tophosting.vn/
- Chọn field chứa dữ liệu đưa vào Combo box, click nút để chọn một field hoặc
click nút để chọn nhiều field, click Next.
186
https://tophosting.vn/
- Chọn field sắp xếp (có thể bỏ qua), mặc định các field đã được sắp xếp,
click Next.
187
https://tophosting.vn/
➢Điều chỉnh độ rộng của cột dữ liệu trong combo box.
➢ Hide key column (recommended):
ẩn hoặc hiện cột khóa. Mặc định
mục Hide key column được chọn
(cột khóa bị ẩn), nếu muốn combo
box hiển thị field khóa thì bỏ check,
click Next.
➢ Chọn field chứa giá trị của combo
box, click Next.
188
https://tophosting.vn/
➢Nhập nhãn cho combo box,
click Finish.
➢Nếu chọn I will type in the values
that I want, thì sau khi chọn xong,
click Next.
➢Nhập số cột trong ô Number of
columns,
➢Nhập giá trị cho các cột trong
combo box, click Next.
➢Nhập nhãn cho combo box,
click Finish.
189
https://tophosting.vn/
b) Tạo bằng Design:
➢Tắt nút wizard.
➢Click nút combo box trong nhóm Controls drag chuột vẽ vào form.
➢Sử dụng Properties Sheet để thiết lập các thuộc tính sau:
190
https://tophosting.vn/
Ví dụ: Tạo form hóa đơn lấy dữ liệu nguồn từ bảng HoaDon, khi tạo combo
box MaKH ta thiết lập các thuộc tính sau:
191
https://tophosting.vn/
➢Access 2010 nhận ra các quan hệ khi tạo một form mới từ một bảng cha.
Nếu bảng cha có nhiều bảng con thì Access chỉ hiển thị các record trong
một bảng, nó sẽ chọn bảng đầu tiên mà nó tìm thấy.
➢Ví dụ:
Bảng HOADON và bảng SANPHAM trong cơ sở dữ liệu QL BAN HANG. Khi
tạo form từ bảng HOADON thì nó sẽ hiển thị danh sách các SAN PHAM
quan hệ trong bảng SANPHAM.
5.6 Form và những bảng liên kết
192
https://tophosting.vn/
➢Subforms là không thể thiếu cho việc hiển thị thông tin từ hai bảng khác
nhau hoặc các truy vấn trên cùng một form. Thông thường, subforms được
sử dụng khi dữ liệu nguồn trong main có quan hệ một-nhiều với dữ liệu
nguồn của subform. Nhiều record trong subform được liên kết với một
record trong mainform.
➢Access sử dụng các thuộc tính LinkMasterFields và LinkChildFields của
subform để lựa chọn các record trong subform có liên quan đến mỗi record
trong mainform.
5.6.1 Subform control
193
https://tophosting.vn/
a) Tạo bằng Wizard:
- Tạo main form: dữ liệu nguồn của main form thường là thông tin ở bảng
cha, do đó dạng form thường là những dạng hiển thị một record tại một thời
điểm như columnar.
➢Mở main form ở chế độ Design.
➢Bật nút control Wizard.
➢Chọn công cụ SubForm/SubReport trong nhóm Controls vẽ vào Form,
xuất hiện cửa sổ SubForm Wizard với hai tùy chọn:
194
https://tophosting.vn/
Use existing Tables and Queries (sử dụng bảng và các query làm dữ
liệu nguồn cho subform) → Next.
➢Chọn bảng hoặc query làm dữ liệu nguồn cho sub form, trong bảng hoặc
query phải có field liên kết với main form → Next.
➢Chọn field liên kết với subform → Next.
➢Nhập tên cho subform → Finish.
➢Use an existing form: sử dụng form có sẵn làm subform.
➢Chọn form làm subform → Next.
➢Nhập tên cho SubForm → Finish.
195
https://tophosting.vn/
b) Tạo bằng Design:
➢Nếu dữ liệu nguồn của subform được lấy từ nhiều bảng thì phải tạo query, trong
query phải chứa field liên kết với main form (link child filed).
➢Dạng của subform thể hiện quan hệ n, do đó thường chọn
dạng Datasheet hoặc Tabular.
➢Mở main form ở chế độ design, chọn công cụ subform/Subreport trong nhóm
Controls drag chuột vẽ vào main form.
➢Mở Properties Sheet và thiết lập các thuộc tính:
196
❑ Source object: Chọn Table/Query làm dữ liệu nguồn
cho Subform, hoặc chọn form nếu đã thiết kế form để
làm subform.
❑ Link child field: nhập tên của field trong subform liên
kết với main form.
❑ Link master field: nhập tên field của main form liên
kết với subform.
https://tophosting.vn/
➢Khi chỉ định thuộc tính Source Object cho Subform thì form xuất hiện với
dạng mặc định được quy định trong thuộc tính Default view.
➢Tuy nhiên, nếu bạn muốn sử dụng một form hoàn toàn riêng biệt để bạn có
thể tùy biến nó.
5.6.3. Tạo ô tính toán trong subform :
➢Khi tạo một subform, bạn có thể muốn hiển thị subform thông tin tổng hợp
ở dạng tổng thể.
➢Ví dụ, bạn có thể tính tổng tiền của các Hóa đơn.
5.6.2 Hiệu chỉnh Subform
197
https://tophosting.vn/
* Ví dụ: Cần hiển thị tổng thành tiền cho tất cả hóa đơn của mỗi khách hàng.
198
https://tophosting.vn/
➢Trước khi đặt ô tính toán tổng hợp dữ liệu trên Mainform thì giá trị của nó
phải được tính trong Subform. Ô tính toán tổng hợp dữ liệu phải được đặt
trong phần footer của Subform.
➢Ví dụ: Tính tổng thành tiền của các hóa đơn.
199
https://tophosting.vn/
* - Sau đó, trên Mainform bạn chèn một text box với ControlSource được
thiết lập giá trị như sau:
Trong đó:
- SubformName: là tên của Subform.
- ControlName_inSubform: tên của ô tính toán tổng hợp dữ liệu trong
Subform.
200
https://tophosting.vn/
➢Tab control là một công cụ cho phép bạn có thể hiển thị nhiều nội dung
trên một không gian hạn chế, bằng cách các tổ chức nội dung cần hiển thị
trên từng trang riêng biệt.
➢Tab control không phải là lựa chọn tốt vì nhược điểm của nó là cần phải
click chuột để di chuyển từ tab này sang tab khác.
5.7 Tab control
201
https://tophosting.vn/
➢Trong Form Design Tools trên
thanh Ribbon.
➢Chọn Design, trong nhóm
Controls, click nút Tab Control.
➢Vẽ tab control vào form tại vị trí
thích hợp.
➢Thêm tất cả các trang cần thiết.
5.7.1 Sử dụng Tab Control
202
https://tophosting.vn/
a) Thêm và xóa tab
- Khi tạo mới một tab control thì luôn mặc định có hai trang bạn có thể thêm
hoặc xóa bằng cách Click phải chọn Insert hoặc Delete Page.
b) Tạo nhãn cho các tab
➢Chọn tab muốn tạo nhãn.
➢Mở Properties Sheet.
➢Chọn thuộc tính caption: nhập nhãn cho các trang.
5.7.2 Hiệu chỉnh Tab Control
203
https://tophosting.vn/
c) Sắp xếp lại thứ tự tab
- Sắp xếp thứ tự của các trang bằng cách click phải trên tab → chọn Page Order…
- Chọn Page → click nút Move Up/Move Down.
d) Đặt các control vào trang
- Chọn trang thích hợp.
- Chọn control trong Navigation pane, drag chuột đưa vào trang.
204
https://tophosting.vn/
➢Access 2010 giới thiệu một dạng form mới là Navigation form, là một form
có một navigation control mà nó có thể hiển thị một hoặc nhiều form và
report, navigation control có nhiều tab giúp bạn có thể di chuyển nhanh
đến bất kỳ một form khác, hoặc form dạng Main/Sub.
5.8 Navigation Form
205
https://tophosting.vn/
5.8.1. Tạo Single level Navigation Form :
➢Trong nhóm lệnh Forms trên thanh Ribbon,
click nút dropdown Navigation.
➢Chọn dạng Navigation, gồm các dạng:
oHorizontal Tabs.
oVertical Tabs, Left.
oVertical Tabs, Right.
oHorizontal Tabs, 2 levels
oHorizontal Tabs and Vertical Tabs, Left.
oHorizontal Tabs and Vertical Tabs, Right
206
https://tophosting.vn/
➢Navigation form xuất hiện trong chế độ Design view với sự kết hợp của hai
control: một control subform rỗng và lớn và một navigation.
207
https://tophosting.vn/
➢Để thêm một navigation button vào form, click chọn một form trong
Navigation Panel của Access và drag chuột kéo form vào navigation control
(Chế độ Layout View)
208
https://tophosting.vn/
➢Để thay đổi nhãn của Navigation button, bạn double click vào nhãn và nhập
tên mới.
➢Tạo khoảng cách giữa các navigation button bằng cách chọn Form Layout
Tools, chọn tab Arrange → Control Padding, chọn loại khoảng cách.
209
https://tophosting.vn/
➢Trong nhóm lệnh Forms trên thanh Ribbon, click nút dropdown
Navigation.
➢Chọn dạng Navigation: Horizontal Tabs, 2 levels
➢Xuất hiện một Navigation Form ở chế độ Layout view với sự kết hợp của ba
control: một control subform rỗng và lớn và hai navigation control.
➢Tạo tiêu đề cho level1 bằng cách double click vào khung [Add New] →
Nhập tiêu đề.
➢Thêm submenu cho tiên đề này bằng cách drag chuột kéo form từ trong
navigation pane vào submenu.
5.8.2 Tạo Two level Navigation Form
210
https://tophosting.vn/
TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
Thiết kế báo cáo ( Report)
Chương 6
• 6.1.1 Tạo bằng lệnh Report
• 6.1.2 Tạo Report bằng chức năng Winzard
• 6.1.3 Tạo Report bằng Design
6.1
Cách tạo
Report
• 6.2.1 Sử dụng Total Query
• 6.2.2 Report Grouping
• 6.2.3 Sub Report
6.2
Tạo Report
có phân
nhóm
https://tophosting.vn/
Chức năng Report là công cụ tạo Report nhanh và dễ dàng, thường dùng để
tạo những Report đơn giản có dữ liệu nguồn từ một bảng hoặc một query.
Để tạo bằng chức năng Report ta phải chọn dữ liệu nguồn cho Report
6.1 Cách tạo Report
212
6.1.1 Tạo bằng lệnh Report
❖ Click nút Report trong nhóm lệnh
Report trên thanh Ribbon.
❖ Xuất hiện report dạng Tabular ở chế
độ Layout.
https://tophosting.vn/
213
6.1.2 Tạo bằng chức năng Wizard:
➢ Chọn tab Create trên thanh
Ribbon, trong nhóm lệnh
Reports, click nút Report
Wizard.
➢ Chọn Table/Query làm dữ
liệu nguồn cho Report.
➢ Chọn các field hiển thị trên Report trong khung Available Field click
nút để chọn một field và click nút để chọn nhiều field. Click Next.
➢ Nếu report lấy dữ liệu nguồn từ một bảng thì bỏ qua bước này, ngược
lại nếu dữ liệu lấy từ nhiều bảng thì chọn field kết nhóm. Click Next.
https://tophosting.vn/
214
6.1.2 Tạo bằng chức năng Wizard:
➢ Chọn field mà bạn muốn
sắp xếp dữ liệu cho report.
➢ Có thể sắp xếp kết quả
trong report bằng cách kết
hợp tối đa là 4 field
➢ Chọn field mà bạn muốn
Nhóm(Grouping) dữ liệu
cho report.
➢ Sau khi chọn field cần
Nhóm chọn Next
https://tophosting.vn/
215
6.1.2 Tạo bằng chức năng Wizard:
Chọn dạng Report.
Layout: gồm 3 dạng:
+ Columnar.
+ Tabular.
+ Justified.
Orentation: gồm 2 dạng
+ Portrait: trang dọc
+ Landscape: trang ngang
https://tophosting.vn/
216
6.1.2 Tạo bằng chức năng Wizard:
Nhập tiêu đề cho report
Chọn lựa:
- Preview: xem trước
báo cáo
- Modify: sửa và thiết
kế báo cáo
- Nhấp Finish để tạo
báo cáo
https://tophosting.vn/
217
6.1.3 Tạo bằng chức năng Design:
➢ Chọn Table/Query làm dữ liệu nguồn cho report.
➢ Chọn tab Create trên thanh Ribbon, trong nhóm lệnh Reports, click
nút Report Design.
➢ Xuất hiện cửa sổ thiết kế report và field list chứa các field trong dữ
liệu nguồn của report.
Cách tạo:
Lần lượt drag chuột kéo
các field trong field list
hoặc các control trong
nhóm lệnh Controls trên
thanh Ribbon thả vào
Report
https://tophosting.vn/
218
6.1.3 Tạo bằng chức năng Design:
Các thành phần trong cửa sổ thiết kế Report:
1. Page Header/Footer
2. Report Header/Footer
3. Detail
4. Group Header
5. Footer
Một Report gồm các thành phần:
https://tophosting.vn/
219
6.1.3 Tạo bằng chức năng Design:
Page Header/Footer: Chứa tiêu đề đầu trang và cuối trang.
Nội dung đặt trong phần Page Header/Footer sẽ xuất hiện ở
đầu và cuối mỗi trang.
Các nội dung thường đặt trong Page
Header/Footer.
Page Numbers, logo, Title, Date and Time…
https://tophosting.vn/
220
6.1.3 Tạo bằng chức năng Design:
Page Header/Footer: Chứa tiêu đề đầu trang và cuối trang.
Nội dung đặt trong phần Page Header/Footer sẽ xuất hiện ở
đầu và cuối mỗi trang.
Page Numbers: chèn số trang
Logo: chèn logo báo cáo
Title: tiêu đề cho trang báo cáo
Date and Time: ngày và thời gian
Các nội dung thường đặt trong Page Header/Footer:
https://tophosting.vn/
221
6.1.3 Tạo bằng chức năng Design:
Report Header/Footer: Tiêu đề đầu và cuối report, nội dung
đặt trong Report Header/Footer chỉ xuất hiện ở phần đầu của
trang đầu tiên và phần cuối trang của trang cuối cùng.
Các nội dung thường đặt trong Report Header/Footer.
Công thức tính toán, thống kê dữ liệu.
https://tophosting.vn/
222
6.1.3 Tạo bằng chức năng Design:
Detail: chứa nội dung chính của report, hiển thị dữ liệu trong dữ
liệu nguồn dưới dạng các textbox bound control, mỗi textbox là
một field dữ liệu hoặc các textbox dạng unbound control dùng để
tạo thêm field mới.
Group Header/Footer (Các report có phân nhóm): đối với
các report có phân nhóm giống như form dạng main-sub thì ngoài
các phần cơ bản còn có thêm phần kết nhóm là group
header/Footer.
➢ Nội dung trong phần group
header/Footer là tiêu đề của nhóm.
➢ Thống kê dữ liệu theo nhóm.
https://tophosting.vn/
223
6.1.3 Tạo bằng chức năng Design:
➢ Để hiệu chỉnh report, ta mở report ở chế độ design view.
➢ Chọn các control muốn hiệu chỉnh.
➢ Mở Properties Sheet, chọn thuộc tính đê hiệu chỉnh
➢ Cách hiệu chỉnh tương tự như đối với form.
Hiệu chỉnh Report
https://tophosting.vn/
6.2 Tạo Report có phân nhóm
224
1. Sử dụng Total Query
2. Sử dụng Report Grouping
3. Sử dụng Sub Report
6.2.1 Sử dụng Total Query
Trong trường hợp này, report không chứa phần chi tiết mà chỉ
chứa các ô thống kê dữ liệu: Sum, Avg, Min, Max trong
phần Detail của report.
Cách thực hiện như sau:
➢ Tạo Total Query, trong query chọn field làm tiêu chuẩn
thống kê, field chứa dữ liệu thống kê và chọn phép thống
kê
➢ Tạo Report, sử dụng Total query đã tạo ở trên.
https://tophosting.vn/
225
6.2.1 Sử dụng Total Query
Ví dụ: Tạo report tính tổng số lượng và tổng tiền đã bán của từng sản phẩm
Tạo report, sử dụng Total query đã tạo ở trên.
https://tophosting.vn/
226
6.2.2 Report Grouping
Report grouping giúp bạn có thể tổ chức khối lượng lớn các
thông tin vào các nhóm. Với cách này report sẽ thể hiện dữ liệu
chi tiết trong từng nhóm và có thể thêm nhiều cấp độ nhóm theo
các tiêu chí khác nhau.
Cách tạo như sau:
➢ Trên thanh Ribbon, chọn tab Create, trong nhóm lệnh
Reports, click nút Report Design.
➢ Xuất hiện cửa sổ thiết kế Report, thanh Ribbon chuyển
sang tab Design
https://tophosting.vn/
227
6.2.2 Report Grouping
➢ Trong Properties Sheet,
chọn Tab Data, tại thuộc
tính Record source,
chọn Table/Query làm
dữ liệu nguồn cho Report.
➢ Click nút Group& Sort trong nhóm
lệnh Grouping & Totals.
https://tophosting.vn/
228
6.2.2 Report Grouping
Trong cửa sổ thiết kế xuất hiện khung Group, Sort and Total
bên dưới cửa sổ thiết kế.
Click nút Add a group để chọn
field kết nhóm, chọn field kết nhóm
trong field list, trên cửa sổ thiết kế
xuất hiện thanh Group header.
https://tophosting.vn/
229
6.2.2 Report Grouping
Khung Group, Sort and Total có dạng như hình:
Mở thanh group footer và thực hiện các phép thống kê bằng
cách click nút More, cửa sổ Group, Sort and Total có dạng:
https://tophosting.vn/
230
6.2.2 Report Grouping
Click nút with no Total để mở menu Totals:
Total On: chọn field chứa dữ liệu thống kê.
Type: Chọn phép thống kê.
➢ Show Grand Total: Đặt ô thống kê
trong phần report header/footer.
➢ Show group subtotal as % of
Grand Total: Đặt ô thống kê trong
phần report header/footer.
➢ Show subtotal in group
header: Đặt ô thống kê trong phần
group header.
➢ Show subtotal in group footer: Đặt
ô thống kê trong phần group footer.
Chọn vị trí đặt các ô thống kê bằng cách check vào các ô:
https://tophosting.vn/
231
6.2.3 Sub Report
Subreport có tác dụng tương tự như Report grouping.
Sự khác biệt duy nhất là tạo các report trong hai phần
riêng biệt:
Main Report và SubReport.
https://tophosting.vn/
232
6.2.3 Sub Report
➢ Tạo Main Report, dữ liệu nguồn thường là bảng cha.
➢ Tạo Sub Report, dữ liệu nguồn phải chứa field liên kết với Main
Report.
➢ Đưa Sub Report vào Main Report có thể dùng công cụ
SubForm/SubReport trong nhóm lệnh Controls.
➢ Thiết lập thuộc tính Link child Fields và Link master Fields.
Cách tạo:
https://tophosting.vn/
TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
Tự động hóa ứng dụng bằng Marco
Chương 7
Marco là gì?
Cách tạo và thực thi Marco
Marco Autoexec
Xây dựng hệ thống menu bằng Marco
https://tophosting.vn/
234
➢Giả sử ta có một công việc gồm 4 thao tác:
✓Mở một bảng để sửa (giả sử có tên BanHang)
✓Mở một Form ứng vơí bảng đó để vào dữ liệu
✓Mở một Report ứng với bảng đó
✓In Report đó
➢Bình thường ta thao tác từng công việc một, hết một công việc, đóng
lại và mở công việc khác cứ như thế cho đến hết.
➢ Nhưng còn một cách khác là xử lý bốn công việc trên một cách tự
động bằng công cụ mà ta hay gọi là Macro.
➢Giả sử xây dựng một form với nút đóng form bằng cách tạo nút trên
form và xây dựng một macro để đóng form sau đó gán macro cho sự
kiện Click của nút.
7.1 Marco là gì?
https://tophosting.vn/
235
➢Cách tạo: Chọn tab Create trên thanh Ribbon, trong nhóm lệnh Macro &
Code, click nút Macro
7.2 Cách tạo và thực thi Marco
➢Xuất hiện cửa sổ thiết kế Macro với các thành phần:
oKhung bên trái dùng để chọn các action trong Macro.
o Khung bên phải chứa các Action theo nhóm và các đối tượng trong
cơ sở dữ liệu đã được gán macro.
https://tophosting.vn/
236
➢Chọn Action trong khung Add New Action.
➢Ứng với những Action khác nhau thì xuất hiện các ô cho bạn
chọn hoặc nhập các argument tương ứng.
7.2.1 Cách tạo Marco
➢Ví dụ: khi chọn Action là GotoRecord thì sẽ xuất hiện các Argument như
hình.
➢Tiếp tục chọn Action tiếp theo bằng cách click Add new Action.
https://tophosting.vn/
237
➢Đối với macro không gán cho sự kiện của một đối tượng cụ thể thì chọn
tên macro và click nút run để thực thi hoặc double click vào tên macro,
thường dùng cho các macro chứa các lệnh Open.
o Ví dụ: macro mở form.
➢ Đối với macro mà chỉ có thể thực thi khi tác động vào một đối tượng cụ
thể trên form hoặc report thì sau khi tạo và lưu macro thì phải gán
macro cho sự kiện của đối tượng cụ thể. Các thực hiện.
➢ Mở form hoặc report chứa đối tượng cần gán macro.
➢ Click phải trên đối tượng chọn properties, hoặc chọn đối tượng →
Mở properties Sheet.
7.2.2 Thực thi Marco
➢Chọn tab Event, chọn sự kiện (event).
➢ Trong danh sách xổ xuống chọn tên Macro.
https://tophosting.vn/
238
➢Actions: Trong Access 2010 action
được chia thành nhóm theo chức
năng.
➢Events: Sự kiện tác động lên đối
tượng để thực thi macro.
7.2.3 Các Actions và Events thông dụng
https://tophosting.vn/
239
➢ Macro Autoexec là macro tự động thực thi khi chương trình được khởi
động và có tên là autoexec.
➢ Macro autoexec thường dùng để mở form giao diện, khi ứng dụng
được khởi động thì form giao diện tự động mở ra đầu tiên. Để thực hiện
ta tạo một macro autoexec chứa action OpenForm, Form name là tên
form giao diện, tên macro là autoexec.
7.3 Marco Autoexec
7.4 Xây dựng hệ thống menu bằng Marco
➢Một ứng dụng hoàn chỉnh thường cần đến hệ thống menu để liên kết
các thành phần thành một hệ thống.
➢Ví dụ: hệ thống menu trong chương trình quản lý hóa đơn.
https://tophosting.vn/
240
➢Trong Access 2010, menu do người dủng tạo được tổ chức thành nhóm
giống như nhóm lệnh trên thanh Ribbon đặt trong tab Add-In.
➢Tạo menu cấp 1: chính là Main Menu dùng action Addmenu với các
Argument như sau:
oMenu Name: tên các menu trong menu cấp 1.
o Menu Macro Name: tên macro để tạo menu cấp 2.
o StatusBar Text: Dòng văn bản xuất hiện trên thanh status bar khi
menu được chọn.
o Giả sử Main menu gồm 4 Menu.
7.4.1 Tạo Marco cho hệ thống menu
https://tophosting.vn/
241
➢Tạo macro cho menu cấp 2: Macro này có tên trùng với tên được đặt
trong mục Menu Macro Name của macro cấp 1, mỗi menu là một
macro.
7.4.1 Tạo Marco cho hệ thống menu
➢Trong menu chính có bao nhiêu menu con thì tạo bấy nhiêu macro.
https://tophosting.vn/
242
➢Để đưa menu vào hoạt động thì cần phải có một form chính của chương
trình, khi form này được mở thì hệ thống menu sẽ được kích hoạt:
oMở form chính ở chế độ design.
oClick phải trên form → properties.
oChọn tab Other
7.4.2 Đưa menu vào chương trình
➢Tại thuộc tính Menu bar, nhập tên macro cấp1.
https://tophosting.vn/
TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
Module – Lập trình trong Access
Chương 8
Tổ chức, hoạt động chương trình trong Access
Thủ tục đáp ứng sự kiện
Tạo và thực hiện thủ tục và hàm
Các phép toán, hàm, biến, biểu thức
Một số lệnh về lập trình
Đối tượng, biến đối tượng và cách xử lý
https://tophosting.vn/
244
Chương trình con có hai dạng: Thủ tục hoặc hàm. Mỗi chương trình con
là một dãy các lệnh để thực hiện một công việc nào đó. Một chương trình
có thể có rất nhiều chương trình con.
a. Chương trình con dạng thủ tục: Bao gồm các thành phần: Đầu thủ
tục, thân thủ tục và kết thúc thủ tục.
1. Đầu thủ tục có dạng:
o[Private] Sub <Tên thủ tục> [(<Danh sách các đối số)>]
2. Thân thủ tục
oThân thủ tục nằm sau đầu thủ tục. Thân thủ tục chứa các lệnh để
giải quyết một công việc nào đó (các lệnh cụ thể bạn sẽ tìm hiểu
sau).
3. Kết thúc thủ tục
oĐể báo cho máy tính biết kết thúc một thủ tục, ta viết dòng lệnh:
End Sub
8.1 Tổ chức và hoạt động của chương trình trong Access
[Private] Sub <Tên thủ tục> [(<Danh sách các đối số)>]
<Thân thủ tục>
End Subhttps://tophosting.vn/
245
b. Chương trình con dạng hàm (Funtion)
➢ Cũng như thủ tục, hàm cũng có cấu trúc ba phần: Đầu hàm, thân hàm
và kết thúc hàm. Dạng tổng quát như sau:
8.1 Tổ chức và hoạt động của chương trình trong Access
[Private] Function <Tên hàm> [(<Danh sách các đối
số)>]
<Thân hàm>
End Function
➢ Sau đây là một số ví dụ:
oVí dụ1: Lập trình hiển thị câu chào: “Chào bạn đã đến với lập
trình Access”
oBước 1:
oChọn Create chọn New chọn Macro & code , sau đó cửa sổ để bạn
soạn thảo chương trình (hay còn gọi là cửa sổ Code) hiện ra như
sau:
https://tophosting.vn/
246
➢ Bước 2: Bạn gõ vào cửa sổ Code các lệnh (bạn cứ gõ rồi sau sẽ hiểu
lệnh đó là gì?) như hình sau:
➢Bước 3: Chạy chương trình: Chọn Run/Run Sub. Sau khi chạy chương
trình, kết quả như hình sau:
➢Giải thích:
Lệnh MsgBox(“Chao ban da den voi lap trinh Access”) sẽ đưa ra một thông báo
như hình trên. Ta có thể gọi đây là lệnh hiển thị dữ liệu cũng được. Khi đưa ra
kết quả trên chương trình tạm dừng và nếu bạn chọn OK thì chương trình sẽ
chạy tiếp và thực hiện lệnh sau lệnh MsgBox(...).
8.1 Tổ chức và hoạt động của chương trình trong Access
https://tophosting.vn/
247
➢ Ví dụ 2: Vào 2 số nguyên, tính tổng và hiển thị tổng của hai số đó.
oBạn gõ vào cửa sổ Code như hình sau:
oKhi chạy chương trình, máy yêu cầu bạn gõ từ bàn phím giá trị a như
giao diện sau:
8.1 Tổ chức và hoạt động của chương trình trong Access
https://tophosting.vn/
248
➢Đến đây nếu bạn gõ vào số 5 và chọn OK (Hay ấn Enter) thì số nguyên
5 sẽ lưu vào biến a. Máy lại đưa ra giao diện:
➢Và nếu bạn gõ vào số 4 và chọn OK thì máy sẽ lưu số nguyên 4 vào
biến b. Tiếp tục máy sẽ tính tổng và đưa kết quả là 9 như hình sau:
8.1 Tổ chức và hoạt động của chương trình trong Access
https://tophosting.vn/
249
➢Giải thích:
➢Lệnh: Dim a As Integer
o Nghĩa là: Biến (Dim) a là (As) nguyên (Integer). Bạn khai báo biến a là nguyên
, để máy sử dụng ô nhớ tương ứng với số nguyên mà!, tất nhiên nếu là số
thực thì ô nhớ phải lớn hơn, v.v.. lý do khai báo là vậy.
➢Lệnh: a = InputBox("Moi ban go vao so a? ")
o Nghĩa là: Hộp nhập liệu (InputBox) ra thông báo: "Moi ban go vao so a? “. Nếu
bạn gõ vào một số thì số đó được lưu vào biến a
➢Lệnh: s = a + b
o Đây là lệnh “gán”, nghĩa là máy sẽ lấy nội dụng biến a (bạn vừa gõ vào 5),
cộng với nội dung của biến b (bạn vừa gõ vào 4), kết quả sẽ là 9, “gán” kết
quả này cho biến s (gọi lệnh “gán” là như vậy).
➢Lệnh: MsgBox "Tong 2 so la: " & Str(s)
o Đây là lệnh hiển thị dữ liệu, nhưng dữ liệu thì phải đồng nhất, ở đây: "Tong 2
so la: "(là dữ liệu văn bản) còn nội dung của biến s là một số nguyên. Để ghép
được bạn phải đổi nội dung của biến s (số nguyên) thành dạng văn bản bằng
hàm Str(s): Str viết tắt từ chữ String (văn bản). Để ghép hai văn bản ta dùng
dấu & (cũng như để cộng 2 số ta dùng dấu + ).
8.1 Tổ chức và hoạt động của chương trình trong Access
https://tophosting.vn/
250
➢Mở đối tượng form hoặc report ở chế độ design.
➢Click phải trên control muốn gán module → chọn properties.
➢Chọn tab event → chọn event thích hợp → Click nút biểu tượng.
➢Xuất hiện cửa sổ Choose Builder.
➢Chọn lệnh Code Builder → OK.
➢Xuất hiện cửa sổ soạn thảo module với nội mặc định.
➢Bạn chọn Event và cuốn để tìm sự kiện mình cần.
8.2 Thủ tục đáp ứng sự kiện với form, report
https://tophosting.vn/
251
➢Ví dụ: Tạo thủ tục để mở bảng có tên SO_LUONG khi ta kích vào
vùng tiêu đề đầu trang Form. Ta thao tác như sau:
➢Chọn Create vào tap Form chon Form Design
➢Kích vào thanh FormHeader để bật cửa sổ chứa các thủ tục đáp ứng
sự kiện ứng với vùng này (tất nhiên ban chon Event), như hình sau:
8.2 Thủ tục đáp ứng sự kiện với form, report
https://tophosting.vn/
252
➢Kích vào ô bên phải ứng với dòng On Click, kích mũi tên xuống để
chọn [Event Procedure], kích tiếp vao nút ba chấm bên phải , Sau đó
thủ tục đáp ứng sự kiện hiện ra:
8.2 Thủ tục đáp ứng sự kiện với form, report
https://tophosting.vn/
253
➢Bạn gõ dòng lệnh: DoCmd.OpenTable “So_luong”.
➢Lưu thủ tục này bằng một tên nào đó, giả sử tên DauForm
➢Thoát về CSDL
➢Chạy thủ tục này bằng cách chọn Navigation pane/ Forms, kích đúp
vào tên DauForm ta thấy một Form hiện ra.
➢Tiếp theo bạn kích vào vùng FormHeader, chương trình chạy và kết
quả là bảng SoLuong được mở ra như sau:
➢Sự kiện Click ở các vùng còn lại thiết kế tương tự.
8.2 Thủ tục đáp ứng sự kiện với form, report
https://tophosting.vn/
254
a. Taọ thủ tục, hàm trong Macro & Code Tab.
o Bước 1: Create chọn Tab Macro & Code chọn Module
o Bước 2: Khai báo và tạo lập thủ tục hoặc hàm
o Bước 3: Ghi Module
Ví dụ: Vào tuổi của hai người, tính tuổi trung bình của họ.
Function Tong()
Dim T1 As Interger
Dim T2 As Interger
Dim TB As Single
T1 = InputBox(“vào tuoi cua nguoi thu nhat?”)
T2 = InputBox(“vào tuoi cua nguoi thu hai?”)
TB=(T1+T2)/2
MsgBox “Tuoi trung binh la:” & Str(TB)
End Function
➢Tuổi trung bình có thể không phải nguyên (vì phải chia cho 2), do đó ta
phải khai báo là thực (Single). Số thực trong máy là số có dấu chấm
thập phân, ví dụ: 23.45, 12.00, -45.34567, v.v..
8.3 Tạo và thực hiện thủ tục và hàm
https://tophosting.vn/
255
b. Tạo thủ tục đáp ứng sự kiên của các điều khiển trên Form.
Trên Form ta có thể đặt các điều khiển như nút lệnh chẳng hạn, nút lệnh
này cũng có các sự kiện. Các bước tiến hành:
➢Bước 1: Mở Form và bổ sung một đối tượng lên Form, giả sử nút lệnh
(Button) chẳng hạn.
➢Bước 2: Mở cửa sổ Code:
oChọn nút lệnh, kích phải chuột chọn Build event , sau đó hộp thoại
Code Builder hiện ra:
8.3 Tạo và thực hiện thủ tục và hàm
https://tophosting.vn/
256
➢Chọn Code Builder và chọn OK, một thủ tục sự kiện xuất hiện:
➢Soạn thủ tục hoặc hàm đáp ứng sự kiện.
➢Ghi lại thủ tục đó và chạy thử
8.3 Tạo và thực hiện thủ tục và hàm
https://tophosting.vn/
257
c. Chương trình có nhiều thủ tục
Một thủ tục khi chạy có thể yêu cầu (gọi) một hoặc nhiều thủ tục khác làm việc.
Lệnh gọi này được viết lại đúng tên thủ tục bị gọi, ví dụ hai thủ tục sau:
Sub MoBang()
DoCmd.OpenTable”So_luong”
End Sub
Và thủ tục tính tổng:
Sub Tong()
Dim a As Integer, b As Integer, s As Integer
a = 12
b = 20
s = a + b
MsgBox ("s=" & Str(s))
End Sub
Để chạy được 2 thủ tục trên, ta có thể tạo một thủ tục khác (giả sử có tên là
GOI(), thủ tục GOI có dạng sau:
Sub GOI()
MoBang
Tong
End Sub
8.3 Tạo và thực hiện thủ tục và hàm
https://tophosting.vn/
258
Khi chạy, thủ tục GOI() yêu cầu thủ tục MoBang() làm việc, thủ tục
MoBang() làm việc xong lại quay về thủ tục GOI() và thực hiện tiếp lệnh
sau đó (tức là lệnh gọi thủ tục Tong). Cứ như thế cho đến khi tất cả các
lệnh trong thủ tục GOI() được hoàn tất. Ba thủ tục đó nằm trong một
đoạn mã (chương trình) như sau:
8.3 Tạo và thực hiện thủ tục và hàm
https://tophosting.vn/
259
a. Các phép toán số học
b. Các phép toán so sánh:
c. Các phép toán Logic: AND, OR, NOT: Các phép toán so sánh tạo nên biểu
thức logic cho kết quả True(-1) hoặc False(0)
d. Phép ghép chuỗi ký tự: Muốn ghép 2 chuỗi ký tự ta sử sụng phép toán &
hoặc dấu +
8.4 Các phép toán, hàm, biến, biểu thức
+ : Cộng
- : Trừ
* : Nhân
/ : Chia
Mod : Chia lấy phần dư
 : Chia nguyên
^ : Luỹ thừa
= : Bằng
< : Nhỏ hơn
> : Lớn hơn
>= : Lớn hơn hoặc bằng
<= : Nhỏ hơn hoặc bằng
<> : khác
X Y X And Y X Or Y Not (x)
-1
-1
0
0
-1
0
0
0
-1
-1
-1
0
-1
-1
-1
0
0
0
-1
-1
https://tophosting.vn/
260
Khai báo biến:
➢Biến phải khai báo để chương trình xác định:
➢Tên của biến là gì? vì chương trình sẽ làm việc với tên đó.
➢Kiểu của biến là gì? (nguyên, thực, logic, văn bản, v.v..) vì chương trình
phải “xếp chỗ” cho các biến “lưu trú”, nghĩa là chương trình phải huy
động ô nhớ phù hợp với kiểu của biến, ví dụ nếu biến nguyên thì ô nhớ
“bé”, số thực thì ô nhớ “to”, v.v..Việc khai báo là để xếp chỗ ở của biến
(ô nhớ) cho hợp lý, tránh lãng phí (thừa không gian “lưu trú” hoặc
không đủ chỗ để “lưu trú”)
➢Dạng khai báo biến như sau:
Dim <Tên biến> [As<kiểu>]
<Tên biến>: Bạn tự đặt theo luật sau: là một chuỗi các chữ cái, chữ số, dấu
gạch chân, độ dài tên không quá 40 ký tự, không được trùng với các từ khoá có
trong Access và đặc biệt ký tự đầu phải là chữ cái..
[As<kiểu>]: Nếu phần này không ghi thì coi như biến đó ngầm định có các
kiểu: Kiểu số, chuỗi, Date/Time, Null (rỗng). Khi sử dụng biến đó tuỳ ngữ cảnh
mà xác định kiểu sau. Còn nếu ghi phần này thì kiểu có thể là: Nguyên, thực,
văn bản, v.v..
Ví dụ về khai báo biến: Dim i As Interger (i là biến nguyên ngắn)
8.4 Các phép toán, hàm, biến, biểu thức
https://tophosting.vn/
261
Các hàm thường sử dụng.
➢Với các hàm, bạn cũng phải viết đúng theo quy định của Access, ví dụ
Sin(x), Cos(x), Sqr(x), v.v..các hàm như đã trình bày ở chương 5.
Biểu thức (Expression)
➢... Các biến, hằng, hàm nối với nhau bởi phép toán được gọi là biểu
thức, biểu thức cũng có thể chỉ là 1 biến , 1 hằng, 1 hàm. Điều quan
trọng là bạn phải viết biểu thức đúng quy định (đúng phép toán đã quy
định, đúng tên biến, đúng tên hằng, đúng cách viết hằng v.v..). Ví dụ:
oBiểu thức chỉ chứa hằng: (234+678)/13
oBiểu thức số chỉ chứa biến: (a+b+c)*(a+b)
oBiểu thức số vừa chứa biến và hằng: (a+b)/7
oBiểu thức văn bản: “Tin hoc” & “Văn phong”
oBiểu thức logic:(5>13) Or (3<9)
8.4 Các phép toán, hàm, biến, biểu thức
https://tophosting.vn/
262
➢Khi lập trình trong Access, 1 câu lệnh chỉ được viết trên 1 dòng, nếu
muốn viết nhiều câu lệnh trên 1 dòng ta phải dùng dấu hai chấm(:) để
ngăn cách.
Ví dụ: a=4: b=7: s=a+b
➢ Các câu ghi chú, có ý nghĩa giải thích rõ chức năng từng hằng, biến,
biểu thức, câu lệnh, v.v.. Câu ghi chú phải bắt đầu bằng REM hoặc dấu
nháy đơn (‘), ví dụ:
Rem Doan ma sau là de vao du lieu
8.5 Một số lệnh về lập trình
https://tophosting.vn/
263
8.5 Một số lệnh về lập trình
8.5.1 Vào ra dữ liệu
a. Lệnh Inputbox$
➢ Chức năng: Cho phép nhập giá trị kiểu văn bản vào bộ nhớ
từ bàn phím
➢ Cú pháp:
Inputbox$(<Thông báo>[ , [<Tiêu đề>][,<Giá trị ngầm
định>]])
Ví dụ: Nhập tên của một khách hàng vào biến Kh
Dim Kh As String *20
Kh=InputBox$(“Tên khách hàng”)
https://tophosting.vn/
264
b. Lệnh Inputbox
➢ Chức năng: Cho phép nhập giá trị kiểu Varial vào từ bàn phím
➢ Cú pháp:
InputBox(<Thông báo>[ , [<Tiêu đề>][,<Giá trị ngầm định>]])
Ví dụ:Nhập số chứng từ của một hoá đơn vào biến Sct
Dim Sct
Sct=InputBox(“Số chứng từ”)
c. Lệnh MsgBox
➢Chức năng: Hiện chuỗi văn bản (thông báo) ra hộp thoại.
➢Cú pháp: MsgBox(<Nội dung>[ ,<kiểu>[ ,<Tiêu đề>]])
Ví dụ: MsgBox (“Hello Thao”)
Ví dụ 2: Nhập và tính tổng hai số và in kết quả ra hộp thoại
Sub Tong()
Dim a As Interger, b As Interger
a=InputBox(“vào a=”)
b= InputBox(“vào b=”)
Msgbox “Kết quả là:” & Str(a+b)
End Sub
8.5.1 Vào ra dữ liệu
https://tophosting.vn/
265
➢Như đã nói qua ở phần đầu lập trình, lệnh gán có dạng:
<Biến>=<Biểu thức>
Ví dụ: s=s+i
8.5.3 Lệnh rẽ nhánh IF…THEN…END IF
➢Dạng 1:
➢Hoạt động của lệnh này như sau:
Nếu<Biểu thức điều kiện> đúng thì thực hiện <Nhóm lệnh>
Nếu<Biểu thức điều kiện> sai thì bỏ qua lệnh If.
Ví dụ:
Sub XemTuoi()
Dim tuoi As Integer
tuoi=InputBox(“ Vao tuoi cua ban?”)
If tuoi>60 Then
MsgBox(“Chắc bạn nghỉ hưu rồi?”)
End If
End Sub
8.5.2 Lệnh gán
If <Biểu thức điều kiện> Then
<Nhóm lệnh>
End If
https://tophosting.vn/
266
➢Khi chạy chương trình:
oNếu bạn gõ vào 65 (lơn hơn 60) và Enter thì máy sẽ in ra câu: “Chắc
bạn nghỉ hưu rồi”.
oCòn nếu bạn gõ vào 25 (nhỏ hơn 60) và Enter thì máy không đưa ra
gì cả.
➢Dạng 2:
Hoạt động:
Nếu <Biểu thức điều kiện> đúng thì thực hiện <Nhóm lệnh 1> bỏ
<Nhóm lệnh 2>
Nếu <Biểu thức điều kiện> sai thì thực hiện <Nhóm lệnh 2> bỏ
<Nhóm lệnh 1>
8.5.3 Lệnh rẽ nhánh IF...THEN...END IF
If <Biểu thức điều kiện> Then
<Nhóm lệnh 1>
Else
<Nhóm lệnh 2>
End If
https://tophosting.vn/
267
➢Ví dụ 1: Ta sửa lại thủ tục XemTuoi() để gặp trường hợp nào máy cũng
trả lời:
Sub XemTuoi()
Dim tuoi As Integer
tuoi=InputBox(“ Vao tuoi cua ban?”)
If tuoi>60 Then
MsgBox(“Chắc bạn nghỉ hưu rồi?”)
Else
MsgBox(“Bạn chưa đến tuổi nghỉ hưu!” )
End If
End Sub
➢Ví dụ 2: Lập trình giải phương trình bậc hai:ax2+bx+c=0
Để tính nghiệm phương trình bậc hai này, bạn phải cho máy biết ba giá trị
cụ thể ứng với a, b, c (ở đây kiểu 3 biến ấy là thực, rõ ràng bạn phải
dùng lện InputBox). Nhờ giá trị cụ thể 3 biến đó bạn tính được Delta, sau
đó bạn phải xem xét nếu (If) Delta không âm thì có 2 nghiệm, nếu âm
thì vô nghiệm. Trình tự đó (giải thuật) được liệt kê như sau:
8.5.3 Lệnh rẽ nhánh IF...THEN...END IF
https://tophosting.vn/
268
Sub GPTB2()
Dim a As Double, b As Double, c As Double, Delta As Double
Dim x1 As Double, x2 As Double
a= InputBox(“vao a=”)
b= InputBox(“vao b=”)
c= InputBox(“vao c=”)
Delta= b*b - 4*a*c
If Delta>0 Then
x1=(-b+Sqr(Delta))/(2*a)
x2=(-b-Sqr(Delta))/(2*a)
MsgBox (“x1=” & Str(x1))
MsgBox (“x2=” & Str(x2))
Else
MsgBox (“Pt vo nghiem”)
End If
End Sub
8.5.3 Lệnh rẽ nhánh IF...THEN...END IF
https://tophosting.vn/
269
➢Không phải lúc nào cũng “không thế này thì thế kia” (2 nhánh) mà có
những trường hợp bạn phải chọn 1 trong nhiều nhánh, ví dụ: Giả sử
bằng tốt nghiệp của bạn có 3 loại: Trung bình, Khá và Giỏi. Nếu khá
thì được thưởng 100.000đ, nếu giỏi được thưởng 200.000đ, còn trung
bình thì không được thưởng.
➢Chương trình như sau:
Sub XetThuong()
Dim Loai As Integer
Loai=InputBox(“Vào loại: Trung bình gõ vào số1, Khá số2, Giỏi số3”)
Select Loai
Case 1
MsgBox(“Bạn không được thưởng”)
Case 2
MsgBox(“Bạn được thưởng 100.000đ”)
Case Else
MsgBox(“Bạn được thưởng 200.000đ”)
End Select
End Sub
8.5.4 Lệnh chọn Select...Case
https://tophosting.vn/
270
➢Khi chạy chương trình, nếu bạn gõ vào số 3 thì máy sẽ in dòng:” Bạn
được thưởng 200.000đ”. Nhưng nếu bạn không may gõ nhầm số 6 (gõ
nhầm là bình thường mà!) thì máy vẫn thưởng bạn 200.000đ, mặc dù
không có loại nào là loại 6 cả. Để an toàn bạn sửa lại đoan mã trên như
sau:
Sub XetThuong()
Dim Loai As Integer
Loai=InputBox(“Vào loại: Trung bình gõ vào số1, Khá số2, Giỏi số3”)
Select Loai
Case 1
MsgBox(“Bạn không được thưởng”)
Case 2
MsgBox(“Bạn được thưởng 100.000đ”)
Case 3
MsgBox(“Bạn được thưởng 200.000đ”)
Case Else
MsgBox(“Bạn gõ nhầm loại bằng rồi!”)
End Select
End Sub
8.5.4 Lệnh chọn Select...Case
https://tophosting.vn/
271
➢Cú pháp tổng quát của lệnh Select như sau:
➢Nếu <Giá trị i > bằng i thì thực hiện <Nhóm lệnh i> và kết thúc lệnh
Select Case.
➢Còn nếu không có 1 trường hợp nào đúng thì hực hiện <Nhóm lệnh
n+1> và cũng kết thúc luôn lệnh Select Case hoặc ra khỏi Select Case
nếu không dùng lệnh Case Else..
8.5.4 Lệnh chọn Select...Case
Select Case <Biểu thức nguyên>
Case <Giá trị 1>
<Nhóm lệnh 1>
Case <Giá trị 2>
<Nhóm lệnh 2>
………..
Case <Giá trị n>
<Nhóm lệnh n>
[Case Else
<Nhóm lệnh n+1>]
End Select
https://tophosting.vn/
272
➢Ví dụ: Tạo một thủ tục lập kế hoạch công tác trong tuần, đặt vào nút
lệnh Command() trên Form. Khi chạy chương trình và kích hoạt nút
lệnh thủ tục được thực hiện:
Private Sub command0_Click()
Dim Thu As Integer
Thu = InputBox(“Bạn cho biết thứ? ”)
Select Case Thu
Case 2
MsgBox (“Họp giao ban”)
Case 3
MsgBox (“Đi xuống phân xưởng”)
Case 4
MsgBox (“Đi lên tổng công ty”)
Case 5 Or 6
MsgBox (“Họp các phân xưởng”)
Case Else
MsgBox (“Nghỉ”)
End Select
End Sub
8.5.4 Lệnh chọn Select...Case
https://tophosting.vn/
273
➢Lệnh For có cú pháp tổng quát như sau:
➢Ban đầu <Biến đếm> nhận <Giá trị đầu>, và so sánh với <Giá trị
cuối>, nếu lớn hơn thì kết thúc For, nếu nhỏ hơn hoặc bằng thì thực
hiện <Nhóm lệnh>, gặp Next, <Biến đếm> cộng thêm với <Bước
tăng>, và đồng thời so sánh với <Giá trị cuối>, nếu lơn hơn thì kết
thúc For, còn nếu đang nhỏ hơn hoặc bằng thì lại thực hiện <Nhóm
lệnh>, gặp Next lại làm tiếp như trên.
8.5.5 Lệnh lặp For...Next
For <Biến đếm>=<Giá trị đầu> To <Giá trị cuối>[Step <Bước tăng>]
<Nhóm lệnh>
Next
https://tophosting.vn/
274
➢Ví dụ: Tính tổng s=11+22+33+...+1010 .
Sub Tong()
Dim s As Double, i As Integer
For i = 1 To 10 Step 1
s = s + i^i
Next
MsgBox “Kết quả là:” & Str(s)
End Sub
8.5.5 Lệnh lặp For...Next
https://tophosting.vn/
275
➢Dạng tổng quát như sau:
➢Chừng nào <Điều kiện> còn đúng thì thực hiện <Nhóm lệnh>
➢Khi <Điều kiện> sai thì ra thì thoát khỏi vòng lặp và thực hiện nhóm lệnh sau
Loop .
Ví dụ:
Sub Tong()
Dim s As Double, a As Double, i As Integer
i= 1
a=1/i
s= 0
Do While a>=0.0001
s= s+a
i= i+1
a=1/i
Loop
MsgBox (“Kết quả:”) & Str(s)
End Sub
8.5.6 Lệnh Do while... Loop
Do While <Điều kiện>
<Nhóm lệnh>
Loop
https://tophosting.vn/
276
➢Dạng tổng quát như sau:
➢Chừng nào <Điều kiện> vẫn còn sai thì thực hiện <Nhóm lệnh>.
➢Ví dụ trên ta viết lại theo lệnh này:
Sub Tong()
Dim s As Double, a As Double, i As Integer
i= 1
a=1/i
s= 0
Do Until a< 0.0001
s= s+a
i= i+1
a=1/i
Loop
MsgBox (“Kết quả:”) & Str(s)
End Sub
➢Khi <Điều kiện> đúng thì ra khỏi vòng lặp và thực hiện nhóm lệnh sau Loop.
8.5.7 Lệnh Do Until... Loop
Do Until <Điều kiện>
<Nhóm lệnh>
Loop
https://tophosting.vn/
277
➢Trong Access có một số đối tượng mà bạn cần quan tâm:
➢Đối tượng DBEngine: chứa đối tượng Workspaces (vùng làm việc)
➢Đối tượng Workspaces: chứa nhiều vùng làm việc, mỗi vùng chứa
một Database.
➢Đối tượng Database: chứa CSDL
➢Đối tượng RecordSets: chứa các đối tượng trong CSDL
➢Đối tượng Tabledefs: chứa các bảng của một CSDL
➢Đối tượng Querydefs: chứa các truy vấn của một CSDL
➢Đối tượng Field: chứa các trường trong bảng
➢Đối tượng Form: chứa các Form
➢v.v..
8.6 Đối tượng, biến đối tượng và xử lý đối tượng
https://tophosting.vn/
278
Cách khai báo biến đối tượng:
a. Kiểu Database cho phép tham chiếu đến một CSDL, vì vậy để làm
việc với một CSDL ta phải khai báo biến kiểu Database
➢Để làm việc với một CSDL hiện thời ta làm như sau:
Dim Db As Database (Khai báo biến Db có kiểu Database)
Set Db=DBEngine.Wokspaces(0).Database(0) (gắn biến Db ứng với CSDL
hiện thời)
➢Hoặc có thể viết:
Dim Db As Database
Set Db=CurrentDb() (Gắn biến Db với CSDL hiện thời)
➢ Làm việc với 1 CSDL khác:
Dim Db As Database
Set Db= DBEngine.Wokspaces(0).Database(<Tên_CSDL>)
8.6.1 Đối tượng và khai báo đối tượng
Dim <Tên_biến> As
<Kiểu_đối_tượng>
https://tophosting.vn/
279
b. Sử dụng biến kiểu RecordSet
➢Kiểu RecordSets cho phép ta tham chiếu đến các đối tượng của CSDL
đã khai báo như: Bảng, truy vấn, các bản ghi, v.v..
➢Ví dụ 1: Tạo 1 biến kiểu RecordSet gắn với bảng So_luong của CSDL
hiện thời:
Sub Form_Load()
Dim Db As Database
Dim Rec As Recordset
Dim Dem As Integer
Set Db = CurrentDb()
Set Rec = Db.OpenRecordset("So_luong", DB_OPEN_TABLE)
Dem = Rec.RecordCount
MsgBox "Tổng số bản ghi là" + Str(Dem)
End Sub
➢ở trên ta dùng thủ tục Form_Load(), thủ tục này khi chạy thì tự động
nạp Form.
8.6.1 Đối tượng và khai báo đối tượng
https://tophosting.vn/
280
Ví dụ 2: Ta có thể dùng một biến bảng như sau::
Sub Form_Load()
Dim Db As Database
Dim TB As TableDef
Dim Dem As Integer
Set Db = DBEngine.Workspaces(0).Databases(0)
Set TB = Db.TableDefs("So_luong")
Dem = TB.RecordCount
MsgBox "So ban ghi của Bang So_luong la:" & Str(Dem)
End Sub
8.6.1 Đối tượng và khai báo đối tượng
https://tophosting.vn/
281
Ví dụ 3: Ta có bảng KhoiA (khối A) gồm các trường: Hoten, NgaySinh,
DienToan, DienLy. DienHoa, DiemTong, GhiChu như sau:
Hãy lập trình để tính
DiemTong:
DiemTong=DiemToan+DiemLy+DiemHoa.
Sub Form_Load()
Dim Db As Database
Dim Rec As Recordset
Set Db = CurrentDb()
Set Rec = Db.OpenRecordset("KhoiA")
Do Until Rec.EOF ‘Làm cho đến hết tệp
Rec.Edit ‘cho phép sửa nội dung các bản ghi
Rec![TongDiem] = Rec![DiemToan] + Rec![DiemLy] + Rec![DiemHoa]
Rec.Update ‘cập nhật giá trị mới
Rec.MoveNext ‘Di chuyển đến bản ghi kế tiếp
Loop
Rec.Close
Db.Close
End Sub
8.6.1 Đối tượng và khai báo đối tượng
https://tophosting.vn/
282
➢Sau khi chạy chương trình ta có nội dung bảng mới như sau:
➢Chú ý:
oTa viết Rec![TongDiem], nghĩa là trường TongDiem trong trong bản
ghi, để phân biệt với biến khi khai báo từ khoá Dim...
➢Ví dụ 4: Cũng từ ví dụ 3, hãy lập trình để ghi vào trường GhiChu chữ
“Do” nếu TongDiem>=15 hoặc chữ “Truot” nếu TongTong<15
8.6.1 Đối tượng và khai báo đối tượng
https://tophosting.vn/
283
Sub Form_Load()
Dim Db As Database
Dim Rec As Recordset
Set Db = CurrentDb()
Set Rec = Db.OpenRecordset("KhoiA")
Do Until Rec.EOF ‘Làm cho đến hết tệp
If Rec![TongDiem]>=15 Then
Rec.Edit ‘cho phép sửa nội dung các bản ghi
Rec![GhiChu]=”Do”
Else
Rec.Edit ‘cho phép sửa nội dung các bản ghi
Rec![GhiChu]=”Truot”
End If
Rec.Update ‘cập nhật giá trị mới
Rec.MoveNext ‘Di chuyển đến bản ghi kế tiếp
Loop
Rec.Close
Db.Close
End Sub
8.6.1 Đối tượng và khai báo đối tượng
https://tophosting.vn/
284
Sau khi chạy ta có:
8.6.1 Đối tượng và khai báo đối tượng
https://tophosting.vn/
285
a. Câu lệnh Macro.
➢Để thực hiện một Macro ta dùng lệnh sau:
➢Lệnh này phải đựơc đặt trong các hàm hoặc thủ tục để thực thi.
b. Hành động mở, đóng các đối tượng.
➢Đóng các đối tượng: CLOSE
ví dụ: Để đóng một Form DanhSach ta gõ như sau:
DoCmd.Close acForm, “DanhSach”, acSaveYes
AcForm: là thông số chỉ Form đang hoạt động
AcSaveYes: là thông số cho phép khi đóng Form thì ghi lại mọi sự thay đổi
trên đó.
Để đóng các đối tượng khác ta làm tương tụ như ví dụ trên.
8.6.2 Mở đóng đối tượng bằng câu lệnh Marco
DoCmd. <Tên_hành_động>[,<danh sách đối số>]
https://tophosting.vn/
286
➢Mở các đối tượng ta sử dụng những hành động sau:
oOpenTable: Mở một bảng
oOpenForm: Mở một Form
oOpenReport: Mở một Report
oOpenQuery: Mở một Query
oOpenModule: Mở một Module
Ví dụ 1: Tạo một thủ tục thực hiện một Macro mở bảng DanhSach
DoCmd.Opentable (“DanhSach”)
➢Để mở các đối tượng khác ta làm tương tự như trên.
Ví dụ 2: Giả sử trong CSDL hiện thời ta có:
1. Hai bảng TaHsTs (bảng Hồ sơ Tuyển Sinh) và bảng TaDiemD
(bảng Điểm khối D) .
Bảng TaHsTs có các trường sau: Sbd, HoTen, NgaySinh, GioiTinh,
KhuVuc, UuTien, TonGiao, DanToc.
Bảng TaDiemD có các trường: Sbd, Toan, Van, Anh
2. Ba Form TuyenSinh2014, FoHsTs, FoDiemD
Một giao diện chính của Form TuyenSinh2014 như hình sau:
8.6.2 Mở đóng đối tượng bằng câu lệnh Marco
https://tophosting.vn/
287
➢Chú ý: thuộc tính Name cho
4 nút trên như sau:
oNút có tiêu đề: “NHAP HO SO” có tên NhapHoSo
oNút có tiêu đề: “NHAP DIEM” có tên NhapDiem
oNút có tiêu đề: “KET THUC” có tên KetThuc
a. Khi ta kích hoạt nút NHAP HO SO thì Form FoDsTs sẽ được mở để ta
đưa dữ liệu vào, Form này được thiết kế có hình dạng như sau:
8.6.2 Mở đóng đối tượng bằng câu lệnh Marco
https://tophosting.vn/
288
oNút có tiêu đề: “nhập” có tên NhapLyLich
oNút có tiêu đề: “kết thúc” có tên KetThucLyLich
b. Khi ta kích hoạt nút “NHậP Điểm” ở giao diện chính thì Form FoDiemD
sẽ được mở để ta đưa dữ liệu điểm sau khi đã chấm. Giao diện này có cấu
trúc như sau:
➢Chú ý: Thuộc tính Name cho 2 nút trên như sau:
oNút có tiêu đề: “nhập liệu” có tên NhapDuLieu
oNút có tiêu đề: “Kết thúc” có tên KetThucNhap
8.6.2 Mở đóng đối tượng bằng câu lệnh Marco
https://tophosting.vn/
289
➢ Sau đây là các thủ tục sự kiện cuả ba nút lệnh trên Form
TuyenSinh214 như sau:
o Mở Form TuyenSinh2014 bằng cách về CSDL, chọn Navigation pane/ Form,
chọn tệp TuyenSinh2014, chọn Design
o Chọn nút có tiêu đề NHAP HO SO/ kích phải chuột chọn Code buider
o Viết Code cho 3 thủ tục đó như sau:
Option Compare Database
Private Sub KetThuc_Click()
DoCmd.Close
End Sub
Private Sub NhapDiem_Click()
DoCmd.OpenForm ("FoDiemD")
End Sub
Private Sub NhapHoSo_Click()
DoCmd.OpenForm ("FoHsTs")
End Sub
Tương tự viết Code cho 2 thủ tục của nút lệnh trên Form FoHsTs như sau:
Rem Thủ tục trên Form FoHsTs
Option Compare Database
Private Sub KetThucLyLich_Click()
DoCmd.Close
End Sub
Rem --------------------------------------------------
8.6.2 Mở đóng đối tượng bằng câu lệnh Marco
https://tophosting.vn/
290
Private Sub NhapLyLich_Click()
Dim Db As Database, Rec As Recordset
Set Db = CurrentDb()
Set Rec = Db.OpenRecordset("TaHsTs")
Rec.AddNew
Rec("SBD") = Sbd
Rec("HOTEN") = HoTen
Rec("GIOITINH") = GioiTinh
Rec("KHUVUC") = Val(KV)
Rec("TONGIAO") = TonGiao
Rec("DANTOC") = DanToc
Rec.Update
Sbd = ""
HoTen = ""
NgaySinh = ""
GioiTinh = ""
KhuVuc = ""
TonGiao = ""
DanToc = ""
UuTien = ""
Sbd.SetFocus
End Sub
8.6.2 Mở đóng đối tượng bằng câu lệnh Marco
https://tophosting.vn/
291
Tương tự như vậy viết tiếp cho 2 thủ tục của hai nút lệnh trên Form: FoDiemD
Rem Thủ tục trên Form FoDiemD
Option Compare Database
Private Sub KetThucNhap_Click()
DoCmd.Close
End Sub
Rem ....................................................................
Private Sub NhapDuLieu_Click()
Dim Db As Database, Rec As Recordset
Set Db = CurrentDb()
Set Rec = Db.OpenRecordset("TaDiemD")
Rec.AddNew 'Thêm bản ghi mới
Rec("SBD") = Sbd
Rec("Toan") = Val(Toan)
Rec("Van") = Val(Van)
Rec("Anh") = Val(Anh)
Rec.Update 'Cập nhập bản ghi mới vào bảng TaHsTs
Sbd = ""
Toan = ""
Anh = ""
Van = ""
Sbd.SetFocus 'Chuyển trỏ đến SBD.
End Sub
8.6.2 Mở đóng đối tượng bằng câu lệnh Marco
https://tophosting.vn/
292
Tương tự như vậy viết tiếp cho 2 thủ tục của hai nút lệnh trên Form: FoDiemD
Rem Thủ tục trên Form FoDiemD
Option Compare Database
Private Sub KetThucNhap_Click()
DoCmd.Close
End Sub
Rem ....................................................................
Private Sub NhapDuLieu_Click()
Dim Db As Database, Rec As Recordset
Set Db = CurrentDb()
Set Rec = Db.OpenRecordset("TaDiemD")
Rec.AddNew 'Thêm bản ghi mới
Rec("SBD") = Sbd
Rec("Toan") = Val(Toan)
Rec("Van") = Val(Van)
Rec("Anh") = Val(Anh)
Rec.Update 'Cập nhập bản ghi mới vào bảng TaHsTs
Sbd = ""
Toan = ""
Anh = ""
Van = ""
Sbd.SetFocus 'Chuyển trỏ đến SBD.
End Sub
8.6.2 Mở đóng đối tượng bằng câu lệnh Marco
https://tophosting.vn/
https://tophosting.vn/

More Related Content

PDF
Giáo trình access2010
PDF
Giao trinh he quan tri csdl dành cho asp.net
PDF
Giao trinh he quan tri csdl
PDF
2008311102150141
PDF
23842023 giao-trinh-access-2003
DOC
Giaotrinhaccess
PDF
Giao trinh access_2003
Giáo trình access2010
Giao trinh he quan tri csdl dành cho asp.net
Giao trinh he quan tri csdl
2008311102150141
23842023 giao-trinh-access-2003
Giaotrinhaccess
Giao trinh access_2003

Similar to Bài giảng Tin học 3 - Microsoft access 2010 (20)

PPT
Access toan tap
DOC
Giao trinh access_p1_6962
PPT
Access Toan Tap
PDF
Access gt bt
PDF
Gt bt access
PPT
Bai3 gioi thieu access t9
PPTX
IC3 GS4 Access
PDF
Bài 1 Tổng quan về MS Access - Giáo trình FPT
PDF
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
PDF
Giao trinh microsoft eccess 2007[bookbooming.com]
PPT
01 modau
PDF
Giaotrinh access 2010_full_3531
PDF
Giao trinh access2000
PDF
Access2000
PDF
Giao trinh-microsoft-access2000[bookbooming.com]
PDF
Access Nguyen Son Hai
PDF
Giao trinh access nguyen son hai
DOC
Bai giang access
PDF
Hệ quản trị cơ sở dữ liệu trường đại học công nghệ.
PDF
Access toan tap
Giao trinh access_p1_6962
Access Toan Tap
Access gt bt
Gt bt access
Bai3 gioi thieu access t9
IC3 GS4 Access
Bài 1 Tổng quan về MS Access - Giáo trình FPT
Pdf bai 1 tổng quan về ms access-quan tri csdl voi access-mastercode.vn
Giao trinh microsoft eccess 2007[bookbooming.com]
01 modau
Giaotrinh access 2010_full_3531
Giao trinh access2000
Access2000
Giao trinh-microsoft-access2000[bookbooming.com]
Access Nguyen Son Hai
Giao trinh access nguyen son hai
Bai giang access
Hệ quản trị cơ sở dữ liệu trường đại học công nghệ.
Ad

Recently uploaded (20)

PPT
SINH 8 TUYẾN YÊN TUYẾN GIÁP CÂU TẠO VÀ CHỨC NĂNG
PPTX
CHƯƠNG I excel,,,,,,,,,,,,,,,,,,,,,,,,,,
PDF
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 8 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
PPTX
17. ĐẠI CƯƠNG GÃY XƯƠNG bệnh học ngoại.pptx
PDF
CHƯƠNG 1-P2: ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI VÀ LÃNH ĐẠO ĐẤU TRANH GIÀNH CHÍNH ...
DOCX
2024-2025 HSG HÓA 12 CỤM LẦN 3 - Hải Dương - đề.docx
DOCX
Luận văn group-Bài tiểu luận Ý thức - Giấc mơ.docx
DOCX
6.CQ_KT_Ke toan tai chinh 2_Pham Thi Phuong Thao.docx
PDF
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
PPTX
b44_nhiem_zf_tinhjjjjjjjjjjjjjjjjjj.pptx
PPTX
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
PPTX
Bài 6 Du an bua an ket noi yeu thuong.pptx
PDF
PHÁT TRIỂN NĂNG LỰC KHÁM PHÁ TỰ NHIÊN CHO HỌC SINH TRONG DẠY HỌC CHỦ ĐỀ VẬT S...
PPTX
Chương 2 - Mô hình thực thể kết hợp.pptx
PDF
Vision - Language - Model-- - Ebook.pdf
PDF
Dao tao va Phat trien NỘI DUNG ÔN THI CHO SINH VIÊN
PPTX
Tốc độ và vận tốc trong chuyển động thẳng
PPTX
TIẾT 8, 9, 10. BÀI 32. DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
PDF
Quyền-biểu-tình-của-công-dân-theo-hiến-pháp-Việt-Nam.pdf
SINH 8 TUYẾN YÊN TUYẾN GIÁP CÂU TẠO VÀ CHỨC NĂNG
CHƯƠNG I excel,,,,,,,,,,,,,,,,,,,,,,,,,,
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 8 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
17. ĐẠI CƯƠNG GÃY XƯƠNG bệnh học ngoại.pptx
CHƯƠNG 1-P2: ĐẢNG CỘNG SẢN VIỆT NAM RA ĐỜI VÀ LÃNH ĐẠO ĐẤU TRANH GIÀNH CHÍNH ...
2024-2025 HSG HÓA 12 CỤM LẦN 3 - Hải Dương - đề.docx
Luận văn group-Bài tiểu luận Ý thức - Giấc mơ.docx
6.CQ_KT_Ke toan tai chinh 2_Pham Thi Phuong Thao.docx
12894-44864-1-CE-1037-1038_Văn bản của bài báo.pdf
b44_nhiem_zf_tinhjjjjjjjjjjjjjjjjjj.pptx
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
Bài 6 Du an bua an ket noi yeu thuong.pptx
PHÁT TRIỂN NĂNG LỰC KHÁM PHÁ TỰ NHIÊN CHO HỌC SINH TRONG DẠY HỌC CHỦ ĐỀ VẬT S...
Chương 2 - Mô hình thực thể kết hợp.pptx
Vision - Language - Model-- - Ebook.pdf
Dao tao va Phat trien NỘI DUNG ÔN THI CHO SINH VIÊN
Tốc độ và vận tốc trong chuyển động thẳng
TIẾT 8, 9, 10. BÀI 32. DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
Quyền-biểu-tình-của-công-dân-theo-hiến-pháp-Việt-Nam.pdf
Ad

Bài giảng Tin học 3 - Microsoft access 2010

  • 1. KHOA CÔNG NGHỆ THÔNG TIN MICROSOFT ACCESS 2010 TRƯỜNG ĐẠI HỌC KINH DOANH CÔNG NGHỆ HÀ NỘI 1 https://tophosting.vn/
  • 2. Tổng quan về hệ quản trị CSDL Access 2010 Chương 1 NỘI DUNG CHƯƠNG TRÌNH: Thiết kế và cài đặt Cơ Sở Dữ Liệu Chương 2 Làm việc với Bảng (Table) Chương 3 Truy vấn dữ liệu ( Query) Chương 4 Thiết kế biểu mẫu ( Form) Chương 5 Thiết kế báo cáo ( Report) Chương 6 Thiết kế Macro Chương 7 Lập trình Module Chương 8 2 https://tophosting.vn/
  • 3. TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN Tổng quan về hệ quản trị CSDL Access 2010 Chương 1 Access 4. Các thành phần của Access 6. Cách tạo CSDL trong Access 3. Khởi động chương trình 2. Giới thiệu Access 2010 1. Giới thiệu về Hệ quản trị CSDL 7. Quản lý CSDL 8. Giao diện người dùng 5. Các đối tượng chính trong Access 3 https://tophosting.vn/
  • 4. 1.1 Giới thiệu Hệ Quản Trị Cơ Sở Dữ Liệu Access Access là một trong những hệ quản trị cơ sở dữ liệu quan hệ (RDMS - Relational Database Management System) và là phần mềm quản lý cơ sở dữ liệu quan hệ do hãng Microsoft giữ bản quyền. Tổng quan về hệ quản trị CSDL Access 2010 Chương 1 1.1.1 Access là gì: Databas e (Cơ Sơ Dữ Liệu) Access là gì? 4 https://tophosting.vn/
  • 5. ➢ Access cung cấp hệ thống công cụ rất mạnh, giúp người dùng nhanh chóng và dễ dàng xây dựng chương trình ứng dụng. 1.1.2 Access làm những gì: ➢ Access cho phép người sử dụng quản lý, bảo trì, khai thác, lưu trữ số liệu một cách có tổ chức trên máy tính, tạo ra các ứng dụng mà không cần lập trình. 1.1.3 Những ứng dụng của Access: ➢ Dùng để xây dựng hệ cơ sở dữ liệu ➢ Có thể dùng để xây dựng trọn gói những phần mềm quản lý qui mô vừa và nhỏ. ➢ Dùng để quản lý dữ liệu cho phép người dùng đăng nhập vào rồi xem, tìm kiếm, sửa, xóa, chia sẻ... Tạo các ứng dụng về quản lý mà không cần phải là một nhà phát triển. VD: Quản lý Sinh Viên, Quản Lý Bán Hàng, Quản Lý Nhân Viên... 5 https://tophosting.vn/
  • 6. 1.1.3 Những ứng dụng của Access: QUẢN LÝ THƯ VIỆN QUẢN LÝ SINH VIÊN QUẢN LÝ HỌC VIÊN QUẢN LÝ NHÀ HÀNG 6 https://tophosting.vn/
  • 7. Cơ sở dữ liệu Access( CSDL) là 1 tập hợp các dữ liệu về 1 “tổ chức” nào đó (ví dụ dữ liệu Sinh Viên) được lưu giữ trong máy tính, được nhiều người sử dụng và được tổ chức theo mô hình dữ liệu. 4. Cơ sở dữ liệu(Database) là gì? Tìm hiểu? 1.1.4 Cơ sở dữ liệu (CSDL): Các tiêu chuẩn của 1 Cơ sở dữ liệu: ➢ Không có sự dư thừa thông tin. ➢ Phản ánh đúng đắn hoạt động của tổ chức ➢ Đảm bảo an toàn dữ liệu (vì được nhiều người sử dụng) ➢ Có sự độc lập giữa CSDL và các chương trình để đảm bảo cho việc bảo trì ➢ Hiệu quả sử dụng tốt: khai thác trên các máy khác nhau cho kết quả như nhau. 7 https://tophosting.vn/
  • 8. ➢ Có rất nhiều loại hệ quản trị CSDL khác nhau, ngoài Access còn có: MySQL, Oracle, PostgreSQL, SQL Server, DB2, Infomix... ➢ Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS), là phần mềm hay hệ thống được thiết kế để quản trị một cơ sở dữ liệu. 5. Hệ quản trị cơ sở dữ liệu là gì? Đặt ra câu hỏi? 1.1.5 Hệ quản trị CSDL: ? ? ? ? 8 https://tophosting.vn/
  • 9. 1.2 Giới thiệu Microsoft Access 2010 1.2.1 Lịch sử phát triển: 9 https://tophosting.vn/
  • 10. ➢ Các lệnh được bố trí trên các tab ở phía bên trái của màn hình, và mỗi tab chứa một nhóm các lệnh có liên quan. Các thao tác sử dụng ít đi, đơn giản hơn so với phiên bản trước ➢ Giao diện của Access 2010 cũng đã thay đổi khá là thân thiện với người sử dụng. Cửa sổ Danh mục chính thay thế và mở rộng các chức năng của cửa sổ Database. ➢ Backstage View cho phép bạn truy cập vào tất cả các lệnh áp dụng cho toàn bộ cơ sở dữ liệu, như là thu gọn và sửa chữa, hoặc các lệnh từ menu File. 1.2.2 Access 2010 có gì mới? 10 https://tophosting.vn/
  • 11. 1.3 Khởi động Access 2010 Cửa sổ chương trình MS Access 2010 Khởi động chương trình MS Access bằng một trong hai cách sau: 1. Start -> (All) Programs -> Microsoft Office -> Microsoft Office Access 2010. 2. Click đúp chuột trái vào biểu tượng MS Access 2010 trên Desktop. 11 https://tophosting.vn/
  • 12. 1.4 Các thành phần trong cửa sổ khởi động Chú ý: Thanh Quick Access chỉ hiển thị khi bạn đang mở một Cơ sở dữ liệu (CSDL) bất kỳ. ➢ Thanh Quick Access: hiển thị bên trái của thanh tiêu đề, mặc định thanh Quick Access gồm các nút công cụ Save, Undo, … 1.4.1 Thanh Quick Access 12 https://tophosting.vn/
  • 13. ➢ Bên phải của Quick Access chứa nút Customize , giúp bạn chỉ định các nút lệnh hiển thị trên thanh Quick Access, ➢ Nhấp vào Show Below the Ribbon : Để hiển thị Thanh Quick Access dưới Ribbon.( Hình 3) 1.4.1 Thanh Quick Access 13 https://tophosting.vn/
  • 14. ➢ Muốn thêm, xóa, nút lệnh vào Quick Access : File/option/ Quick Access toobar ( Hình 2) Nhấp Add để thêm Nhấp Remove để xóa Nhấp OK để lưu 1.4.1 Thanh Quick Access 14 https://tophosting.vn/
  • 15. Là một cửa sổ được chia thành 3 khung: 1. Khung bên trái gồm các lệnh trong tab File 2. Khung giữa chứa các loại tập tin cơ sở dữ liệu mà bạn có thể tạo mới. 3. Khung bên phải: để nhập tên và chọn vị trí lưu tập tin mới tạo và thực thi lệnh tạo mới cơ sơ dữ liệu. . 1 2 3 1.4.2 Vùng làm việc: 15 https://tophosting.vn/
  • 16. Dưới thanh tiêu đề, Thanh dài hiển thị các nút lệnh Home, Create... được gọi là Ribbon ➢ Ribbon được chia thành từng nhóm khác nhau ➢ Mỗi nhóm hiển thị tiêu đề con bên dưới mỗi nhóm ➢Để thiết lập thuộc tính mỗi nhóm nhấp vào Thu nhỏ kích thước của Ribbon bằngcách click nút Minimize The Ribbon 1.4.3 Thanh Ribbon: 16 https://tophosting.vn/
  • 17. Cửa sổ Properties giúp bạn có thể hiệu chỉnh thuộc tính của đối tượng, tùy theo đối tượng đang được chọn mà cửa sổ thuộc tính sẽ chứa những thuộc tính tương ứng của đối tượng đó. Cửa sổ Properties được chia thành năm nhóm: ➢ Format: Gồm các thuộc tính định dạng đối tượng ➢ Data: Gồm các thuộc tính truy suất dữ liệu của đối tượng. ➢ Event: Gồm các sự kiện (event) của đối tượng. ➢ Other: Gồm các thuộc tính giúp bạn tạo hệ thống menu, toolbars,… ➢ All: Gồm tất cả các thuộc tính trong bốn nhóm trên. 1.4.4 Cửa sổ Properties: 17 https://tophosting.vn/
  • 18. ➢ Navigation Pane là khung chứa nội dung chính của cơ sở dữ liệu. ➢ Từ khung Navigation Pane, bạn có thể mở bất kỳ Table, Query, Form, Report, Macro, hoặc Module trong cơ sở dữ liệu bằng cách double click vào tên của đối tượng. 1 •Ẩn hiện khung cửa sổ Nagvigation Pane 2 •Ẩn hiện đối tượng 3 •Hiển thị đối tượng 4 •Danh sách các đối tượng Thanh Navigation Pane khi bị ẩn: 1.4.5 Thanh Navigation Pane 18 https://tophosting.vn/
  • 19. 1.5 Các đối tượng chính trong Access 2010 Table (Bảng) Module (Lập trình) ACCESS (Cơ sở dữ liệu) Query (Truy vấn) Form (Biểu mẫu) Macro (Tập lệnh) Report (Báo cáo) 19 https://tophosting.vn/
  • 20. Table: Là đối tượng dùng để lưu dữ liệu. Một bảng bao gồm cột và hàng - Cột hay còn gọi là trường (Field) - Hàng hay còn gọi là bản ghi (Record) VD: Quan sát bảng Khách Hàng dưới đây: Bảng có 5 trường: Mã KH, Tên công ty, Địa Chỉ, Thành phố, SĐT. Table Query Form Macro Module Repor t 1.5.1 Table (Bảng) 20 https://tophosting.vn/
  • 21. Query: là công cụ được sử dụng để trích rút dữ liệu theo những điều kiện được xác định, tập dữ liệu trích rút cũng có dạng bảng biểu. VD: Quan sát truy vấn dưới đây: Truy vấn trên trích rút ra thông tin các sản phẩm theo Mã KH. Table Query Form Macro Module Repor t 1.5.2 Query (Truy vấn) 21 https://tophosting.vn/
  • 22. Form: Là đối tượng thiết kế để nhập hoặc hiển thị dữ liệu giúp xây dựng các thành phần giao tiếp giữa người sử dụng với chương trình. VD: Quan sát Form dưới đây: Table Query Form Macro Module Repor t 1.5.3 Form ( Biểu mẫu) 22 https://tophosting.vn/
  • 23. Report: Là công cụ được sử dụng để tạo báo cáo dữ liệu được lấy từ các bảng (Table) hoặc từ truy vấn (Queries). VD: Quan sát Report dưới đây: Table Query Form Macro Module Repor t 1.5.4 Report ( Báo cáo) 23 https://tophosting.vn/
  • 24. Marco: Là đối tượng định nghĩa một hoặc nhiều hành động (thao tác) mà Access sẽ thực hiện một lần khi chạy. VD: Quan sát Macro dưới đây: Table Query Form Macro Module Repor t 1.5.5 Macro ( Tập lệnh) 24 https://tophosting.vn/
  • 25. Module: Là ngôn ngữ lập trình hoạt động theo các sự kiện, trên nguyên tắc của lập trình cấu trúc, nhằm xây dựng các ứng dụng một cách linh hoạt trên nền các đối tượng của Access. VD: Quan sát Module dưới đây: Table Query Form Macro Module Repor t 1.5.6 Lập trình Module 25 https://tophosting.vn/
  • 26. 1.6 Cách tạo cơ sở dữ liệu trong Access 2010 Thực hiện: Menu File -> New - > Blank Database -> Create 1.6.1 Tạo một cơ sở dữ liệu rỗng (Blank Database) ➢ File name: nhập tên cho Cơ Sở Dữ Liệu ➢ Đuôi mở rộng của Access 2010 là .accdb ➢ Nếu không chỉ định đường dẫn thì CSDL được lưu mặc định vào thư mục Document ➢ Để chỉ định thư mục lưu ta chọn Brows và nhấp vào Create để tạo CSDL 26 https://tophosting.vn/
  • 27. Thực hiện: Tại cửa sổ khởi động/ New/Sample Template/CSDL có sẵn/Create 1.6.2 Tạo một cơ sở dữ liệu theo mẫu (Template) ➢ Trong khung File name nhập tên CSDL. ➢ Click vào nút Brows để chỉ định vị trí lưu tệp tin ➢ Click vào Create để tạo CSDL. 27 https://tophosting.vn/
  • 28. 1.7 Quản lý Cơ Sở Dữ Liệu Access 2010 Recent: hiển thị danh sách các tập tin cơ sở dữ liệu được mở gần nhất. Số tập tin hiển thị trong danh sách này mặc định là 9 Có thể thay đổi bằng các cách sau: 1.7.1 Recent ➢ Tại cửa sổ làm việc của Acces, chọn tab File. ➢ Chọn Options/Client Settings ➢ Trong mục Display, thay đổi giá trị của thuộc tính “Show This Number of Recent Documents” ➢ Nhập số bản ghi muốn hiển thị 28 https://tophosting.vn/
  • 29. Để mở một cơ sở dữ liệu đã có ta thực hiện một trong các cách sau: Cách 1: Tại cửa sổ khởi động chọn File/Open.../chọn tệp tin cở sở cần mở/Open Cách 2: nhấp double click vào tệp CSDL cần mở 1.7.2 Mở một cơ sở dữ liệu (Open) ➢ Open: mở CSDL mặc định bình thường. ➢ Open Read Only: mở CSDL ở chế độ chỉ đọc, không chỉnh sửa. ➢ Open Exclusive: mở chế độ bảo mật. ➢ Open Exclusive Read Only: chế độ chỉ đọc và bảo mật. 29 https://tophosting.vn/
  • 30. Để đóng một cơ sở dữ liệu đang chạy ta thực hiện cách sau: Tại cửa sổ khởi động , File -> Close Database Để đóng chương trình Access ta thực hiện cách sau: Tại cửa sổ khởi động, File -> Exit (Alt+F4) hoặc ấn nút (X) 1.7.3 Thoát khỏi cơ sở dữ liệu (Exit) 30 https://tophosting.vn/
  • 31. Khi tạo thêm đối tượng trong cơ sở dữ liệu thì dung lượng của tập tin cơ sở dữ liệu sẽ tăng lên, khi xóa một đối tượng thì vùng nhớ của nó sẽ rỗng, nhưng không sử dụng được. 1.7.4 Thu gọn và chỉnh sửa CSDL (Compact & Repair) Chức năng Compact & Repair Database giúp thu hồi lại phần bộ nhớ bị rỗng, làm cho tập tin cơ sở dữ liệu gọn lại. Cách thực hiện: - Mở cơ sở dữ liệu cần thu gọn và chỉnh sửa - Chọn Menu File - Click nút Compact & Repair Database 31 https://tophosting.vn/
  • 32. Có thể xuất dữ liệu sang cơ sở dữ liệu Access khác, hoặc Excel, Word, Pdf… 1.7.5 Xuất dữ liệu từ Access sang ứng dụng khác (Export) Cách thực hiện: ➢ Chọn đối tượng muốn xuất sang ứng dụng khác. ➢ Chọn tab External Data. ➢ Trong nhóm công cụ Export, chọn loại ứng dụng mà bạn muốn xuất dữ liệu: Excel, Text file, XML file, Word, Access… ➢ Click nút Browse… chỉ định vị trí xuất dữ liệu. ➢ Click OK hoàn tất việc export dữ liệu. 32 https://tophosting.vn/
  • 33. Có thể chép dữ liệu từ ứng dụng khác như Excel, ODBC Database, Access, …vào cơ sở dữ liệu hiện hành. 1.7.6 Nhập dữ liệu từ ứng dụng khác vào Access (Import) Cách thực hiện: ➢ Chọn tab External Data ➢ Trong nhóm lệnh Import & Link, chọn ứng dụng mà bạn muốn chép dữ liệu. ➢ Lần lượt làm theo các bước hướng dẫn của Access: 33 https://tophosting.vn/
  • 34. 1.7.6 Nhập dữ liệu từ ứng dụng khác vào Access (Import) Trong cửa sổ làm việc của Access, chọn tab External Data, click nút Excel trong nhóm lệnh Import & Link Chọn tập tin Excel cần chép (Click nút Browse… để tìm tập tin Excel)-> Open-> OK, sau đó thực hiện theo các bước hướng dẫn của Access: + Chọn sheet chứa dữ liệu cần chép -> Next. + Chọn dòng làm tiêu đề cho bảng -> Next. + Chỉ định thuộc tính cho các field -> Next. + Chọn cách tạo khóa cho bảng: ▪ Let Access add primary key: Access tự tạo khóa. ▪ Chose my own primary key: Bạn chỉ định khóa. ▪ No primary key: Không tạo khóa + Nhập tên cho bảng -> Finish + Access hiển thị thông báo cho biết hoàn tất quá trình import một file Excel thành một bảng trong Access a. Nhập dữ liệu từ Excel vào Access (Import) 34 https://tophosting.vn/
  • 35. Có thể chép dữ liệu từ ứng dụng khác như Excel, ODBC Database, Access, …vào cơ sở dữ liệu hiện hành. 1.7.6 Nhập dữ liệu từ ứng dụng khác vào Access (Import) ➢ Trong cửa sổ làm việc của Access, chọn tab External Data, click nút Access trong nhóm lệnh Import & Link ➢ Chọn tập tin Access chứa dữ liệu cần chép (Click nút Browse… để tìm tập tin Access)- >Open. ➢ Chọn tùy chọn “Import table, query, form, report, macro and modules into the current database”để chỉ định vị trí lưu trữ dữ liệu trong cơ sở dữ liệu hiện hành->OK ➢ Trong cửa sổ Import object, chọn đối tượng cần chép. Có thể chọn nhiều đồng thời đối tượng hoặc chọn tất cả bằng cách click nút Select All->OK. b. Nhập dữ liệu từ Access vào CSDL hiện hành: 35 https://tophosting.vn/
  • 36. Cách thực hiện: + Mở cơ sở dữ liệu ở chế độ Exclusive bằng cách: File-Open- Open Exclusive. + Chọn tab File, Chọn lệnh Info Click nút set Database Password 1.7.7 Bảo Mật trong Access 2010 (Password) + Nhập Password 2 lần , OK a. Tạo mật khẩu bảo mật CSDL: 36 https://tophosting.vn/
  • 37. Cách thực hiện: + Mở cơ sở dữ liệu ở chế độ Exclusive bằng cách: File-Open- Open Exclusive. + Chọn tab File, chọn lệnh Info-Click nút UnSet DatabasePassword. . 1.7.7 Bảo Mật trong Access 2010 (Password) + Nhập Password để gỡ bỏ , OK b. Gỡ bỏ mật khẩu trong CSDL: 37 https://tophosting.vn/
  • 38. 1.8 Giao diện người dùng trong Access 2010 ➢ Click tab Create trên thanh Ribbon. ➢ Trong nhóm công cụ của từng đối tượng,chọn cách tạo tương ứng 1.8.1 Tạo mới một đối tượng: 1.8.2 Thiết kế lại một đối tượng: ➢ Nếu đối tượng đang đóng: + Click phải trên đối tượng cần thiết kế lại. + Chọn Design view. ➢ Nếu đối tượng đang mở + Click nút Design View 1.8.3 Xem nội dung trình bày của một đối tượng: ➢ Nếu đối tượng đang mở ở chế độ Design View + Click nút View. ➢ Nếu đối tượng đang đóng: + Click phải trên tên đối tượng cần xem. + Chọn Open. 38 https://tophosting.vn/
  • 39. ➢ Click phải chuột trên đối tượng cần xóa, ➢ Chọn mục delete trên Menu Popup. ➢ Hoặc chọn rồi nhấn phím Delete. Hoặc nút trên thanh công cụ. 1.8.4 Xóa một đối tượng 1.8.5 Đổi tên đối tượng: ➢ Click phải chuột trên đối tượng, chọn rename, ➢ Hoặc nhấn F2 ➢ Nhập tên mới. 1.8.6 Sao chép một đối tượng: ➢ Click phải chuột lên thành viên cần chép ➢ Chọn mục copy để chép đối tượng vào Clipboard. ➢ Click nút Paste trên thanh Menu để chép vào cửa sổ database. ➢ Nhập tên cho đối tượng sao chép. ➢ Đối với kiểu đối tượng Table, ta có thể lựa chọn 1 trong 3 kiểu sao chép + Structure only: Sao chép cấu trúc + Structure and data: Sao chép cấu trúc và dữ liệu 39 https://tophosting.vn/
  • 40. Chức năng Link trong Acces để duy trì mối liên kết với dữ liệu nguồn. Nếu dữ liệu nguồn thay đổi thì dữ liệu trong bảng liên kết sẽ thay đổi theo và ngược lại. Cách thực hiện: Tương tự như chức năng Import, nhưng trong cửa sổ Get External Data, ta chọn tùy chọn “Link to data source by creating a link table”- Chọn bảng muốn link- OK 1.8.7 Chức năng Link 1.8.8 Chọn giao diện người dùng trong Access 2010: Access 2010, bạn có sự lựa chọn của việc sử dụng các giao diện truyền thống hoặc loại giao diện mới có dạng các tab. 40 https://tophosting.vn/
  • 41. Tabbed Documents là giao diện lý tưởng cho người dùng làm việc với nhiều hơn một đối tượng tại một thời điểm. ➢ Trong giao diện này form và report không thể nằm trên đầu trang của một khác và người dùng có thể xem tất cả các điều khiển trên một đối tượng giao diện người dùng mà không cần phải di chuyển một đối tượng trong đường đi. 1.8.9 Tabbed Documents 41 https://tophosting.vn/
  • 42. ➢ Overlapping Windows có lợi thế hơn. Do sự đa dạng của việc thiết lập thuộc tính BorderStyle và khả năng loại bỏ các nút Min, Max, và Close. ➢ Với giao diện Overlapping Windows, bạn có thể dễ dàng buộc người dùng tương tác với một form tại một thời điểm. 1.8.10 Overlapping Windows 42 https://tophosting.vn/
  • 43. Chuyển sang dạng Overlapping Windows ta thực hiện như sau: 1.8.11 Chuyển từ giao diện Tabbed Documents sang Overlapping Windows ➢ Trong cửa sổ làm việc của Access, chọn tab File- chọn lệnh Options. ➢ Trong cửa sổ Access options, chọn Current Database. ➢ Trong mục Document- Window Options - Chọn Overlapping Windows-OK ➢ Thoát khỏi Access và khởi động lại. 43 https://tophosting.vn/
  • 44. TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN Thiết kế và cài đặt Cơ sở dữ liệu Chương 2 1 Thiết kế các Bảng và xác định các mối quan hệ 2. Cài đặt các Bảng lên đĩa thông qua Access 2 3 3. Thiết lập các mối quan hệ giữa các Bảng 44 https://tophosting.vn/
  • 45. 2.1 Phân tích CSDL 2.1.1 Đặt vấn đề Trong một xí nghiệp, hàng ngày người ta xuất vật tư theo phiếu xuất kho: ➢ Cùng một người nhận vật tư, nhưng ở phiếu khác thì ta phải ghi lặp lại tên và địa chỉ của họ. ➢ Nếu có thêm vật tư M3, M4, v.v.. thì cấu trúc trên bị thiếu cột, nghĩa là cấu trúc trên không phù hợp nữa, mặt khác rất lãng phí để ghi tên trường mã vật tư. ➢ Bởi vậy phải biết phân tích CSDL để đưa ra được bảng hợp lý Ta thấy cấu trúc bảng trên có những điều không hợp lý như sau: 45 https://tophosting.vn/
  • 46. Để phân tích tốt phải hiểu được CSDL là gì ? Đó là một môn học riêng (dành cho chuyên ngành) Ở đây ta chỉ dùng trực giác để xây dựng một cách tương đối, đáp ứng nhu cầu ứng dụng ngay của Access mà thôi. 2.1.1 Đặt vấn đề 46 https://tophosting.vn/
  • 47. ➢ Giả sử bạn cần quản lý một cửa hàng bán hàng hóa trong thành phố. Bạn hãy phân tích và thiết kế một CSDL nhằm thực hiện các yêu cầu quản lý thực tế. Đó là quản lý các nhân viên trong cửa hàng, các sản phẩm, các khách hàng, các hoá đơn ➢ Theo trực giác chúng ta cần gì? ➢ NHÂN VIÊN: Mỗi một nhân viên cần có thông tin gì? ➢ SẢN PHẨM: Mỗi sản phẩm cần có gì để quản lí ➢ KHÁCH HÀNG: Mỗi khách hàng cần có thông tin gì? ➢ HÓA ĐƠN: Mỗi một hóa đơn cần có những gì? ➢ CHI TIẾT HÓA ĐƠN: Một chi tiết hóa đơn cho biết gì? 2.1.1 Giải quyết vấn đề 47 https://tophosting.vn/
  • 48. 1 Mỗi trường trong bảng phải mô tả một loại thông tin duy nhất. 2 Mỗi bản ghi có một số trường tối thiểu, nhờ nó mà không có các bản ghi trùng nhau. (số trường tối thiểu đó gọi là khoá cơ bản) 3 Các trường trong bảng phải đầy đủ và liên quan đến khoá cơ bản hay còn gọi là liên quan đến chủ thể của bảng (điều này được gọi là phụ thuộc hàm) Có thể thay đổi được một trường bất kỳ (trừ các khoá cơ bản) mà không ảnh hưởng đến mọi trường khác 4 2.1.2 Một số các quy tắc về xây dựng CSDL 48 https://tophosting.vn/
  • 49. 1 Mỗi trường trong bảng phải mô tả một loại thông tin duy nhất. Giả sử ta có một phiếu xuất kho như sau: Ta thấy mã vật tư 1 và vật tư 2 đều mô tả một loại thông tin là mã vật tư vậy tại sao ta không để chung là mã vật tư https://tophosting.vn/
  • 50. 2 Mỗi bản ghi có một số trường tối thiểu, nhờ nó mà không có các bản ghi trùng nhau. (số trường tối thiểu đó gọi là khoá cơ bản) Để xây dựng bảng Nhân Viên ta xây dựng gồm: ➢ Ta thấy có hai bản ghi thông tin giống hệt nhau vậy làm cách nào để phân biệt ➢ Hãy thêm mã nhân viên sẽ giúp chúng ta khác phục điều này Họ tên Giới tính Ngày sinh Địa chỉ Lê Anh Nu 12/2/1977 Hà nội Hà Thi Tú Nu 13/4/1974 Hà Nam Lê Anh Nu 12/2/1977 Hà nội Mã NV Hoten Giới tính Ngày sinh Địa chỉ 01 Lê Anh Nu 12/2/1977 Hà nội 02 Hà Thị Tú Nu 13/4/1974 Hà Nam 03 Lê Anh Nu 12/2/1977 Hà nội https://tophosting.vn/
  • 51. 3 Các trường trong bảng phải đầy đủ và liên quan đến khoá cơ bản hay còn gọi là liên quan đến chủ thể của bảng (điều này được gọi là phụ thuộc hàm) ➢ Ta thấy Họ tên, giới tính, ngày sinh, địa chỉ liên quan đến Mã NV giúp cho thông tin nhân viên rõ ràng Mã NV Họ tên Giới tính Ngày sinh Địa chỉ 01 Lê Anh Nu 12/2/1977 Hà nội 02 Hà Thị Tú Nu 13/4/1974 Hà Nam 03 Lê Anh Nu 12/2/1977 Hà nội Ta gọi Mã NV là khóa cơ bản ➢ Không thể thêm vào một trường chẳng hạn Số lượng vào bảng này vì chẳng liên quan gì đến Mã NV cả https://tophosting.vn/
  • 52. 4 Có thể thay đổi được một trường bất kỳ (trừ các khoá cơ bản) mà không ảnh hưởng đến mọi trường khác ➢ Ở bảng Phiếu Kho bên cạnh nếu dòng 1 ta vô tình gõ sai tên người nhận là Lê Anh Quân thì: - Địa chi Lê Anh Quân chỉ có là 13 Hàng Bài - không có Lê Anh Quân nào ở 35 Tràng Thi - Thực ra Địa Chỉ là phụ thuộc vào Người Nhận. Do đó ta nên tách bảng Phiếu Kho thành 2 bảng: Phiếu và Địa Chỉ như bên: Bảng Phiếu Bảng Địa Chỉ https://tophosting.vn/
  • 53. Bảng 1: Danh mục Khách Hàng (KHACHHANG): Bảng 2: Danh mục Sản Phẩm (SANPHAM): Bảng 3: Danh mục Nhân Viên (NHANVIEN): Để rõ hơn về vấn đề này chúng ta phải hiểu Bảng là gì? Hãy hình dung bài toán CSDL vừa phân tích gồm các bảng 2.2 Cài đặt dữ liệu lên các bảng trong Access 53 https://tophosting.vn/
  • 54. Bảng 4: Hóa đơn (HOADON): Bảng 5: Chi tiết hóa đơn (CTHD): Một cơ sở dữ liệu Access bao gồm tập hợp các bảng dữ liệu có quan hệ chặt chẽ, phù hợp để phục vụ lưu trữ dữ liệu cho một ứng dụng quản lý 2.2 Cài đặt dữ liệu lên các bảng trong Access 54 https://tophosting.vn/
  • 55. 2.3 Thiết kế các bảng và xác định mối quan hệ ➢ Dựa vào số liệu thống kê trên ta xây dựng Bảng. Tìm hiểu cấu trúc của một bảng và cách tạo một bảng trong Access 55 https://tophosting.vn/
  • 56. TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN Làm việc với Bảng (Table) Chương 3 Các thao tác với Bảng 1. Khái niệm Bảng 2. Cách tạo Bảng 3. Các kiểu dữ liệu 4. Các thuộc tính Bảng 1 Hiệu chỉnh cấu trúc Bảng 5. Hiệu chỉnh cấu trúc của Bảng 6. Tạo các quan hệ giữa các Bảng trong cùng CSDL 2 Thao tác CSDL 7. Cách nhập dữ liệu cho Bảng 8. Các thao tác với Bảng ở chế độ Datasheet 3 56 https://tophosting.vn/
  • 57. 3.1 Các khái niệm 3.1.1 Khái niệm về bảng trong Access Bảng (Table): Là thành phần cơ bản, đối tượng chính trong cơ sở dữ liệu Access. ➢ Đây là đối tượng quan trọng nhất, dùng để lưu trữ dữ liệu, mỗi bảng lưu trữ thông tin về một đối tượng đang quản lý. ➢ Một bảng gồm có nhiều cột (Fields) và nhiều hàng (Records). 57 https://tophosting.vn/
  • 58. 3.1.1 Khái niệm về bảng trong Access ❑ Cột (Field) : Mỗi field (field hoặc cột) trong một bảng chỉ chứa một loại dữ liệu duy nhất, nó lưu trữ một thuộc tính của đối tượng.Trong một bảng phải có ít nhất một field. ❑ Dòng (Record): Là một thể hiện dữ liệu của các field trong bảng. Trong một bảng có thể có không có record nào hoặc có nhiều records. Trong một bảng thì dữ liệu trong các record không được trùng lắp. Record(Bản ghi) Field (Cột) 58 https://tophosting.vn/
  • 59. 3.1.2 Khái niệm Các Khóa trong Bảng Khóa chính (Primary Key): ➢ Trường khoá có tác dụng phân biệt giá trị các bản ghi trong cùng một bảng với nhau. ➢ Trường khoá có thể chỉ 01 trường, cũng có thể được tạo từ tập hợp nhiều trường (gọi bộ trường khoá). ➢ Khi một Field hoặc nhiều field kết hợp được chỉ định là khóa chính thì Access sẽ tự động tạo chỉ mục cho chúng. ➢ Khi nhập dữ liệu, Access sẽ tự động kiểm tra khóa chính và không cho phép trùng lắp, và không rỗng. 59 https://tophosting.vn/
  • 60. 3.2 Khái niệm Các Khóa trong Bảng Khóa phụ (Foreign Key): ➢ Khóa ngoại là một field hay một nhóm các field trong một record của một bảng, trỏ đến khóa chính của một record khác của một bảng khác. ➢ Thông thường, khóa ngoại trong một bảng trỏ đến khóa chính của một bảng khác. ➢ Dữ liệu trong field khóa ngoại phải tồn tại trong field khóa chính mà nó trỏ tới. Khóa ngoại dùng để tạo quan hệ giữa các bảng trong cơ sở dữ liệu. 60 https://tophosting.vn/
  • 61. 3.2.1 Tạo bảng bằng chức năng Table Design 3.2 Cách tạo bảng ➢ trên thanh Ribbon ➢ click tab Create, trong nhóm lệnh Table ➢ click nút lệnh Table Design ➢ xuất hiện cửa sổ thiết kế bảng gồm các thành phần: ➢ Field Name: định nghĩa các trường trong bảng ➢ Data Type: chọn kiểu dữ liệu để lưu trữ dữ liệu của Trường tương ứng. ➢ Description: dùng để chú thích ý nghĩa của trường. ➢ Field Properties: thiết lập các thuộc tính của trường, gồm có hai nhóm Bước 1: Trong cửa sổ làm việc của Access 61 https://tophosting.vn/
  • 62. 3.2.1 Tạo bảng bằng chức năng Table Design ➢ Nhập tên field trong cột Field Name ( Tên trường) ➢ Chọn kiểu dữ liệu cho field trong cột Data Type. ( Kiểu dữ liệu) ➢ Chú thích cho field trong cột Description.( Ghi chú thích) ➢ Chỉ định thuộc tính cho trường trong khung Field Properties (Thuộc tính) ➢ Đặt trỏ tại field được chọn làm khóa chính (hoặc chọn các trường đồng thời làm khóa). ➢ Click nút Primary key trên thanh công cụ Table (Table Tools), hoặc click phải trên tên field, chọn lệnh Primary key. Bước 2: Trong cửa sổ thiết kế, thực hiện các công việc sau: Bước 3: Xác định khóa chính cho bảng: 62 https://tophosting.vn/
  • 63. 3.2.1 Tạo bảng bằng chức năng Table Design Bước 4: Lưu bảng vừa tạo bằng cách: ➢ Click vào nút Save trên thanh Quick Access. ➢ Nhập tên cho bảng trong hộp thoại Save as như hình (trong trường hợp Table mới tạo, chưa đặt tên). Lưu ý: Nếu bảng chưa được đặt khóa chính thì Access sẽ hiển thị một hộp thoại thông báo: ➢ Nhấn nút Cancel để trở lại cửa sổ thiết kế, đặt khoá chính cho bảng. ➢ Nhấn nút No để lưu mà không cần đặt khóa chính, có thể đặt sau. ➢ Nhấn nút Yes để Access tự tạo khoá chính có tên là ID, kiểu Autonumber. 63 https://tophosting.vn/
  • 64. 3.2.2 Tạo bảng trong chế độ Datasheet View : Có thể tạo bảng bằng cách định nghĩa trực tiếp các cột trong chế độ DataSheet View như sau: Trong cửa sổ làm việc của Access: ➢ Chọn tab Create trên thanh Ribbon, trong nhóm lệnh Table ➢ Click nút Table, xuất hiện bảng mới ở chế độ Datasheet View. ➢ Thanh Ribbon chuyển sang tab Field với nhóm lệnh Add & Delete giúp bạn chọn kiểu dữ liệu cho Field mới khi thêm Field vào bảng. ➢ Nhập tên cho Field mới. 64 https://tophosting.vn/
  • 65. 3.3 Các kiểu dữ liệu trong Bảng (Data Type) Trong Access mỗi Field có thể nhận một trong các kiểu dữ liệu sau: Kiểu dữ liệu Dữ liệu Kích thước Text Văn bản Tối đa 255 ký tự Memo Văn bản nhiều dòng Tối đa 65.535 ký tự Number Kiểu số 1,2,4, 8 byte Date/Time Ngày tháng 8 byte Currency Tiền tệ, mặc định $ 8 byte AutoNumber Số tự động tăng dần 4 byte Yes/No Kiểu logic, Yes/No; True/False 1 bit OLE Object Dữ liệu kiểu đối tượng 65 https://tophosting.vn/
  • 66. 3.4 Các thuộc tính của Trường (Field Properties ) 3.4.1 Field Size ( kích thước của trường) ➢ Dữ liệu kiểu text: giới hạn kích thước từ 0- 255 ký tự, mặc định là 50 ký tự. ➢ Dữ liệu kiểu Memo: giới hạn kích thước từ 0- 65.535 ký tự. ➢ Đối với kiểu dữ liệu Number: kiểu Number bao gồm một số kiểu con, giới hạn kích thước kiểu Number chính là xác định kiểu con Quy định kích thước của field, tuỳ thuộc vào kiểu dữ liệu. Chỉ có hiệu lực với các Field có kiểu là Text hoặc Number. 66 https://tophosting.vn/
  • 67. 3.4 Các thuộc tính của Trường (Field Properties ) 3.4.2 Decimal Places : Quy định số chữ số thập phân (chỉ sử dụng trong trường hợp số có dạng single, double). Đối với kiểu Currency, Fixed, Percent luôn luôn decimal places là 2. 67 https://tophosting.vn/
  • 68. 3.4 Các thuộc tính của Trường (Field Properties ) 3.4.3 Format a. Các ký tự định dạng kiểu dữ liệu Text ( văn bản) Ký tự định dạng Tác dụng @ Chuỗi ký tự > Chuỗi văn bản chữ in hoa < Chuỗi văn bản chữ thường ‘’Chuỗi ký tự’’ Chuỗi ký tự nằm sau 2 dấu ‘ <ký tự> Ký tự nằm sau dấu [Black], [Yellow], [Red] Màu chữ (Màu đen, màu vàng, đỏ) [Green], [Blue], [White] Xanh, xanh biển, trắng Định dạng Dữ liệu nhập Hiển thị >[Red] Thiên yết THIÊN YẾT 68 https://tophosting.vn/
  • 69. 3.4 Các thuộc tính của Trường (Field Properties ) 3.4.3 Format b. Các ký tự định dạng kiểu dữ liệu Number Ký tự Tác dụng General Number Hiển thị đúng như số nhập vào Currency Có dấu phân cách, thập phân và ký hiệu tiền tệ Fixed Giống như định dạng trong máy tính và số lẻ phụ thuộc vào phần Decimal ( thập phân) Standard Giống như Fixed thêm có dấu phân cách hàng ngàn Percent Hiển thị phần trắm (%) Scientific Hiện thị dạng khoa học. Định dạng Dữ liệu nhập Hiển thị Currency 235.5 $235.50 69 https://tophosting.vn/
  • 70. 3.4 Các thuộc tính của Trường (Field Properties ) 3.4.3 Format c. Các ký tự định dạng kiểu dữ liệu Số Ký tự Tác dụng . (period) Dấu chấm thập phân .(comma) Dấu chấm ngăn cách 0 Số (0-9) # Số hoặc khoảng trắng (blank) $ Dấu $ % Phần trăm E+E+e+e- Số dạng khoa học Khoảng trắng (blank) Khoảng trắng Định dạng Dữ liệu nhập Hiển thị % 0.02 2% 70 https://tophosting.vn/
  • 71. 3.4 Các thuộc tính của Trường (Field Properties ) 3.4.3 Format d. Các ký tự định dạng kiểu ngày tháng (Data/Time) Ký tự Hiển thị Ví dụ General Ngày , giờ 1/08/2014 12:30:45PM Long Date Thứ , ngày , tháng , năm Friday, 28 Octorber 2014 Medium Date Ngày – tháng – năm 15-03-2014 Short Date Ngày / tháng/ năm 28/10/14 Long time Giờ - phút – giây AM/PM 05:02:35 AM Medium Time Giờ - phút AM/PM 05:02 AM Short Time Giờ - phút 15:10 71 https://tophosting.vn/
  • 72. 3.4 Các thuộc tính của Trường (Field Properties ) 3.4.3 Format e. Định dạng dữ liệu kiểu Yes/No Định dạng Ý nghĩa Yes/No Đúng / Sai True/False Đúng / Sai On/foff Đúng / Sai ➢ Chuỗi ký tự định dạng kiểu yes/no gồm 3 phần: First; Second; Third. ➢ First: bỏ trống, định dạng trong mục này không ảnh hưởng đến dữ liệu kiểu Yes/No. ➢ Second: field hợp nội dung field mang giá trị đúng. ➢ Third: field hợp nội dung field mang giá trị sai. 72 https://tophosting.vn/
  • 73. 3.4 Các thuộc tính của Trường (Field Properties ) 3.4.4 Input Mask ( mặt nạ nhập dữ liệu) Quy định khuôn định dạng dữ liệu. Người sử dụng khi nhập dữ liệu vào bảng bắt buộc phải tuân theo đúng định dạng đó. Quy định khuôn định dạng dữ liệu. Người sử dụng khi nhập dữ liệu vào bảng bắt buộc phải tuân theo đúng định dạng đó. Những field cùng lúc qui định thuộc tính Format và Input Mask, Access sẽ hiển thị theo dạng qui định trong Format khi hiển thị dữ liệu. Tuy nhiên nếu điều chỉnh dữ liệu thông qua biểu mẫu, Access dùng dạng thức qui định trong Input Mask. Các ký tự dùng định dạng trong Input Mask. 73 https://tophosting.vn/
  • 74. 3.4 Các thuộc tính của Trường (Field Properties ) 3.4.4 Input Mask ( mặt nạ nhập dữ liệu) Các ký tự dùng định dạng trong Input Mask. Ký tự Ý nghĩa 0 Vị trí bắt buộc nhập, nhập các số 0-9 cho phép nhập dấu 9 nhập các số 0-9 cho phép nhập dấu # Vị trí không bắt buộc nhập, Nhập số 0-9, khoảng trắng, +,- L Bắt buộc nhập ký tự chữ A-Z ? Không bắt buộc nhập, ký tự chữ và số A Bắt buộc nhập các ký tự chữ và số a Không bắt nhập các ký tự chữ và số & bắt buộc nhập, ký tự bất kỳ hoặc khoảng trắng C Không bắt buộc nhập nhập ký tự bất kỳ hoặc khoảng trắng74 https://tophosting.vn/
  • 75. 3.4 Các thuộc tính của Trường (Field Properties ) 3.4.5 Validation rule (Quy tắc hợp lệ) : ➢ Kiểm tra tính hợp lệ của dữ liệu khi nhập liệu. Nếu dữ liệu không thỏa điều kiện cho trước, Access xuất hiện trên màn hình một thông báo chứa dòng văn bản quy định ở Validation text. ➢ Trong Validation Rule có các phép toán sau: ➢ Phép toán so sánh: > , < , >=, <=, =, < > ➢ Phép toán quan hệ: OR; AND; NOT ➢ Phép toán về chuỗi: toán tử Like (giống như).Có thể sử dụng toán tử Like kèm với các ký tự thay thế như: Dấu *: thay thế tất cả các ký tự. Dấu #: thay thế các ký tự số. Dấu ?: thay thế ký tự tại vị trí có dấu ?. 75 https://tophosting.vn/
  • 76. 3.4 Các thuộc tính của Trường (Field Properties ) 3.4.6 Validation text (Thông báo lỗi) : ➢ Chuỗi thông báo xuất hiện khi dữ liệu nhập vào không thoả điều kiện của Validation Rule, chuỗi trong validation text có độ dài tối đa 255 ký tự. 76 https://tophosting.vn/
  • 77. 3.4 Các thuộc tính của Trường (Field Properties ) 3.4.7 Caption: Tiêu đề ➢ Qui định nhãn là một chuỗi ký tự xuất hiện tại dòng tên field. Chuỗi này cũng xuất hiện tại tiêu đề của các điều khiển trong các biểu mẫu hoặc báo cáo. ➢ Nếu giá trị này bỏ trống thì Access sẽ lấy tên field làm tiêu đề. 3.4.8 Default value: giá trị ngầm định ➢ Quy định giá trị mặc nhiên cho cột. ➢ Access sẽ tự động gán giá trị này vào khi thêm mẩu tin mới. ➢ Người sử dụng có thể gán một biểu thức cho thuộc tính này 3.4.9 Required: Yêu cầu ➢ Có yêu cầu bắt buộc nhập dữ liệu cho một field hay có thể để trống 77 https://tophosting.vn/
  • 78. 3.4 Các thuộc tính của Trường (Field Properties ) 3.4.10 AllowZeroLength: trường trống Quy định field có kiểu Text hay Memo có thể có (yes) hoặc không có (no) chuỗi có độ dài Zero. Nếu field là field khoá thì thuộc tính này là No. Chú ý: ➢ Cần phân biệt field có giá trị null (trống chưa có dữ liệu) và một field chứa chuỗi có độ dài là zero (đó là chuỗi ""). ➢ Khi hiển thị ra màn hình cả hai có hình thức giống nhau. 3.4.11 Index ( Chỉ mục, sắp xếp) ➢ Nếu chọn No thì không sắp xếp dữ liệu. ➢ Nếu chọn Yes (No Duplicates) thì tạo chỉ mục (sắp xếp) trên field và không cho phép các giá trị trùng nhau. ➢ Nếu chọn Yes (Duplicates Yes) thì tạo chỉ mục (sắp xếp) trên field và cho phép các giá trị trùng nhau. Quy định thuộc tính Index để tạo chỉ mục đơn (chỉ mục trên một field). 78 https://tophosting.vn/
  • 79. 3.5 Hiệu chỉnh cấu trúc Bảng Thêm, sửa, thay đổi trường dữ liệu ➢ Mở bảng ở chế độ thiết kế (Design View) bằng cách: Trong cửa sổ Database, chọn bảng muốn thay đổi cấu trúc, click phải, chọn Design View. ➢ Thanh Ribbon chuyển sang Tab Design gồm các công cụ cho phép hiệu chỉnh cấu trúc của bảng. ➢ Insert Rows: chèn thêm một field trên field hiện hành. ➢ Delete Rows: xóa các field được đánh dấu chọn Di chuyển field: Click chọn tên field muốn di chuyển, drag chuột vào tên field, di chuyển đến vị trí mới. 79 https://tophosting.vn/
  • 80. Quan hệ 1-1 (một-một) ➢ mỗi record của bảng thứ 1 sẽ liên kết với một record của bảng thứ 2 3.6.1 Các loại mối quan hệ: 3.6 Tạo quan hệ giữa các bảng trong cơ sở dữ liệu ➢ Bảng Nhan Vien và Luong được liên kết qua MANV ➢ Những bảng có mối quan hệ 1 -1 ta có thể gộp các trường vào làm một bảng 80 https://tophosting.vn/
  • 81. Quan hệ 1-n: mỗi record của bảng 1 sẽ liên kết với một hoặc nhiều record của bảng n, ngược lại một record của bảng n chỉ liên kết với duy nhất một record trong bảng 1. 3.6.1 Các loại mối quan hệ: Quan hệ 1-n (một-nhiều) 81 https://tophosting.vn/
  • 82. Tại cửa sổ làm việc của Access, chọn tab Database Tools trên thanh Ribbon, click nút Relationships. ➢ Nếu là lần đầu tiên (CSDL chưa có quan hệ) thì hộp thoại Show Tables sẽ xuất hiện. ➢ Nếu không có cửa sổ Show Table thì Click nút Show Table trên thanh Ribbon. ➢ Tab Tables: hiển thị tất cả các bảng trong cơ sở dữ liệu ➢ Tab Queries: hiển thị các truy vấn đã tạo trong cơ sơ dữ liệu ➢ Tab Both: hiển thị tất cả Table và Query. 3.6.2 Cách tạo mối quan hệ 82 https://tophosting.vn/
  • 83. ➢ Chọn bảng hoặc Query cần thiết lập quan hệ, click Add. ➢ Click nút Close đóng cửa sổ Show Table. ➢ Cửa sổ RelationShips chứa các bảng muốn thiết lập quan hệ. ➢ Drag chuột kéo field quan hệ từ bảng này sang bảng kia. ➢ (vd: Kéo field MaNV từ bảng NHANVIEN sang MaNV của bảng HOADON). ➢ Xuất hiện cửa sổ Edit RelationShips với các tùy chọn: 3.6.2 Cách tạo mối quan hệ 83 https://tophosting.vn/
  • 84. ➢ Nếu vi phạm các nguyên tắc trên thì Access sẽ không nhận dữ liệu và thông báo lỗi. Enforce Referential Integrity nếu muốn quan hệ có tính ràng buộc toàn vẹn. Quan hệ có tính ràng buộc toàn vẹn sẽ đảm bảo các vấn đề sau: ➢ Khi nhập dữ liệu, dữ liệu của field tham gia quan hệ ở bảng "nhiều" (bảng con) phải tồn tại trong bảng "một" (bảng cha). Ví dụ: muốn nhập một sinh viên cho bảng KETQUA thì MaSV đó phải tồn tại trong bảng SINHVIEN. ➢ Không thể xóa những mẩu tin trong bảng "một" khi những mẩu tin trong bảng "nhiều" có quan hệ với mẩu tin bên "một". 3.6.2 Cách tạo mối quan hệ 84 https://tophosting.vn/
  • 85. Muốn xóa quan hệ giữa 2 bảng, ta Click phải mối quan hệ muốn xóa, chọn Delete, hoặc chọn mối quan hệ và nhấn phím Delete. Lưu ý: ➢ Nếu nhập dữ liệu trước khi tạo quan hệ thì khi nhập liệu ta có thể nhập dữ liệu cho các bảng theo trình tự tùy ý. ➢ Ngược lại, nếu tạo quan hệ trước, nhập liệu sau thì khi nhập liệu ta phải nhập bảng 1 (bảng cha) trước và bảng n (bảng con) sau. 3.6.3 Cách xóa mối quan hệ 85 https://tophosting.vn/
  • 86. 3.7 Cách nhập dữ liệu cho Bảng Để nhập dữ liệu cho bảng, trước hết phải mở bảng ở chế độ Datasheet View Trong cửa sổ Database chọn Object Table → chọn bảng muốn nhập hoặc sửa dữ liệu → click phải chọn Open. Hoặc double click vào tên bảng muốn mở. ➢ Bảng được mở ở chế độ nhập liệu (Chế độ Data Sheet view). ➢ Mặc định, luôn có một dòng rỗng để nhập record mới ở cuối bảng ➢ Khi nhập dữ liệu phải nhập theo từng Record, dữ liệu nhập vào phải thỏa mãn các thuộc tính của bảng và thuộc tính của field khi thiết kế bảng. Nếu dữ liệu không thỏa mãn thì Access sẽ thông báo lỗi. 86 https://tophosting.vn/
  • 87. 3.7 Cách nhập dữ liệu cho Bảng Đối với field có kiểu dữ liệu OLE object: ➢ Tại vị trí nhập, click chuột phải, ➢ Chọn Insert – Object. ➢ Chọn Create New nếu muốn tạo đối tượng mới. ➢ Chọn Create from file nếu muốn lấy đối tượng từ tập tin trên đĩa (thường là hình ảnh) chọn file cần sử dụng. 87 https://tophosting.vn/
  • 88. 3.8 Các thao tác với bảng ở chế độ Datasheet view: Thay đổi font chữ: ➢ Trên thanh Ribbon chọn tab Home. ➢ Trong nhóm lệnh Text Formatting, chọn font chữ cho Table và các định dạng khác. 3.8.1 Một số định dạng trong chế độ Database View : Click nút trên nhóm Text Formatting -> cửa sổ Datasheet Formatting cho phép bạn hiệu chỉnh các thuộc tính của Datasheet như màu nền, màu lưới. 88 https://tophosting.vn/
  • 89. Thay đổi độ rộng cột: Để thay đổi độ rộng của cột ta có thể sử dụng một trong các cách sau: 3.8.1 Một số định dạng trong chế độ Database View : Cách 1: đặt trỏ ở đường biên bên phải của cột, khi trỏ có dạng mũi tên 2 chiều thì drag chuột để thay đổi độ rộng của cột. Cách 2: Click phải trên tên của cột muốn thay đôi độ rộng và chọn Field width. Nhập kích thước của cột vào ô Column Width. 89 https://tophosting.vn/
  • 90. Thay đổi vị trí cột: Click vào tiêu đề cột. Drag để thay đổi vị trí cột (chuột vẫn đang ở tại tiêu đề cột). 3.8.1 Một số định dạng trong chế độ Database View : Che dấu (Hide column) và hiển thị (Unhide column) cột: ➢ Chọn cột muốn ẩn. ➢ Trên thanh Ribbon, trong nhóm lệnh Records, click nút More, chọn lệnh Hide fields. ➢ Muốn hiển thị tại cột bị ẩn, ta làm tương tự như thao tác ẩn cột, nhưng trong menu lệnh của nút Moreta chọn lệnh Unhide fields. 90 https://tophosting.vn/
  • 91. Cố định và bỏ cố định cột: 3.8.1 Một số định dạng trong chế độ Database View : ➢ Chọn cột cần cố định. ➢ Trên thanh Ribbon, trong nhóm lệnh Records, click nút More, chọn lệnh Freeze Fields. ➢ Ngược lại, muốn bỏ cố định cột ta chọn lệnh UnFreeze All Fields 91 https://tophosting.vn/
  • 92. Thay đổi chiều cao dòng: 3.8.1 Một số định dạng trong chế độ Database View : ➢ Đặt con trỏ vào đường biên của dòng sao cho xuất hiện mũi tên 2 chiều, Drag để thay đổi chiều cao của dòng. 92 https://tophosting.vn/
  • 93. Sắp xếp theo một field : 3.8.2 Sắp xếp ( Sort): ➢ Đặt trỏ tại field chứa dữ liệu cần sắp xếp. ➢ Click nút sort Ascending (sắp xếp tăng dần)/ Sort Descending (sắp xếp giảm Sắp xếp theo nhiều fields : ➢ Để sắp xếp theo nhiều field, trong nhóm lệnh sort & Filter trên thanh Ribbon, click nút lệnh Advanced filter options 93 https://tophosting.vn/
  • 94. 3.8.2 Sắp xếp (Sort) ➢ Chọn lệnh → Advanced Filter/Sort. ➢ Xuất hiện cửa sổ Filter → Double click chọn các field chứa dữ liệu cần sắp xếp, thứ tự ưu tiên từ trái sang phải. ➢ Ở mục Sort → chọn kiểu sắp xếp. ➢ Để thực hiện sắp xếp ta chọn lệnh Apply Filter/Sort. 94 https://tophosting.vn/
  • 95. 3.8.3 Tìm kiếm và Thay thế a. Tìm kiếm (Find) Để tìm một giá trị trong bảng ta click nút Find trong nhóm lệnh Find trên thanh Ribbon. Xuất hiện cửa sổ Find and Replace. 95 https://tophosting.vn/
  • 96. 3.8.3 Tìm kiếm và Thay thế a. Tìm kiếm (Find) ➢ Find What: Nhập giá trị cần tìm. ➢ Look In: Phạm vi tìm kiếm. ➢ Kiểu so trùng giá trị cần tìm với giá trị trong ô. ➢ Search: hướng tìm. ➢ Match Case: Tìm phân biệt chữ hoa và chữ thường. ➢ Click nút Find Next để thực hiện tìm kiếm, nếu tìm hết access sẽ cho xuất hiện hộp thông báo hoàn tất việc tìm kiếm. 96 https://tophosting.vn/
  • 97. 3.8.3 Tìm kiếm và Thay thế b. Thay thế (Replace) ➢ Trong cửa sổ Find and Replace, nếu muốn thay thế các giá trị được tìm thấy bằng một giá trị khác ta chọn tab Replace ➢ Replace With: Nhập giá trị cần thay thế. ➢ Click nút Replace để thay thế giá trị được tìm thấy hiện tại. ➢ Click nút Replace All để thay thế toàn bộ các giá trị được tìm thấy. 97 https://tophosting.vn/
  • 98. 3.8.4 Lọc dữ liệu ( Filter) a. Filter by selection : Filter by selection giúp bạn chọn ra những Record dựa trên một giá trị hiện hành. Cách thực hiện: Đặt trỏ tại field chứa giá trị lọc, chọn giá trị làm điều kiện lọc. Click nút lệnh Seletion trong nhóm lệnh Sort & Filter trên thanh Ribbon: ➢ Equals …: lọc các records có giá trị bằng với giá trị được chọn. ➢ Does Not Equal…: lọc các records có giá trị khác với giá trị được chọn. ➢ Contains …: lọc các records chứa giá trị được chọn. ➢ Does Not Contains …: lọc các records không chứa giá trị được chọn. 98 https://tophosting.vn/
  • 99. 3.8.4 Lọc dữ liệu ( Filter) a. Filter by selection : ➢ Ngoài ra, cũng có thể lọc bằng cách click nút công cụ Selection button bên phải tên field. ➢ Đánh dấu check vào giá trị làm điều kiện lọc. ➢ Click OK. 99 https://tophosting.vn/
  • 100. 3.8.4 Lọc dữ liệu ( Filter) b. Filter by form : ➢ Filter by form giúp bạn lọc bằng cách nhập giá trị lọc vào một dòng trên Datasheet ➢ Click nút Advanced trong nhóm lệnh Sort & Filter, chọn lệnh Filter By Form. ➢ Chuyển dạng Datasheet của bảng thành một dòng trống, và xuất hiện các nút Dropdown list trên mỗi field cho phép chọn giá trị lọc. ➢ Nếu lọc theo nhiều giá trị thì click tab Or và chọn giá trị làm điều kiện lọc tiếp theo. ➢ Click nút Toggle Filter để thực hiện lọc. 100 https://tophosting.vn/
  • 101. 3.8.4 Lọc dữ liệu ( Filter) b. Advanced filter : ➢ Chức năng Advanced filter cho phép lọc với nhiều điều kiện ở nhiều field khác nhau. ➢ Click nút Advanced, chọn lệnh Advanced filter/Sort, xuất hiện cửa sổ Filter, với các dòng: ➢ Field: Nhập tên các field chứa điều kiện lọc. ➢ Sort: Chọn kiểu sắp xếp (nếu có yêu cầu). ➢ Criteria: Nhập điều kiện lọc. Nếu các điều kiện lọc ở các field bắt ➢ buộc thỏa mãn đồng thời (và) thì các điều kiện phải được nhập trên cùng một dòng. Nếu các điều kiện không thỏa mãn đồng thời (hoặc) thì nhập trên khác dòng. 101 https://tophosting.vn/
  • 102. TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN 102 Query – Truy vấn trong Access Chương 4 1 • Đặt vấn đề 2 • Cách tạo Select Query bằng Design View 3 • Total Query 4 • Queries tham số (Parameter Queries) 5 • Crosstab query 6 • Action query https://tophosting.vn/
  • 103. 4.1 Khái Niệm Query là các câu lệnh SQL (Structured Query Language - ngôn ngữ truy vấn mang tính cấu trúc) là một loại ngôn ngữ phổ biến để tạo, hiệu chỉnh, và truy vấn dữ liệu từ một cơ sở dữ liệu quan hệ. Query – Truy vấn trong Access Chương 4 103 https://tophosting.vn/
  • 104. • Là truy vấn lựa chọn thông tin từ một hoặc nhiều bảng. Select query • Là một loại đặc biệt của truy vấn chọn. Thực hiện chức năng tổng hợp dữ liệu trên một nhóm các record. Total query • Là loại query có thể hiển thị dữ liệu dưới dạng tóm tắt như một bảng tính, với các tiêu đề hàng và tiêu đề cột dựa trên các field trong bảng Crosstab query • Top (n) cho phép bạn chỉ định một số hoặc tỷ lệ phần trăm của record mà bạn muốn trả về từ bất kỳ loại truy vấn khác (select query, total query, …). Top (n) query • Gồm các loại query như Make-Table, Delete, Update, Append cho phép bạn tạo ra các bảng mới hoặc thay đổi dữ liệu trong các bảng hiện có của cơ sở dữ liệu Action query 4.2 Các loại Query 104 https://tophosting.vn/
  • 105. 4.3 Cách tạo select query bằng Design View Để tạo query bạn chọn tab Create trên thanh Ribbon, click nút query Design trong nhóm lệnh Queries. Xuất hiện cửa sổ thiết kế query và cửa sổ Show table cho phép chọn các bảng hoặc query tham gia truy vấn. 105 https://tophosting.vn/
  • 106. ➢Chọn các bảng chứa các field mà bạn muốn hiển thị trong kết quả, hoặc các field cần trong các biểu thức tính toán. ➢ Click nút Add để thêm các bảng vào cửa sổ thiết kế query ➢ Sau khi chọn đủ các bảng hoặc query cần thiết, click nút close để đóng cửa sổ Show Table. ➢ Chọn các field cần hiển thị trong kết quả vào lưới thiết kế bằng cách drag chuột kéo tên field trong field list hoặc double click vào tên field. ➢ Nhập điều kiện lọc tại dòng Criteria. ➢ Click nút View để xem trước kết quả, click nút run để thực thi. 106 https://tophosting.vn/
  • 107. 4.3.1 Các thành phần trong cửa sổ thiết kế Query - Table/query pane: khung chứa các bảng hoặc query tham gia truy vấn. - Lưới thiết kế (Query by Example - QBE) : Chứa tên field tham gia vào truy vấn và bất kỳ tiêu chuẩn được sử dụng để chọn các records. Mỗi cột trong lưới QBE chứa thông tin về một field duy nhất từ một bảng hoặc query trên Table/query pane, bao gồm: Field: field được tạo vào hoặc thêm vào và hiển thị trong kết quả truy vấn. Table: tên của các bảng chứa các field tương ứng trên dòng Field. Sort: chỉ định kiểu sắp xếp dữ liệu của các field trong query. Show: quyết định để hiển thị các field trong Recordset. Criteria: Nhập các điều kiện lọc các record. Or: thêm các điều kiện lọc tương ứng với phép OR, nếu các biểu thức điều kiện ở các field cùng đặt trên một dòng thì tương ứng với AND. 107 https://tophosting.vn/
  • 108. 4.3.2 Cách nhập biểu thức điều kiện ➢ Biểu thức điều kiện là các quy tắc lọc áp dụng cho dữ liệu khi chúng được chiết xuất từ cơ sở dữ liệu, nhằm giới hạn các record trả về của truy vấn. Ví dụ: người dùng chỉ muốm xem thông tin về các NHANVIEN tên là Nga ➢ Biểu thức điều kiện được nhập trên dòng Criteria và dòng Or của lưới thiết kế query và tại cột chứa giá trị của biểu thức điều kiện lọc. Ví dụ: Chuỗi điều kiện "Nga" là giá trị trong field TenNV, do đó chuỗi "Nga" được nhập trên dòng Critetia tại cột TenVN. 108 https://tophosting.vn/
  • 109. Cách nhập biểu thức điều kiện ➢ Các loại dữ liệu dates, times, text, và giá trị trong biểu thức điều kiện: ➢ Toán tử được sử dụng trong biểu thức điều kiện: ➢ Ngoài ra các hàm ngày giờ, hàm dữ liệu chuỗi,… cũng được sử dụng trong biểu thức điều kiện 109 https://tophosting.vn/
  • 110. 4.3.3 Truy vấn có nhiều điều kiện ở nhiều fields ➢ Khi bạn muốn giới hạn các records dựa trên nhiều điều kiện ở nhiều field khác nhau, thì Access sẽ kết hợp các điều kiện lại với nhau bằng cách sử dụng toán tử And và Or, cho hai trường hợp: ➢ Nếu các điều kiện phải được thoả mãn đồng thời thì các điều kiện phải được liên kết nhau bởi phép AND, bằng cách nhập các điều kiện trên cùng một dòng Criteria trong lưới thiết kế query. 110 Ví dụ: Ví dụ: Hãy đưa ra các nhân viên tên Nga lập hoá đơn Xuất: https://tophosting.vn/
  • 111. ➢ Nếu chỉ cần thỏa mãn một trong các điều kiện thì các điều kiện được liên kết nhau bởi phép OR, bằng cách nhập các điều kiện trên các dòng khác nhau trong lưới thiết kế query. 111 https://tophosting.vn/
  • 112. 4.3.4 Top value ➢ Chức năng top value được sử dụng để hiển thị những record trên cùng của danh sách được tạo ra bởi một truy vấn ➢ Thực hiện : ❑ Descending : Chiều giảm dần ❑ Ascending : Chiều tăng dần ❑ Return: nhập vào số giá trị muốn hiển thị ➢ Các tùy chọn trong Top Values ❑ All : Hiển thị tất cả các record của Query. ❑ 5, 25, 100… : Hiển thị 5,25,100… record đầu tiên. ❑ 5%, 25%... : Hiển thị 5%, 25% record đầu tiên trên tổng số. ➢ Nếu các record thuộc Top Values có giá trị trùng nhau thì chúng cũng xuất hiện trong kết quả. ➢ Nếu muốn chỉ xuất hiện duy nhất một record trong các record có giá trị trùng nhau ta click phải trong cửa sổ thiết kế query → chọn properties, tại thuộc tính Unique Values → chọn yes. 112 https://tophosting.vn/
  • 113. 4.3.5 Tạo Field tính toán trong Query Để làm được các phép tính trong một truy vấn, bạn tạo một field tính toán mới trong query. Tên của field tính toán không trùng với tên của các field trong bảng. Cú pháp: Ví dụ: Tạo Field ThanhTien:[SoLuong]*[GiaBan] 113 https://tophosting.vn/
  • 114. ➢Access cung cấp chức năng kết nhóm các record và thực hiện các phép thống kê dữ liệu trên nhóm record đó. Các hàm count, sum, min, max, avg là các hàm cơ bản trong Total Query. ➢Ví dụ: Thông tin bao gồm MaSp, TenSp TongSoLuong. Trong đó TongSoLuong là sum của Soluong, kết nhóm theo Masp. 4.4 Total Query 114 https://tophosting.vn/
  • 115. Sau khi tổng hợp dữ liệu ta có kết quả: * Kết quả của query trước khi tổng hợp dữ liệu 115 https://tophosting.vn/
  • 116. Để tạo một Total query, bạn thực hiện các bước sau: ➢Tạo một query mới bằng Design view. ➢Chọn các table cần sử dụng trong query từ cửa sổ Show Table. ➢Chọn các field chứa dữ liệu cần thống kê vào lưới thiết kế. ➢Chọn Query Tools, chọn tab Design. 4.4.1 Cách tạo Total Query 116 https://tophosting.vn/
  • 117. ➢Trong nhóm lệnh Show/Hide, click nút Totals. ➢Trên lưới thiết kế query xuất hiện thêm dòng Total. ➢Tại mỗi field, chọn các tùy chọn trên dòng Total. 117 https://tophosting.vn/
  • 118. 4.4.2 Các tùy chọn trên dòng Total 118 Tùy Chọn Ý Nghĩa Group by Nhóm các Record có giá trị giống nhau tại 1 số field được chỉ định thành 1 nhóm SUM Tính tổng các giá trị trong một nhóm Record tại field được chỉ định AVG Tính trung bình cộng các giá trị trong một nhóm Record tại field được chỉ định MAX Tìm giá trị lớn nhất trong nhóm Record tại field được chỉ định MIN Tìm giá trị nhỏ nhất trong nhóm Record tại field được chỉ định COUNT Đếm số Record trong nhóm FIRST Tìm giá trị đầu tiên trong nhóm tại cột được chỉ định LAST Tìm giá trị cuối cùng trong nhóm tại cột được chỉ định Expression Dùng cho Field chứa biểu thức tính toán Where Dùng cho Field chứa điều kiện để lọc Record trước khi tính toán và không hiển thị trong kết quả https://tophosting.vn/
  • 119. Query tham số là query nhắc người dùng nhập điều kiện cho query tại thời điểm query thực thi. Cách tạo: ➢Trong cửa sổ thiết kế query, chọn các bảng/query tham gia truy vấn. ➢Chọn các field hiển thị trong kết quả . ➢Tại field chứa điều kiện lọc, nhập câu nhắc trên dòng Critetia và đặt trong cặp dấu [ ]. 4.5 Queries tham số (Parameter Queries) 119 https://tophosting.vn/
  • 120. - Khi thực thi query, chương trình yêu cầu nhập giá trị 120 https://tophosting.vn/
  • 121. 4.6.1 Khái niệm : Crosstab query là một query dùng để tổng hợp dữ liệu dưới dạng bảng tính hai chiều, trong đó tiêu đề của dòng và cột của bảng là các giá trị được kết nhóm từ các field trong bảng dữ liệu, phần thân của bảng tính là dữ liệu được thống kê bởi các hàm: Sum, count, avg, min, max, và các chức năng khác. 4.6 Crosstab Query ➢ Ví dụ: Thống kê tổng số lượng sản phẩm mỗi khách hàng đã bán 121 https://tophosting.vn/
  • 122. a) Tạo Crosstab query bằng chức năng Wizard: - Trên thanh Ribbon, click nút Create. - Trong nhóm lệnh Query, chọn Query Wizard. - Trong cửa sổ New Query, chọn Crosstab Query Wizard → OK. 4.6.2 Cách tạo 122 https://tophosting.vn/
  • 123. - Chọn dữ liệu nguồn cho Crosstab Query, có thể là table hoặc Query → Next. 123 https://tophosting.vn/
  • 124. - Chọn field làm Row heading trong khung Available Fields - Click nút > để chọn field. - Click Next. 124 https://tophosting.vn/
  • 125. - Chọn field làm column heading → Next. 125 https://tophosting.vn/
  • 126. - Chọn field chứa dữ liệu thống kê trong khung Fields. - Chọn hàm thống kê trong khung Function → Next. - Nhập tên cho query và click nút Finish để kết thúc. 126 Hạn chế khi tạo crosstab query bằng wizard: Nếu các field trong Crosstab query được lấy từ nhiều bảng hoặc trong query có chứa các điều kiện lọc dữ liệu thì phải tạo một select query chứa tất cả các field và các điều kiện, sau đó lấy select query này làm dữ liệu nguồn tạo crosstab query. https://tophosting.vn/
  • 127. b) Tạo Crosstab query bằng Design Một crosstab query cần ít nhất là 3 field: ➢Một field để lấy giá trị làm tiêu đề cho cột gọi là column heading. ➢Một field (hoặc nhiều field) để lấy giá trị làm tiêu đề cho dòng gọi là row heading. ➢Một field chứa dữ liệu thống kê (Value). Ví dụ: 127 https://tophosting.vn/
  • 128. - Để tạo một Crosstab query bằng Design View ta thực hiện như sau: - Trong cửa sổ thiết kế Query, trên thanh Ribbon, chọn Query Tools, chọn Tab Design. - Trong nhóm lệnh Query Type, chọn Crosstab. 128 https://tophosting.vn/
  • 129. - Trong lưới thiết kế query xuất hiện thêm dòng Crosstab và dòng Total. 129 https://tophosting.vn/
  • 130. ❖Chỉ định chức năng cho các field: ➢Đối với các field làm row heading và column heading thì trên dòng Total ta chọn chức năng Group by, trên dòng Crosstab, chỉ định chức năng Row Heading hoặc Column Heading. ➢Đối với field chứa dữ liệu để thống kê thì trên dòng Total, chọn hàm thống kê (Sum, Avg, Count, Min, Max, …), trên dòng Crosstab chọn Value. ➢Đối với các field chứa điều kiện lọc dữ liệu thì trên dòng Total chọn Where, các field này sẽ không xuất hiện trong kết quả. Lưu ý: Row Heading và Column Heading có thể hoán đổi nhau, nhưng đối với những field chứa nhiều giá trị thì nên chọn làm Row Heading. 130 https://tophosting.vn/
  • 131. 4.7.1. Find Duplicate query : Find Duplicate query Wizard dùng để tìm những record có giá trị trùng lắp ở một số field. Ví dụ, tìm những nhân viên có trùng ngày sinh, trùng tên, … Cách tạo: ➢Trong cửa sổ làm việc của Access, trên thanh Ribbon, chọn tab Create. ➢Trong nhóm lệnh Queries click nút Query Wizard. 4.7 Các loại Query tạo bằng chức năng Wizard 131 https://tophosting.vn/
  • 132. - Trong cửa sổ New Query chọn Find Duplicate query Wizard. - Xuất hiện cửa sổ Find Duplicates query wizard → OK. - Chọn bảng chứa field muốn tìm dữ liệu trùng lắp → Next. - Chọn field chứa dữ liệu trùng lắp → Next. - Chọn các field muốn hiển thị trong kết quả → Next. - Nhập tên cho query → Finish. 132 https://tophosting.vn/
  • 133. 4.7.2. Find Unmatched query Wizard : ➢Trong quan hệ 1-n, một record trong bảng 1 quan hệ với nhiều record trong bảng n. Tuy nhiên cũng có những record không quan hệ với bất kỳ record nào trong bảng n. Ví dụ, những nhân viên chưa tham gia lập hóa đơn, những nhân viên này tồn tại trong bảng NHANVIEN, nhưng không tồn tại trong bảng HOADON. ➢Find Unmatched query Wizard dùng để tìm những record có trong bảng 1 nhưng không có trong bảng n 133 https://tophosting.vn/
  • 134. Cách tạo: ➢Trong cửa sổ làm việc của Access, trên thanh Ribbon, chọn tab Create. ➢Trong nhóm lệnh Queries click nút Query Wizard. ➢Trong cửa sổ New Query chọn Find Unmatched query Wizard → OK. ❖Xuất hiện cửa sổ Find Unmatched query wizard. ➢Chọn bảng 1 là bảng chứa các record cần tìm → Next. ➢Chọn bảng n là bảng chứa record quan hệ → Next. 134 https://tophosting.vn/
  • 135. Ví dụ: tìm những nhân viên chưa lập hóa đơn, bảng 1 là bảng NHANVIEN, bảng n là bảng HOADON, field quan hệ là field MANV. - Chọn field quan hệ giữa hai bảng → Next. - Chọn các field hiển thị trong kết quả → Next. - Nhập tên cho query → Finish. 135 https://tophosting.vn/
  • 136. Action query là loại query mà khi thực thi sẽ làm thay đổi dữ liệu trong các bảng của cơ sở dữ liệu, sự thay đổi có thể làm cho cơ sở dữ liệu bị sai, do đó trước khi thực thi các loại action query bạn nên chép một file dự phòng. Có 4 loại action query: 4.8 Action Query 136 https://tophosting.vn/
  • 137. a) Chức năng Update query dùng để cập nhật dữ liệu trong các bảng. b) Cách tạo - Trong cửa sổ làm việc của Access, trên thanh Ribbon chọn tab Create, trong nhóm lệnh Queries, click nút Query Design. - Chọn các bảng chứa dữ liệu muốn cập nhật. 4.8.1 Update Query 137 https://tophosting.vn/
  • 138. - Thanh Ribbon chuyển sang tab Design. - Trong nhóm lệnh Query Type, Click nút Update, Trong lưới thiết kế xuất hiện dòng Update to. - Chọn field chứa dữ liệu cần cập nhật và các field chứa điều kiện. - Tại field chứa dữ liệu muốn cập nhật và trên dòng Update to ta nhập biểu thức cập nhật dữ liệu. 138 https://tophosting.vn/
  • 139. c) Thực thi Update Query: - Click nút run để thực thi query. - Khi thực thi query sẽ xuất hiện hộp thoại thông báo số record được Update. - Nếu đồng ý → click yes. - Xem kết quả trong bảng chứa dữ liệu Update. 139 https://tophosting.vn/
  • 140. a) Chức năng Make-Table dùng để tạo một bảng mới dựa trên các bảng hoặc query có sẵn. b) Cách tạo Trong cửa sổ làm việc của Access, trên thanh Ribbon chọn tab Create, trong nhóm lệnh Queries, click nút Query Design. - Chọn các bảng hoặc query làm dữ liệu nguồn cho MakeTable. Thanh Ribbon chuyển sang tab Design. - Chọn các field muốn hiển thị trong bảng mới. - Trong nhóm lệnh Query Type, click nút Make - Table. 4.8.2 Make-Table Query 140 https://tophosting.vn/
  • 141. ➢Xuất hiện hộp thoại Make Table với các tùy chọn: Table name: Nhập tên bảng mới. CurrentDatabase: Bảng mới được lưu trong cơ sở dữ liệu hiện hành. Another Database: Bảng mới được lưu trong một cơ sở dữ liệu khác, click nút browse để tìm cơ sở dữ liệu chứa bảng mới. ➢Click nút OK để tạo Make-Table. 141 https://tophosting.vn/
  • 142. c) Thực thi Make-Table Query - Click nút Run để thực thi query, xuất hiện hộp thông báo số record được đưa vào bảng mới. - Nếu đồng ý → Click yes, khi đó bảng mới sẽ được tạo, xem kết quả trong phần Table. 142 https://tophosting.vn/
  • 143. 8.3. Append query : a) Chức năng Append query dùng để nối dữ liệu vào cuối một bảng có sẵn. b) Cách tạo Trong cửa sổ làm việc của Access, trên thanh Ribbon chọn tab Create, trong nhóm lệnh Queries, click nút Query Design. - Chọn các bảng hoặc query làm dữ liệu nguồn cho Append Query. Thanh Ribbon chuyển sang tab Design. - Chọn các field chứa dữ liệu nối vào bảng có sẵn, các field được chọn phải tương ứng với các field trong bảng muốn nối dữ liệu vào. - Click nút Append trong nhóm lệnh Query Type. 4.8.3 Append Query 143 https://tophosting.vn/
  • 144. - Xuất hiện hộp thoại Append → Chọn bảng muốn nối dữ liệu vào. - Trong lưới thiết kế xuất hiện dòng Append to, chứa tên các field tương ứng trong bảng có sẵn. 144 https://tophosting.vn/
  • 145. c) Thực thi Append query - Click nút run để thực thi query. - Xuất hiện hộp thông báo số record được nối vào. - Nếu đồng ý → click yes, xem kết quả trong phần Table. 145 https://tophosting.vn/
  • 146. a) Chức năng: Delete query xóa các record từ các bảng, thông thường dựa trên các điều kiện mà bạn cung cấp, Delete query xóa tất cả các record trong một bảng trong khi vẫn giữ nguyên cấu trúc của bảng. Delete Query là nguy hiểm vì nó xóa vĩnh viễn dữ liệu từ các bảng trong cơ sở dữ liệu của bạn, do đó trước khi thực thi loại query này cần phải có một backup. 4.8.4 Delete Query 146 https://tophosting.vn/
  • 147. b) Cách tạo: Trong cửa sổ làm việc của Access, trên thanh Ribbon chọn tab Create, trong nhóm lệnh Queries, click nút Query Design. - Chọn bảng hoặc query chứa dữ liệu cần xóa. Thanh Ribbon chuyển sang tab Design. - Click nút Delete trong nhóm Query Type. - Chọn field chứa điều kiện xóa, lưới thiết kế xuất hiện dòng Delete → tại field chứa điều kiện xóa ta chọn where. 147 https://tophosting.vn/
  • 148. - Nhập điều kiện xóa trên dòng Criteria. 148 https://tophosting.vn/
  • 149. c) Thực thi Delete Query - Click nút run để thực thi, xuất hiện hộp thông báo số record bị xóa. - Nếu đồng ý → yes, các record trong bảng đã bị xóa, xem kết quả trong phần Table. 149 https://tophosting.vn/
  • 150. TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN Form – Biểu mẫu trong Access Chương 5 1. Công dụng và khái quát về biểu mẫu 2. Cách tạo Form 3. Tùy biến Form trong chế độ Design View 4. Cách tạo các Control có hỗ trợ của chức năng Wizard 5. Form và những bảng liên kết 6. Tab Control 7. Navigation Form https://tophosting.vn/
  • 151. 5.1 Giới thiệu Biểu mẫu (Form) là phương tiện giao dịên cơ bản giữa người dùng và Access, thông tin trong biểu mẫu được lấy từ bảng, có thể thiết kế các biểu mẫu cho nhiều mục đích khác nhau: ➢ Hiển thị và chỉnh sửa dữ liệu: Đây là công việc thông dụng nhất của biểu mẫu. Sử dụng biểu mẫu để thay đổi, bổ sung, xoá dữ liệu thì dễ dàng hơn. ➢ Nhập các dữ liệu: Có thể thiết kế biểu mẫu dùng để nhập dữ liệu mới vào CSDL hoặc để cung cấp dữ liệu cho việc tự động hoá tính toán. ➢ Và còn nhiều mục đích khác. 151 https://tophosting.vn/
  • 152. 5.2 Cách tạo Form From Design :Tạo một From mới trống và hiển thị nó trong chế độ Design View Blank Form : Tạo một Form trống, Form mới không bị ràng buộc với một nguồn dữ liệu, mở ra trong chế độ Layout View Form Wizard: Hỗ trợ thiết kế Form đơn giản :Wizard yêu cầu các nguồn dữ liệu, chọn Field hiển thị… Navigation Form: (một tính năng hoàn toàn mới trong Access 2010) Cho phép người dùng dễ dàng di chuyển giữa các thành phần trong form Để tạo form, chọn tab Create trên thanh Ribbon, chọn cách tạo form bằng các nút lệnh trong nhóm lệnh Forms. Nguồn cho Form có thể là table hoặc query. 152 https://tophosting.vn/
  • 153. 5.2.1 Tạo một Single Form Access cung cấp một cách dễ dàng và thuận lợi để tạo một form dựa trên dữ liệu nguồn là Table/Query. Cách thực hiện: • Trong Navigation, chọn table hoặc query mà bạn muốn sử dụng làm dữ liệu nguồn cho from. • Chọn tab trên thanh Ribbon. • Trong nhóm lệnh Form, click nút Form. • Xuất hiện một Form mới ở dạng Layout view. • Single form hiển thị một record tại một thời điểm. • Mặc định mỗi field hiển thị trên một dòng và theo thứ tự của các field trong bảng hoặc query dữ liệu nguồn. 153 https://tophosting.vn/
  • 154. Nếu dữ liệu nguồn của form là bảng cha có liên kết với bảng con, thì kết quả form sẽ hiển thị các record quan hệ trong bảng con. 154 https://tophosting.vn/
  • 155. 5.2.2 Tạo Form bằng chức năng Form Wizard • Là công cụ tạo Form qua các bước trung gian với một loạt câu hỏi gợi ý giúp xây dựng From phù hợp nhất. - Trên thanh Ribbon chọn Create / From Wizard - Chọn Table/ Query làm dữ liệu cho Form. Chọn các Field sử dụng trong khung Available Field. Chọn Next để tiếp tục - Chọn dạng Form gồm : ➢ Columnar ➢ Tabular ➢ Datasheet ➢ Justified - Chọn Next - Nhập tiêu đề cho Form -> Finish 155 https://tophosting.vn/
  • 156. 5.2.3 Tạo Form bằng Design • Thiết kế From bằng tay mà không có sự hỗ trợ của Access 5.2.3.1 Layout View ( Blank Form) Cách tạo: ➢ Chọn tab Create trên thanh Ribbon, click nút Blank Form trong nhóm lệnh Forms. ➢ Xuất hiện một form trắng ở chế độ Layout view. ➢ Drag chuột kéo các field từ field list vào form. 156 https://tophosting.vn/
  • 157. Khi thiết kế form bằng Design view thì các control khi thả vào form nó không tự động canh theo hàng và cột như Blank Form. Cách tạo: ➢Chọn tab Create trên thanh Ribbon, click nút Design View trong nhóm lệnh Forms. ➢Xuất hiện một form trắng ở chế độ Design view. ➢Drag chuột kéo các field từ field list vào form. 5.2.3.2 Design View 157 https://tophosting.vn/
  • 158. 5.2.3.3 Các thành phần trong cửa sổ thiết kế Form ➢ Form Header: Chứa nội dung tiêu đề Form ➢ Form Footer: Chứa nội dung của phần cuối Form ➢ Detail: Chứa nội dung chính của Form, hiện thị nội dung trong dữ liệu nguồn của Form hoặc các control đưa vào từ toolbox 158 https://tophosting.vn/
  • 159. ➢Chọn form cần thiết lập thuộc tính. ➢Click nút Properties Sheet. ➢Chọn thuộc tính. * Các thuộc tính trong Properties Sheet được hiển thị theo từng nhóm 5.2.3.4 Thiết lập các thuộc tính của Form 159 https://tophosting.vn/
  • 160. 5.2.3.5 Các thuộc tính quan trọng trong nhóm Format Thuộc tính Công dụng Caption Tạo tiêu đề cho form. Default view Thiết lập dạng hiển thị của form. - Single Form chỉ hiển thị một Recor tại một thời điểm - Continuous Form: hiển thị các record liên tiếp nhau. - Datasheet hiển thị dữ liệu dạng bảng. Scroll Bar Thiết lập chế ñộ hiển thị thanh cuộn. Record Selectors Bật/tắt thanh chọn record. Navigation Buttons Bật/tắt các nút duyệt record. Dividing lines Bật/tắt các ñường kẽ phân cách các phần của form. Auto Center Tự động hiển thị form ngay giữa màn hình. Border Style Chọn kiểu đường viền của form. Min Max botton Bật/tắt nút Max/Min. Close Button Bật/tắt nút close form. Picture Alignment Canh vị trí cho các picture trên form. 160 https://tophosting.vn/
  • 161. 5.2.3.6 Các thuộc tính quan trọng trong nhóm Data Thuộc tính Công dụng Record Source Chọn dữ liệu nguồn cho form. Filter Khai báo điều kiện lọc. Order by Khai báo field cần sắp xếp số liệu. Allow filter Cho phép/không cho phép lọc các record. Allow Edits Cho phép/ không cho phép chỉnh sửa. Allow Additions Cho phép nhập thêm các record hay không. 161 https://tophosting.vn/
  • 162. 5.3 Sử dụng Form • Một Form khi thiết kế xong có ba dạng ➢ Layout view: Cho phép xem những gì trông giống như Form của bạn, sắp xếp lại các field, và áp dụng định dạng ➢ Design view: Cho phép tinh chỉnh lại Form, nhưng không nhìn thấy dữ liệu thực. ➢ Form view: Thực hiện các thao tác trên dữ liệu thông qua Form 162 https://tophosting.vn/
  • 163. 5.3.1 Tìm kiếm và chỉnh sửa một record - Mở form ở dạng form view. - Chọn tab Home trên thanh Ribbon. - Đặt trỏ trong field chứa dữ liệu cần tìm, Click nút Find trong nhóm lệnh Find. - Xuất hiện cửa sổ Find and Replace. Find What: nhập giá trị cần tìm. Look in: Phạm vi tìm kiếm. Search: Hướng tìm. Match: Chọn cách so trùng giá trị nhập trong ô Find What với giá trị trong field chứa dữ liệu cần tìm. 163 a) Sử dụng form để tìm kiếm một record https://tophosting.vn/
  • 164. b) Thay thế hoặc chỉnh sửa dữ liệu Khi đã tìm thấy record cần tìm, bạn thực hiện chỉnh sửa thì giá trị sau khi chỉnh sửa sẽ cập nhật xuống bảng. Nếu cần thay thế giá trị thì chọn tab Replace trong cửa sổ Find and Replace. oNhập giá trị cần thay thế trong ô Replace with. oClick nút Replace hoặc Replace All nếu cần thay tất cả giá trị trong bảng. 164 https://tophosting.vn/
  • 165. Khi làm việc trên form, để thêm một record mới bạn thực hiện như sau: ➢Mở form ở chế độ form view. ➢Click nút New Record trên thanh Navigation button bên dưới cửa sổ form. ➢Form sẽ chuyển đến record trống, cho phép bạn nhập dữ liệu. Tuy nhiên khi nhập dữ liệu phải thỏa mãn các ràng buộc trong cơ sở dữ liệu. 5.3.2 Thêm một record 165 https://tophosting.vn/
  • 166. ➢Di chuyển đến record cần xóa. ➢Trong nhóm lệnh Record trên thanh Ribbon, chọn lệnh Delete → chọn Delete Record. Tuy nhiên khi xóa record phải xem xét ảnh hưởng đến các Record quan hệ. 5.3.3 Xóa một record 166 https://tophosting.vn/
  • 167. ➢Mở form ở dạng Form view. ➢Trong nhóm lệnh Sort & Filter trên thanh Ribbon, click nút Advanced, Chọn lệnh Filter by Form. ➢Form chuyển sang dạng Filter. 5.3.4 Lọc dữ liệu trên form 167 https://tophosting.vn/
  • 168. - Click nút combobox của field chứa giá trị chọn điều kiện lọc. - Nếu có nhiều điều kiện thì bạn chọn tab OR bên dưới cửa sổ Filter, chọn điều kiện lọc tiếp theo. - Click nút Toggle Filter để thực hiện lọc. - Click nút Toggle Filter để bỏ lọc. 168 https://tophosting.vn/
  • 169. * 5.4. Tùy biến form trong chế độ Desing view : 5.4.1. Thêm một control vào form : Để thêm một control vào form ta làm các bước như sau: ➢Chuyển form sang dạng Design view, Thanh Ribbon chuyển sang Form Design Tools. ➢Chọn tab Design, trong nhóm Control, chọn các control. ➢Drag chuột vẽ vào form tại bất kỳ vị trí nào mà bạn mong muốn. 169 https://tophosting.vn/
  • 170. - Đối với các control có sự trợ giúp của Control Wizard thì có thể thiết kế bằng hai cách: Design hoặc Wizard bằng cách bật tắt nút Control Wizard. 170 https://tophosting.vn/
  • 171. 5.4.2. Các loại form control : 171 https://tophosting.vn/
  • 172. 172 5.4.2. Các loại form control : https://tophosting.vn/
  • 173. a) Canh lề cho các control Chọn các control cần canh lề và thực hiện một trong các cách như sau: - Click phải và chọn Align, sau đó chọn một trong các kiểu canh lề trên submenu. - Chọn tab Arrange trên Form Design Tools. - Trong nhóm lệnh Sizing & Ordering, click nút Align và chọn một trong các kiểu canh lề trong Submenu. 5.4.3 Định dạng các control trên form 173 https://tophosting.vn/
  • 174. b) Hiệu chỉnh kích thước và khoảng cách giữa các control trên form ➢Chọn các control cần hiện chỉnh. ➢Chọn tab Arrange trên Form Design Tools. ➢Trong nhóm lệnh Sizing & Ordering, click nút Size/Space. ➢Chọn lệnh hiệu chỉnh thích hợp. 174 https://tophosting.vn/
  • 175. - Chọn control cần thiết lập thuộc tính. - Click nút properties Sheet trong nhóm lệnh Tools trên thanh Ribbon. 5.4.4 Thiết lập thuộc tính cho control 175 https://tophosting.vn/
  • 176. 5.5.1. Command button : a) Tạo bằng wizard ➢Chọn button trong nhóm Controls, drag chuột vẽ vào form. ➢Xuất hiện cửa sổ Command button Wizard. ➢Trong khung Categories chọn nhóm lệnh. 5.5 Cách tạo các control có hỗ trợ của chức năng Wizard 176 https://tophosting.vn/
  • 177. Record Navigation: chứa các lệnh di chuyển giữa các record như: ➢Go To First Record: di chuyển đến record đầu, ➢Go To Last Record: di chuyển đến record cuối, ➢Go To Next Record: di chuyển đến record kế record hiện hành, ➢Go To Previous Record: di chuyển đến record trước record hiện hành. Các lệnh này thường dùng để tạo thanh navigation buttons trên form. 177 https://tophosting.vn/
  • 178. Record Operations: gồm các lệnh thêm record hoặc xóa record như: ➢Add New Record: Thêm record mới. ➢Delete Record: Xóa record. ➢Duplicate Record: Tạo các record có giá trị trùng ở tất cả các field. ➢Print Record: In mẩu tin hiện tại ➢Save Record: lưu những thay đổi trước khi chuyển đến record tiếp theo. ➢Undo Record: Hủy sự thay đổi sau cùng. 178 https://tophosting.vn/
  • 179. Form Operations: gồm các lệnh về form ➢CloseForm: đóng form hiện hành. ➢Print Current Form: in form hiện hành. ➢Open Form: Mở một form khác. Report Operations: gồm các lệnh về Report ➢ Open Report: mở report. ➢ Preview Report: xem một report trước khi in. ➢ Print Report: in report. Application: gồm lệnh liên quan đến ứng dụng như Quit Application. Miscellaneous: chứa những lệnh tổng hợp: Run Query, Run Macro... ➢ Chọn lệnh cho nút trong khung Action, click Next. ➢ Chọn Text hoặc Picture hiển thị trên nút, click Next. ➢ Đặt tên cho nút, Finish. 179 https://tophosting.vn/
  • 180. b) Tạo bằng design ➢Tắt nút wizard. ➢Chọn nút button trong nhóm controls. ➢Drag chuột vẽ vào form. ➢Gán lệnh bằng cách click phải trên nút, chọn Build event. ➢Chọn Macro builder, ➢Trong khung New Action, chọn lệnh Close Window. ➢Điền các argument vào các khung. Object type: Form Object name: Nhập tên form. 180 https://tophosting.vn/
  • 181. a) Tạo bằng wizard ➢Chọn công cụ option group trong nhóm Controls. ➢Xuất hiện cửa sổ Option group Wizard. ➢Nhập nhãn cho các option, click Next. ➢Chọn/không chọn option mặc định, click Next. ➢Nhập giá trị cho các option, mặc định, option đầu tiên sẽ có option value là 1, click Next. 5.5.2 Option Group 181 https://tophosting.vn/
  • 182. ➢Chọn vị trí lưu trữ giá trị của option group, click Next. ➢ Chọn loại option trong option group và style cho option group, các option này có hình dạng khác nhau nhưng chức năng là giống nhau, click Next. ➢ Nhập nhãn cho Option group, click Finish. 182 https://tophosting.vn/
  • 183. b) Tạo bằng design ➢Tắt nút Control Wizard. ➢Click nút Option group trong nhóm Controls vẽ vào form. ➢Chọn loại Option vẽ vào trong khung của Option group. ➢Mở Properties Sheet của Option group và thiết lập các thuộc tính sau: Control source: chọn field chứa dữ liệu nguồn cho option group. Lần lượt chọn từng option và gán giá trị cho thuộc tính option value. 183 https://tophosting.vn/
  • 184. a) Tạo bằng wizard: ➢Chọn công cụ Combo box/List box trong nhóm Controls. ➢Drag chuột vẽ vào form, xuất hiện cửa sổ Combo box Wizard với hai lựa chọn ứng với hai chức năng của combo box: 5.5.3 Combobox và Listbox 184 https://tophosting.vn/
  • 185. - Nếu chọn I want the combo box to get the values from another table or query thì sau khi click Next để thực hiện bước tiếp theo ta chọn bảng chứa dữ liệu nguồn cho Combo box, dữ liệu nguồn có thể là Table hoặc Query, click Next. 185 https://tophosting.vn/
  • 186. - Chọn field chứa dữ liệu đưa vào Combo box, click nút để chọn một field hoặc click nút để chọn nhiều field, click Next. 186 https://tophosting.vn/
  • 187. - Chọn field sắp xếp (có thể bỏ qua), mặc định các field đã được sắp xếp, click Next. 187 https://tophosting.vn/
  • 188. ➢Điều chỉnh độ rộng của cột dữ liệu trong combo box. ➢ Hide key column (recommended): ẩn hoặc hiện cột khóa. Mặc định mục Hide key column được chọn (cột khóa bị ẩn), nếu muốn combo box hiển thị field khóa thì bỏ check, click Next. ➢ Chọn field chứa giá trị của combo box, click Next. 188 https://tophosting.vn/
  • 189. ➢Nhập nhãn cho combo box, click Finish. ➢Nếu chọn I will type in the values that I want, thì sau khi chọn xong, click Next. ➢Nhập số cột trong ô Number of columns, ➢Nhập giá trị cho các cột trong combo box, click Next. ➢Nhập nhãn cho combo box, click Finish. 189 https://tophosting.vn/
  • 190. b) Tạo bằng Design: ➢Tắt nút wizard. ➢Click nút combo box trong nhóm Controls drag chuột vẽ vào form. ➢Sử dụng Properties Sheet để thiết lập các thuộc tính sau: 190 https://tophosting.vn/
  • 191. Ví dụ: Tạo form hóa đơn lấy dữ liệu nguồn từ bảng HoaDon, khi tạo combo box MaKH ta thiết lập các thuộc tính sau: 191 https://tophosting.vn/
  • 192. ➢Access 2010 nhận ra các quan hệ khi tạo một form mới từ một bảng cha. Nếu bảng cha có nhiều bảng con thì Access chỉ hiển thị các record trong một bảng, nó sẽ chọn bảng đầu tiên mà nó tìm thấy. ➢Ví dụ: Bảng HOADON và bảng SANPHAM trong cơ sở dữ liệu QL BAN HANG. Khi tạo form từ bảng HOADON thì nó sẽ hiển thị danh sách các SAN PHAM quan hệ trong bảng SANPHAM. 5.6 Form và những bảng liên kết 192 https://tophosting.vn/
  • 193. ➢Subforms là không thể thiếu cho việc hiển thị thông tin từ hai bảng khác nhau hoặc các truy vấn trên cùng một form. Thông thường, subforms được sử dụng khi dữ liệu nguồn trong main có quan hệ một-nhiều với dữ liệu nguồn của subform. Nhiều record trong subform được liên kết với một record trong mainform. ➢Access sử dụng các thuộc tính LinkMasterFields và LinkChildFields của subform để lựa chọn các record trong subform có liên quan đến mỗi record trong mainform. 5.6.1 Subform control 193 https://tophosting.vn/
  • 194. a) Tạo bằng Wizard: - Tạo main form: dữ liệu nguồn của main form thường là thông tin ở bảng cha, do đó dạng form thường là những dạng hiển thị một record tại một thời điểm như columnar. ➢Mở main form ở chế độ Design. ➢Bật nút control Wizard. ➢Chọn công cụ SubForm/SubReport trong nhóm Controls vẽ vào Form, xuất hiện cửa sổ SubForm Wizard với hai tùy chọn: 194 https://tophosting.vn/
  • 195. Use existing Tables and Queries (sử dụng bảng và các query làm dữ liệu nguồn cho subform) → Next. ➢Chọn bảng hoặc query làm dữ liệu nguồn cho sub form, trong bảng hoặc query phải có field liên kết với main form → Next. ➢Chọn field liên kết với subform → Next. ➢Nhập tên cho subform → Finish. ➢Use an existing form: sử dụng form có sẵn làm subform. ➢Chọn form làm subform → Next. ➢Nhập tên cho SubForm → Finish. 195 https://tophosting.vn/
  • 196. b) Tạo bằng Design: ➢Nếu dữ liệu nguồn của subform được lấy từ nhiều bảng thì phải tạo query, trong query phải chứa field liên kết với main form (link child filed). ➢Dạng của subform thể hiện quan hệ n, do đó thường chọn dạng Datasheet hoặc Tabular. ➢Mở main form ở chế độ design, chọn công cụ subform/Subreport trong nhóm Controls drag chuột vẽ vào main form. ➢Mở Properties Sheet và thiết lập các thuộc tính: 196 ❑ Source object: Chọn Table/Query làm dữ liệu nguồn cho Subform, hoặc chọn form nếu đã thiết kế form để làm subform. ❑ Link child field: nhập tên của field trong subform liên kết với main form. ❑ Link master field: nhập tên field của main form liên kết với subform. https://tophosting.vn/
  • 197. ➢Khi chỉ định thuộc tính Source Object cho Subform thì form xuất hiện với dạng mặc định được quy định trong thuộc tính Default view. ➢Tuy nhiên, nếu bạn muốn sử dụng một form hoàn toàn riêng biệt để bạn có thể tùy biến nó. 5.6.3. Tạo ô tính toán trong subform : ➢Khi tạo một subform, bạn có thể muốn hiển thị subform thông tin tổng hợp ở dạng tổng thể. ➢Ví dụ, bạn có thể tính tổng tiền của các Hóa đơn. 5.6.2 Hiệu chỉnh Subform 197 https://tophosting.vn/
  • 198. * Ví dụ: Cần hiển thị tổng thành tiền cho tất cả hóa đơn của mỗi khách hàng. 198 https://tophosting.vn/
  • 199. ➢Trước khi đặt ô tính toán tổng hợp dữ liệu trên Mainform thì giá trị của nó phải được tính trong Subform. Ô tính toán tổng hợp dữ liệu phải được đặt trong phần footer của Subform. ➢Ví dụ: Tính tổng thành tiền của các hóa đơn. 199 https://tophosting.vn/
  • 200. * - Sau đó, trên Mainform bạn chèn một text box với ControlSource được thiết lập giá trị như sau: Trong đó: - SubformName: là tên của Subform. - ControlName_inSubform: tên của ô tính toán tổng hợp dữ liệu trong Subform. 200 https://tophosting.vn/
  • 201. ➢Tab control là một công cụ cho phép bạn có thể hiển thị nhiều nội dung trên một không gian hạn chế, bằng cách các tổ chức nội dung cần hiển thị trên từng trang riêng biệt. ➢Tab control không phải là lựa chọn tốt vì nhược điểm của nó là cần phải click chuột để di chuyển từ tab này sang tab khác. 5.7 Tab control 201 https://tophosting.vn/
  • 202. ➢Trong Form Design Tools trên thanh Ribbon. ➢Chọn Design, trong nhóm Controls, click nút Tab Control. ➢Vẽ tab control vào form tại vị trí thích hợp. ➢Thêm tất cả các trang cần thiết. 5.7.1 Sử dụng Tab Control 202 https://tophosting.vn/
  • 203. a) Thêm và xóa tab - Khi tạo mới một tab control thì luôn mặc định có hai trang bạn có thể thêm hoặc xóa bằng cách Click phải chọn Insert hoặc Delete Page. b) Tạo nhãn cho các tab ➢Chọn tab muốn tạo nhãn. ➢Mở Properties Sheet. ➢Chọn thuộc tính caption: nhập nhãn cho các trang. 5.7.2 Hiệu chỉnh Tab Control 203 https://tophosting.vn/
  • 204. c) Sắp xếp lại thứ tự tab - Sắp xếp thứ tự của các trang bằng cách click phải trên tab → chọn Page Order… - Chọn Page → click nút Move Up/Move Down. d) Đặt các control vào trang - Chọn trang thích hợp. - Chọn control trong Navigation pane, drag chuột đưa vào trang. 204 https://tophosting.vn/
  • 205. ➢Access 2010 giới thiệu một dạng form mới là Navigation form, là một form có một navigation control mà nó có thể hiển thị một hoặc nhiều form và report, navigation control có nhiều tab giúp bạn có thể di chuyển nhanh đến bất kỳ một form khác, hoặc form dạng Main/Sub. 5.8 Navigation Form 205 https://tophosting.vn/
  • 206. 5.8.1. Tạo Single level Navigation Form : ➢Trong nhóm lệnh Forms trên thanh Ribbon, click nút dropdown Navigation. ➢Chọn dạng Navigation, gồm các dạng: oHorizontal Tabs. oVertical Tabs, Left. oVertical Tabs, Right. oHorizontal Tabs, 2 levels oHorizontal Tabs and Vertical Tabs, Left. oHorizontal Tabs and Vertical Tabs, Right 206 https://tophosting.vn/
  • 207. ➢Navigation form xuất hiện trong chế độ Design view với sự kết hợp của hai control: một control subform rỗng và lớn và một navigation. 207 https://tophosting.vn/
  • 208. ➢Để thêm một navigation button vào form, click chọn một form trong Navigation Panel của Access và drag chuột kéo form vào navigation control (Chế độ Layout View) 208 https://tophosting.vn/
  • 209. ➢Để thay đổi nhãn của Navigation button, bạn double click vào nhãn và nhập tên mới. ➢Tạo khoảng cách giữa các navigation button bằng cách chọn Form Layout Tools, chọn tab Arrange → Control Padding, chọn loại khoảng cách. 209 https://tophosting.vn/
  • 210. ➢Trong nhóm lệnh Forms trên thanh Ribbon, click nút dropdown Navigation. ➢Chọn dạng Navigation: Horizontal Tabs, 2 levels ➢Xuất hiện một Navigation Form ở chế độ Layout view với sự kết hợp của ba control: một control subform rỗng và lớn và hai navigation control. ➢Tạo tiêu đề cho level1 bằng cách double click vào khung [Add New] → Nhập tiêu đề. ➢Thêm submenu cho tiên đề này bằng cách drag chuột kéo form từ trong navigation pane vào submenu. 5.8.2 Tạo Two level Navigation Form 210 https://tophosting.vn/
  • 211. TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN Thiết kế báo cáo ( Report) Chương 6 • 6.1.1 Tạo bằng lệnh Report • 6.1.2 Tạo Report bằng chức năng Winzard • 6.1.3 Tạo Report bằng Design 6.1 Cách tạo Report • 6.2.1 Sử dụng Total Query • 6.2.2 Report Grouping • 6.2.3 Sub Report 6.2 Tạo Report có phân nhóm https://tophosting.vn/
  • 212. Chức năng Report là công cụ tạo Report nhanh và dễ dàng, thường dùng để tạo những Report đơn giản có dữ liệu nguồn từ một bảng hoặc một query. Để tạo bằng chức năng Report ta phải chọn dữ liệu nguồn cho Report 6.1 Cách tạo Report 212 6.1.1 Tạo bằng lệnh Report ❖ Click nút Report trong nhóm lệnh Report trên thanh Ribbon. ❖ Xuất hiện report dạng Tabular ở chế độ Layout. https://tophosting.vn/
  • 213. 213 6.1.2 Tạo bằng chức năng Wizard: ➢ Chọn tab Create trên thanh Ribbon, trong nhóm lệnh Reports, click nút Report Wizard. ➢ Chọn Table/Query làm dữ liệu nguồn cho Report. ➢ Chọn các field hiển thị trên Report trong khung Available Field click nút để chọn một field và click nút để chọn nhiều field. Click Next. ➢ Nếu report lấy dữ liệu nguồn từ một bảng thì bỏ qua bước này, ngược lại nếu dữ liệu lấy từ nhiều bảng thì chọn field kết nhóm. Click Next. https://tophosting.vn/
  • 214. 214 6.1.2 Tạo bằng chức năng Wizard: ➢ Chọn field mà bạn muốn sắp xếp dữ liệu cho report. ➢ Có thể sắp xếp kết quả trong report bằng cách kết hợp tối đa là 4 field ➢ Chọn field mà bạn muốn Nhóm(Grouping) dữ liệu cho report. ➢ Sau khi chọn field cần Nhóm chọn Next https://tophosting.vn/
  • 215. 215 6.1.2 Tạo bằng chức năng Wizard: Chọn dạng Report. Layout: gồm 3 dạng: + Columnar. + Tabular. + Justified. Orentation: gồm 2 dạng + Portrait: trang dọc + Landscape: trang ngang https://tophosting.vn/
  • 216. 216 6.1.2 Tạo bằng chức năng Wizard: Nhập tiêu đề cho report Chọn lựa: - Preview: xem trước báo cáo - Modify: sửa và thiết kế báo cáo - Nhấp Finish để tạo báo cáo https://tophosting.vn/
  • 217. 217 6.1.3 Tạo bằng chức năng Design: ➢ Chọn Table/Query làm dữ liệu nguồn cho report. ➢ Chọn tab Create trên thanh Ribbon, trong nhóm lệnh Reports, click nút Report Design. ➢ Xuất hiện cửa sổ thiết kế report và field list chứa các field trong dữ liệu nguồn của report. Cách tạo: Lần lượt drag chuột kéo các field trong field list hoặc các control trong nhóm lệnh Controls trên thanh Ribbon thả vào Report https://tophosting.vn/
  • 218. 218 6.1.3 Tạo bằng chức năng Design: Các thành phần trong cửa sổ thiết kế Report: 1. Page Header/Footer 2. Report Header/Footer 3. Detail 4. Group Header 5. Footer Một Report gồm các thành phần: https://tophosting.vn/
  • 219. 219 6.1.3 Tạo bằng chức năng Design: Page Header/Footer: Chứa tiêu đề đầu trang và cuối trang. Nội dung đặt trong phần Page Header/Footer sẽ xuất hiện ở đầu và cuối mỗi trang. Các nội dung thường đặt trong Page Header/Footer. Page Numbers, logo, Title, Date and Time… https://tophosting.vn/
  • 220. 220 6.1.3 Tạo bằng chức năng Design: Page Header/Footer: Chứa tiêu đề đầu trang và cuối trang. Nội dung đặt trong phần Page Header/Footer sẽ xuất hiện ở đầu và cuối mỗi trang. Page Numbers: chèn số trang Logo: chèn logo báo cáo Title: tiêu đề cho trang báo cáo Date and Time: ngày và thời gian Các nội dung thường đặt trong Page Header/Footer: https://tophosting.vn/
  • 221. 221 6.1.3 Tạo bằng chức năng Design: Report Header/Footer: Tiêu đề đầu và cuối report, nội dung đặt trong Report Header/Footer chỉ xuất hiện ở phần đầu của trang đầu tiên và phần cuối trang của trang cuối cùng. Các nội dung thường đặt trong Report Header/Footer. Công thức tính toán, thống kê dữ liệu. https://tophosting.vn/
  • 222. 222 6.1.3 Tạo bằng chức năng Design: Detail: chứa nội dung chính của report, hiển thị dữ liệu trong dữ liệu nguồn dưới dạng các textbox bound control, mỗi textbox là một field dữ liệu hoặc các textbox dạng unbound control dùng để tạo thêm field mới. Group Header/Footer (Các report có phân nhóm): đối với các report có phân nhóm giống như form dạng main-sub thì ngoài các phần cơ bản còn có thêm phần kết nhóm là group header/Footer. ➢ Nội dung trong phần group header/Footer là tiêu đề của nhóm. ➢ Thống kê dữ liệu theo nhóm. https://tophosting.vn/
  • 223. 223 6.1.3 Tạo bằng chức năng Design: ➢ Để hiệu chỉnh report, ta mở report ở chế độ design view. ➢ Chọn các control muốn hiệu chỉnh. ➢ Mở Properties Sheet, chọn thuộc tính đê hiệu chỉnh ➢ Cách hiệu chỉnh tương tự như đối với form. Hiệu chỉnh Report https://tophosting.vn/
  • 224. 6.2 Tạo Report có phân nhóm 224 1. Sử dụng Total Query 2. Sử dụng Report Grouping 3. Sử dụng Sub Report 6.2.1 Sử dụng Total Query Trong trường hợp này, report không chứa phần chi tiết mà chỉ chứa các ô thống kê dữ liệu: Sum, Avg, Min, Max trong phần Detail của report. Cách thực hiện như sau: ➢ Tạo Total Query, trong query chọn field làm tiêu chuẩn thống kê, field chứa dữ liệu thống kê và chọn phép thống kê ➢ Tạo Report, sử dụng Total query đã tạo ở trên. https://tophosting.vn/
  • 225. 225 6.2.1 Sử dụng Total Query Ví dụ: Tạo report tính tổng số lượng và tổng tiền đã bán của từng sản phẩm Tạo report, sử dụng Total query đã tạo ở trên. https://tophosting.vn/
  • 226. 226 6.2.2 Report Grouping Report grouping giúp bạn có thể tổ chức khối lượng lớn các thông tin vào các nhóm. Với cách này report sẽ thể hiện dữ liệu chi tiết trong từng nhóm và có thể thêm nhiều cấp độ nhóm theo các tiêu chí khác nhau. Cách tạo như sau: ➢ Trên thanh Ribbon, chọn tab Create, trong nhóm lệnh Reports, click nút Report Design. ➢ Xuất hiện cửa sổ thiết kế Report, thanh Ribbon chuyển sang tab Design https://tophosting.vn/
  • 227. 227 6.2.2 Report Grouping ➢ Trong Properties Sheet, chọn Tab Data, tại thuộc tính Record source, chọn Table/Query làm dữ liệu nguồn cho Report. ➢ Click nút Group& Sort trong nhóm lệnh Grouping & Totals. https://tophosting.vn/
  • 228. 228 6.2.2 Report Grouping Trong cửa sổ thiết kế xuất hiện khung Group, Sort and Total bên dưới cửa sổ thiết kế. Click nút Add a group để chọn field kết nhóm, chọn field kết nhóm trong field list, trên cửa sổ thiết kế xuất hiện thanh Group header. https://tophosting.vn/
  • 229. 229 6.2.2 Report Grouping Khung Group, Sort and Total có dạng như hình: Mở thanh group footer và thực hiện các phép thống kê bằng cách click nút More, cửa sổ Group, Sort and Total có dạng: https://tophosting.vn/
  • 230. 230 6.2.2 Report Grouping Click nút with no Total để mở menu Totals: Total On: chọn field chứa dữ liệu thống kê. Type: Chọn phép thống kê. ➢ Show Grand Total: Đặt ô thống kê trong phần report header/footer. ➢ Show group subtotal as % of Grand Total: Đặt ô thống kê trong phần report header/footer. ➢ Show subtotal in group header: Đặt ô thống kê trong phần group header. ➢ Show subtotal in group footer: Đặt ô thống kê trong phần group footer. Chọn vị trí đặt các ô thống kê bằng cách check vào các ô: https://tophosting.vn/
  • 231. 231 6.2.3 Sub Report Subreport có tác dụng tương tự như Report grouping. Sự khác biệt duy nhất là tạo các report trong hai phần riêng biệt: Main Report và SubReport. https://tophosting.vn/
  • 232. 232 6.2.3 Sub Report ➢ Tạo Main Report, dữ liệu nguồn thường là bảng cha. ➢ Tạo Sub Report, dữ liệu nguồn phải chứa field liên kết với Main Report. ➢ Đưa Sub Report vào Main Report có thể dùng công cụ SubForm/SubReport trong nhóm lệnh Controls. ➢ Thiết lập thuộc tính Link child Fields và Link master Fields. Cách tạo: https://tophosting.vn/
  • 233. TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN Tự động hóa ứng dụng bằng Marco Chương 7 Marco là gì? Cách tạo và thực thi Marco Marco Autoexec Xây dựng hệ thống menu bằng Marco https://tophosting.vn/
  • 234. 234 ➢Giả sử ta có một công việc gồm 4 thao tác: ✓Mở một bảng để sửa (giả sử có tên BanHang) ✓Mở một Form ứng vơí bảng đó để vào dữ liệu ✓Mở một Report ứng với bảng đó ✓In Report đó ➢Bình thường ta thao tác từng công việc một, hết một công việc, đóng lại và mở công việc khác cứ như thế cho đến hết. ➢ Nhưng còn một cách khác là xử lý bốn công việc trên một cách tự động bằng công cụ mà ta hay gọi là Macro. ➢Giả sử xây dựng một form với nút đóng form bằng cách tạo nút trên form và xây dựng một macro để đóng form sau đó gán macro cho sự kiện Click của nút. 7.1 Marco là gì? https://tophosting.vn/
  • 235. 235 ➢Cách tạo: Chọn tab Create trên thanh Ribbon, trong nhóm lệnh Macro & Code, click nút Macro 7.2 Cách tạo và thực thi Marco ➢Xuất hiện cửa sổ thiết kế Macro với các thành phần: oKhung bên trái dùng để chọn các action trong Macro. o Khung bên phải chứa các Action theo nhóm và các đối tượng trong cơ sở dữ liệu đã được gán macro. https://tophosting.vn/
  • 236. 236 ➢Chọn Action trong khung Add New Action. ➢Ứng với những Action khác nhau thì xuất hiện các ô cho bạn chọn hoặc nhập các argument tương ứng. 7.2.1 Cách tạo Marco ➢Ví dụ: khi chọn Action là GotoRecord thì sẽ xuất hiện các Argument như hình. ➢Tiếp tục chọn Action tiếp theo bằng cách click Add new Action. https://tophosting.vn/
  • 237. 237 ➢Đối với macro không gán cho sự kiện của một đối tượng cụ thể thì chọn tên macro và click nút run để thực thi hoặc double click vào tên macro, thường dùng cho các macro chứa các lệnh Open. o Ví dụ: macro mở form. ➢ Đối với macro mà chỉ có thể thực thi khi tác động vào một đối tượng cụ thể trên form hoặc report thì sau khi tạo và lưu macro thì phải gán macro cho sự kiện của đối tượng cụ thể. Các thực hiện. ➢ Mở form hoặc report chứa đối tượng cần gán macro. ➢ Click phải trên đối tượng chọn properties, hoặc chọn đối tượng → Mở properties Sheet. 7.2.2 Thực thi Marco ➢Chọn tab Event, chọn sự kiện (event). ➢ Trong danh sách xổ xuống chọn tên Macro. https://tophosting.vn/
  • 238. 238 ➢Actions: Trong Access 2010 action được chia thành nhóm theo chức năng. ➢Events: Sự kiện tác động lên đối tượng để thực thi macro. 7.2.3 Các Actions và Events thông dụng https://tophosting.vn/
  • 239. 239 ➢ Macro Autoexec là macro tự động thực thi khi chương trình được khởi động và có tên là autoexec. ➢ Macro autoexec thường dùng để mở form giao diện, khi ứng dụng được khởi động thì form giao diện tự động mở ra đầu tiên. Để thực hiện ta tạo một macro autoexec chứa action OpenForm, Form name là tên form giao diện, tên macro là autoexec. 7.3 Marco Autoexec 7.4 Xây dựng hệ thống menu bằng Marco ➢Một ứng dụng hoàn chỉnh thường cần đến hệ thống menu để liên kết các thành phần thành một hệ thống. ➢Ví dụ: hệ thống menu trong chương trình quản lý hóa đơn. https://tophosting.vn/
  • 240. 240 ➢Trong Access 2010, menu do người dủng tạo được tổ chức thành nhóm giống như nhóm lệnh trên thanh Ribbon đặt trong tab Add-In. ➢Tạo menu cấp 1: chính là Main Menu dùng action Addmenu với các Argument như sau: oMenu Name: tên các menu trong menu cấp 1. o Menu Macro Name: tên macro để tạo menu cấp 2. o StatusBar Text: Dòng văn bản xuất hiện trên thanh status bar khi menu được chọn. o Giả sử Main menu gồm 4 Menu. 7.4.1 Tạo Marco cho hệ thống menu https://tophosting.vn/
  • 241. 241 ➢Tạo macro cho menu cấp 2: Macro này có tên trùng với tên được đặt trong mục Menu Macro Name của macro cấp 1, mỗi menu là một macro. 7.4.1 Tạo Marco cho hệ thống menu ➢Trong menu chính có bao nhiêu menu con thì tạo bấy nhiêu macro. https://tophosting.vn/
  • 242. 242 ➢Để đưa menu vào hoạt động thì cần phải có một form chính của chương trình, khi form này được mở thì hệ thống menu sẽ được kích hoạt: oMở form chính ở chế độ design. oClick phải trên form → properties. oChọn tab Other 7.4.2 Đưa menu vào chương trình ➢Tại thuộc tính Menu bar, nhập tên macro cấp1. https://tophosting.vn/
  • 243. TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN Module – Lập trình trong Access Chương 8 Tổ chức, hoạt động chương trình trong Access Thủ tục đáp ứng sự kiện Tạo và thực hiện thủ tục và hàm Các phép toán, hàm, biến, biểu thức Một số lệnh về lập trình Đối tượng, biến đối tượng và cách xử lý https://tophosting.vn/
  • 244. 244 Chương trình con có hai dạng: Thủ tục hoặc hàm. Mỗi chương trình con là một dãy các lệnh để thực hiện một công việc nào đó. Một chương trình có thể có rất nhiều chương trình con. a. Chương trình con dạng thủ tục: Bao gồm các thành phần: Đầu thủ tục, thân thủ tục và kết thúc thủ tục. 1. Đầu thủ tục có dạng: o[Private] Sub <Tên thủ tục> [(<Danh sách các đối số)>] 2. Thân thủ tục oThân thủ tục nằm sau đầu thủ tục. Thân thủ tục chứa các lệnh để giải quyết một công việc nào đó (các lệnh cụ thể bạn sẽ tìm hiểu sau). 3. Kết thúc thủ tục oĐể báo cho máy tính biết kết thúc một thủ tục, ta viết dòng lệnh: End Sub 8.1 Tổ chức và hoạt động của chương trình trong Access [Private] Sub <Tên thủ tục> [(<Danh sách các đối số)>] <Thân thủ tục> End Subhttps://tophosting.vn/
  • 245. 245 b. Chương trình con dạng hàm (Funtion) ➢ Cũng như thủ tục, hàm cũng có cấu trúc ba phần: Đầu hàm, thân hàm và kết thúc hàm. Dạng tổng quát như sau: 8.1 Tổ chức và hoạt động của chương trình trong Access [Private] Function <Tên hàm> [(<Danh sách các đối số)>] <Thân hàm> End Function ➢ Sau đây là một số ví dụ: oVí dụ1: Lập trình hiển thị câu chào: “Chào bạn đã đến với lập trình Access” oBước 1: oChọn Create chọn New chọn Macro & code , sau đó cửa sổ để bạn soạn thảo chương trình (hay còn gọi là cửa sổ Code) hiện ra như sau: https://tophosting.vn/
  • 246. 246 ➢ Bước 2: Bạn gõ vào cửa sổ Code các lệnh (bạn cứ gõ rồi sau sẽ hiểu lệnh đó là gì?) như hình sau: ➢Bước 3: Chạy chương trình: Chọn Run/Run Sub. Sau khi chạy chương trình, kết quả như hình sau: ➢Giải thích: Lệnh MsgBox(“Chao ban da den voi lap trinh Access”) sẽ đưa ra một thông báo như hình trên. Ta có thể gọi đây là lệnh hiển thị dữ liệu cũng được. Khi đưa ra kết quả trên chương trình tạm dừng và nếu bạn chọn OK thì chương trình sẽ chạy tiếp và thực hiện lệnh sau lệnh MsgBox(...). 8.1 Tổ chức và hoạt động của chương trình trong Access https://tophosting.vn/
  • 247. 247 ➢ Ví dụ 2: Vào 2 số nguyên, tính tổng và hiển thị tổng của hai số đó. oBạn gõ vào cửa sổ Code như hình sau: oKhi chạy chương trình, máy yêu cầu bạn gõ từ bàn phím giá trị a như giao diện sau: 8.1 Tổ chức và hoạt động của chương trình trong Access https://tophosting.vn/
  • 248. 248 ➢Đến đây nếu bạn gõ vào số 5 và chọn OK (Hay ấn Enter) thì số nguyên 5 sẽ lưu vào biến a. Máy lại đưa ra giao diện: ➢Và nếu bạn gõ vào số 4 và chọn OK thì máy sẽ lưu số nguyên 4 vào biến b. Tiếp tục máy sẽ tính tổng và đưa kết quả là 9 như hình sau: 8.1 Tổ chức và hoạt động của chương trình trong Access https://tophosting.vn/
  • 249. 249 ➢Giải thích: ➢Lệnh: Dim a As Integer o Nghĩa là: Biến (Dim) a là (As) nguyên (Integer). Bạn khai báo biến a là nguyên , để máy sử dụng ô nhớ tương ứng với số nguyên mà!, tất nhiên nếu là số thực thì ô nhớ phải lớn hơn, v.v.. lý do khai báo là vậy. ➢Lệnh: a = InputBox("Moi ban go vao so a? ") o Nghĩa là: Hộp nhập liệu (InputBox) ra thông báo: "Moi ban go vao so a? “. Nếu bạn gõ vào một số thì số đó được lưu vào biến a ➢Lệnh: s = a + b o Đây là lệnh “gán”, nghĩa là máy sẽ lấy nội dụng biến a (bạn vừa gõ vào 5), cộng với nội dung của biến b (bạn vừa gõ vào 4), kết quả sẽ là 9, “gán” kết quả này cho biến s (gọi lệnh “gán” là như vậy). ➢Lệnh: MsgBox "Tong 2 so la: " & Str(s) o Đây là lệnh hiển thị dữ liệu, nhưng dữ liệu thì phải đồng nhất, ở đây: "Tong 2 so la: "(là dữ liệu văn bản) còn nội dung của biến s là một số nguyên. Để ghép được bạn phải đổi nội dung của biến s (số nguyên) thành dạng văn bản bằng hàm Str(s): Str viết tắt từ chữ String (văn bản). Để ghép hai văn bản ta dùng dấu & (cũng như để cộng 2 số ta dùng dấu + ). 8.1 Tổ chức và hoạt động của chương trình trong Access https://tophosting.vn/
  • 250. 250 ➢Mở đối tượng form hoặc report ở chế độ design. ➢Click phải trên control muốn gán module → chọn properties. ➢Chọn tab event → chọn event thích hợp → Click nút biểu tượng. ➢Xuất hiện cửa sổ Choose Builder. ➢Chọn lệnh Code Builder → OK. ➢Xuất hiện cửa sổ soạn thảo module với nội mặc định. ➢Bạn chọn Event và cuốn để tìm sự kiện mình cần. 8.2 Thủ tục đáp ứng sự kiện với form, report https://tophosting.vn/
  • 251. 251 ➢Ví dụ: Tạo thủ tục để mở bảng có tên SO_LUONG khi ta kích vào vùng tiêu đề đầu trang Form. Ta thao tác như sau: ➢Chọn Create vào tap Form chon Form Design ➢Kích vào thanh FormHeader để bật cửa sổ chứa các thủ tục đáp ứng sự kiện ứng với vùng này (tất nhiên ban chon Event), như hình sau: 8.2 Thủ tục đáp ứng sự kiện với form, report https://tophosting.vn/
  • 252. 252 ➢Kích vào ô bên phải ứng với dòng On Click, kích mũi tên xuống để chọn [Event Procedure], kích tiếp vao nút ba chấm bên phải , Sau đó thủ tục đáp ứng sự kiện hiện ra: 8.2 Thủ tục đáp ứng sự kiện với form, report https://tophosting.vn/
  • 253. 253 ➢Bạn gõ dòng lệnh: DoCmd.OpenTable “So_luong”. ➢Lưu thủ tục này bằng một tên nào đó, giả sử tên DauForm ➢Thoát về CSDL ➢Chạy thủ tục này bằng cách chọn Navigation pane/ Forms, kích đúp vào tên DauForm ta thấy một Form hiện ra. ➢Tiếp theo bạn kích vào vùng FormHeader, chương trình chạy và kết quả là bảng SoLuong được mở ra như sau: ➢Sự kiện Click ở các vùng còn lại thiết kế tương tự. 8.2 Thủ tục đáp ứng sự kiện với form, report https://tophosting.vn/
  • 254. 254 a. Taọ thủ tục, hàm trong Macro & Code Tab. o Bước 1: Create chọn Tab Macro & Code chọn Module o Bước 2: Khai báo và tạo lập thủ tục hoặc hàm o Bước 3: Ghi Module Ví dụ: Vào tuổi của hai người, tính tuổi trung bình của họ. Function Tong() Dim T1 As Interger Dim T2 As Interger Dim TB As Single T1 = InputBox(“vào tuoi cua nguoi thu nhat?”) T2 = InputBox(“vào tuoi cua nguoi thu hai?”) TB=(T1+T2)/2 MsgBox “Tuoi trung binh la:” & Str(TB) End Function ➢Tuổi trung bình có thể không phải nguyên (vì phải chia cho 2), do đó ta phải khai báo là thực (Single). Số thực trong máy là số có dấu chấm thập phân, ví dụ: 23.45, 12.00, -45.34567, v.v.. 8.3 Tạo và thực hiện thủ tục và hàm https://tophosting.vn/
  • 255. 255 b. Tạo thủ tục đáp ứng sự kiên của các điều khiển trên Form. Trên Form ta có thể đặt các điều khiển như nút lệnh chẳng hạn, nút lệnh này cũng có các sự kiện. Các bước tiến hành: ➢Bước 1: Mở Form và bổ sung một đối tượng lên Form, giả sử nút lệnh (Button) chẳng hạn. ➢Bước 2: Mở cửa sổ Code: oChọn nút lệnh, kích phải chuột chọn Build event , sau đó hộp thoại Code Builder hiện ra: 8.3 Tạo và thực hiện thủ tục và hàm https://tophosting.vn/
  • 256. 256 ➢Chọn Code Builder và chọn OK, một thủ tục sự kiện xuất hiện: ➢Soạn thủ tục hoặc hàm đáp ứng sự kiện. ➢Ghi lại thủ tục đó và chạy thử 8.3 Tạo và thực hiện thủ tục và hàm https://tophosting.vn/
  • 257. 257 c. Chương trình có nhiều thủ tục Một thủ tục khi chạy có thể yêu cầu (gọi) một hoặc nhiều thủ tục khác làm việc. Lệnh gọi này được viết lại đúng tên thủ tục bị gọi, ví dụ hai thủ tục sau: Sub MoBang() DoCmd.OpenTable”So_luong” End Sub Và thủ tục tính tổng: Sub Tong() Dim a As Integer, b As Integer, s As Integer a = 12 b = 20 s = a + b MsgBox ("s=" & Str(s)) End Sub Để chạy được 2 thủ tục trên, ta có thể tạo một thủ tục khác (giả sử có tên là GOI(), thủ tục GOI có dạng sau: Sub GOI() MoBang Tong End Sub 8.3 Tạo và thực hiện thủ tục và hàm https://tophosting.vn/
  • 258. 258 Khi chạy, thủ tục GOI() yêu cầu thủ tục MoBang() làm việc, thủ tục MoBang() làm việc xong lại quay về thủ tục GOI() và thực hiện tiếp lệnh sau đó (tức là lệnh gọi thủ tục Tong). Cứ như thế cho đến khi tất cả các lệnh trong thủ tục GOI() được hoàn tất. Ba thủ tục đó nằm trong một đoạn mã (chương trình) như sau: 8.3 Tạo và thực hiện thủ tục và hàm https://tophosting.vn/
  • 259. 259 a. Các phép toán số học b. Các phép toán so sánh: c. Các phép toán Logic: AND, OR, NOT: Các phép toán so sánh tạo nên biểu thức logic cho kết quả True(-1) hoặc False(0) d. Phép ghép chuỗi ký tự: Muốn ghép 2 chuỗi ký tự ta sử sụng phép toán & hoặc dấu + 8.4 Các phép toán, hàm, biến, biểu thức + : Cộng - : Trừ * : Nhân / : Chia Mod : Chia lấy phần dư : Chia nguyên ^ : Luỹ thừa = : Bằng < : Nhỏ hơn > : Lớn hơn >= : Lớn hơn hoặc bằng <= : Nhỏ hơn hoặc bằng <> : khác X Y X And Y X Or Y Not (x) -1 -1 0 0 -1 0 0 0 -1 -1 -1 0 -1 -1 -1 0 0 0 -1 -1 https://tophosting.vn/
  • 260. 260 Khai báo biến: ➢Biến phải khai báo để chương trình xác định: ➢Tên của biến là gì? vì chương trình sẽ làm việc với tên đó. ➢Kiểu của biến là gì? (nguyên, thực, logic, văn bản, v.v..) vì chương trình phải “xếp chỗ” cho các biến “lưu trú”, nghĩa là chương trình phải huy động ô nhớ phù hợp với kiểu của biến, ví dụ nếu biến nguyên thì ô nhớ “bé”, số thực thì ô nhớ “to”, v.v..Việc khai báo là để xếp chỗ ở của biến (ô nhớ) cho hợp lý, tránh lãng phí (thừa không gian “lưu trú” hoặc không đủ chỗ để “lưu trú”) ➢Dạng khai báo biến như sau: Dim <Tên biến> [As<kiểu>] <Tên biến>: Bạn tự đặt theo luật sau: là một chuỗi các chữ cái, chữ số, dấu gạch chân, độ dài tên không quá 40 ký tự, không được trùng với các từ khoá có trong Access và đặc biệt ký tự đầu phải là chữ cái.. [As<kiểu>]: Nếu phần này không ghi thì coi như biến đó ngầm định có các kiểu: Kiểu số, chuỗi, Date/Time, Null (rỗng). Khi sử dụng biến đó tuỳ ngữ cảnh mà xác định kiểu sau. Còn nếu ghi phần này thì kiểu có thể là: Nguyên, thực, văn bản, v.v.. Ví dụ về khai báo biến: Dim i As Interger (i là biến nguyên ngắn) 8.4 Các phép toán, hàm, biến, biểu thức https://tophosting.vn/
  • 261. 261 Các hàm thường sử dụng. ➢Với các hàm, bạn cũng phải viết đúng theo quy định của Access, ví dụ Sin(x), Cos(x), Sqr(x), v.v..các hàm như đã trình bày ở chương 5. Biểu thức (Expression) ➢... Các biến, hằng, hàm nối với nhau bởi phép toán được gọi là biểu thức, biểu thức cũng có thể chỉ là 1 biến , 1 hằng, 1 hàm. Điều quan trọng là bạn phải viết biểu thức đúng quy định (đúng phép toán đã quy định, đúng tên biến, đúng tên hằng, đúng cách viết hằng v.v..). Ví dụ: oBiểu thức chỉ chứa hằng: (234+678)/13 oBiểu thức số chỉ chứa biến: (a+b+c)*(a+b) oBiểu thức số vừa chứa biến và hằng: (a+b)/7 oBiểu thức văn bản: “Tin hoc” & “Văn phong” oBiểu thức logic:(5>13) Or (3<9) 8.4 Các phép toán, hàm, biến, biểu thức https://tophosting.vn/
  • 262. 262 ➢Khi lập trình trong Access, 1 câu lệnh chỉ được viết trên 1 dòng, nếu muốn viết nhiều câu lệnh trên 1 dòng ta phải dùng dấu hai chấm(:) để ngăn cách. Ví dụ: a=4: b=7: s=a+b ➢ Các câu ghi chú, có ý nghĩa giải thích rõ chức năng từng hằng, biến, biểu thức, câu lệnh, v.v.. Câu ghi chú phải bắt đầu bằng REM hoặc dấu nháy đơn (‘), ví dụ: Rem Doan ma sau là de vao du lieu 8.5 Một số lệnh về lập trình https://tophosting.vn/
  • 263. 263 8.5 Một số lệnh về lập trình 8.5.1 Vào ra dữ liệu a. Lệnh Inputbox$ ➢ Chức năng: Cho phép nhập giá trị kiểu văn bản vào bộ nhớ từ bàn phím ➢ Cú pháp: Inputbox$(<Thông báo>[ , [<Tiêu đề>][,<Giá trị ngầm định>]]) Ví dụ: Nhập tên của một khách hàng vào biến Kh Dim Kh As String *20 Kh=InputBox$(“Tên khách hàng”) https://tophosting.vn/
  • 264. 264 b. Lệnh Inputbox ➢ Chức năng: Cho phép nhập giá trị kiểu Varial vào từ bàn phím ➢ Cú pháp: InputBox(<Thông báo>[ , [<Tiêu đề>][,<Giá trị ngầm định>]]) Ví dụ:Nhập số chứng từ của một hoá đơn vào biến Sct Dim Sct Sct=InputBox(“Số chứng từ”) c. Lệnh MsgBox ➢Chức năng: Hiện chuỗi văn bản (thông báo) ra hộp thoại. ➢Cú pháp: MsgBox(<Nội dung>[ ,<kiểu>[ ,<Tiêu đề>]]) Ví dụ: MsgBox (“Hello Thao”) Ví dụ 2: Nhập và tính tổng hai số và in kết quả ra hộp thoại Sub Tong() Dim a As Interger, b As Interger a=InputBox(“vào a=”) b= InputBox(“vào b=”) Msgbox “Kết quả là:” & Str(a+b) End Sub 8.5.1 Vào ra dữ liệu https://tophosting.vn/
  • 265. 265 ➢Như đã nói qua ở phần đầu lập trình, lệnh gán có dạng: <Biến>=<Biểu thức> Ví dụ: s=s+i 8.5.3 Lệnh rẽ nhánh IF…THEN…END IF ➢Dạng 1: ➢Hoạt động của lệnh này như sau: Nếu<Biểu thức điều kiện> đúng thì thực hiện <Nhóm lệnh> Nếu<Biểu thức điều kiện> sai thì bỏ qua lệnh If. Ví dụ: Sub XemTuoi() Dim tuoi As Integer tuoi=InputBox(“ Vao tuoi cua ban?”) If tuoi>60 Then MsgBox(“Chắc bạn nghỉ hưu rồi?”) End If End Sub 8.5.2 Lệnh gán If <Biểu thức điều kiện> Then <Nhóm lệnh> End If https://tophosting.vn/
  • 266. 266 ➢Khi chạy chương trình: oNếu bạn gõ vào 65 (lơn hơn 60) và Enter thì máy sẽ in ra câu: “Chắc bạn nghỉ hưu rồi”. oCòn nếu bạn gõ vào 25 (nhỏ hơn 60) và Enter thì máy không đưa ra gì cả. ➢Dạng 2: Hoạt động: Nếu <Biểu thức điều kiện> đúng thì thực hiện <Nhóm lệnh 1> bỏ <Nhóm lệnh 2> Nếu <Biểu thức điều kiện> sai thì thực hiện <Nhóm lệnh 2> bỏ <Nhóm lệnh 1> 8.5.3 Lệnh rẽ nhánh IF...THEN...END IF If <Biểu thức điều kiện> Then <Nhóm lệnh 1> Else <Nhóm lệnh 2> End If https://tophosting.vn/
  • 267. 267 ➢Ví dụ 1: Ta sửa lại thủ tục XemTuoi() để gặp trường hợp nào máy cũng trả lời: Sub XemTuoi() Dim tuoi As Integer tuoi=InputBox(“ Vao tuoi cua ban?”) If tuoi>60 Then MsgBox(“Chắc bạn nghỉ hưu rồi?”) Else MsgBox(“Bạn chưa đến tuổi nghỉ hưu!” ) End If End Sub ➢Ví dụ 2: Lập trình giải phương trình bậc hai:ax2+bx+c=0 Để tính nghiệm phương trình bậc hai này, bạn phải cho máy biết ba giá trị cụ thể ứng với a, b, c (ở đây kiểu 3 biến ấy là thực, rõ ràng bạn phải dùng lện InputBox). Nhờ giá trị cụ thể 3 biến đó bạn tính được Delta, sau đó bạn phải xem xét nếu (If) Delta không âm thì có 2 nghiệm, nếu âm thì vô nghiệm. Trình tự đó (giải thuật) được liệt kê như sau: 8.5.3 Lệnh rẽ nhánh IF...THEN...END IF https://tophosting.vn/
  • 268. 268 Sub GPTB2() Dim a As Double, b As Double, c As Double, Delta As Double Dim x1 As Double, x2 As Double a= InputBox(“vao a=”) b= InputBox(“vao b=”) c= InputBox(“vao c=”) Delta= b*b - 4*a*c If Delta>0 Then x1=(-b+Sqr(Delta))/(2*a) x2=(-b-Sqr(Delta))/(2*a) MsgBox (“x1=” & Str(x1)) MsgBox (“x2=” & Str(x2)) Else MsgBox (“Pt vo nghiem”) End If End Sub 8.5.3 Lệnh rẽ nhánh IF...THEN...END IF https://tophosting.vn/
  • 269. 269 ➢Không phải lúc nào cũng “không thế này thì thế kia” (2 nhánh) mà có những trường hợp bạn phải chọn 1 trong nhiều nhánh, ví dụ: Giả sử bằng tốt nghiệp của bạn có 3 loại: Trung bình, Khá và Giỏi. Nếu khá thì được thưởng 100.000đ, nếu giỏi được thưởng 200.000đ, còn trung bình thì không được thưởng. ➢Chương trình như sau: Sub XetThuong() Dim Loai As Integer Loai=InputBox(“Vào loại: Trung bình gõ vào số1, Khá số2, Giỏi số3”) Select Loai Case 1 MsgBox(“Bạn không được thưởng”) Case 2 MsgBox(“Bạn được thưởng 100.000đ”) Case Else MsgBox(“Bạn được thưởng 200.000đ”) End Select End Sub 8.5.4 Lệnh chọn Select...Case https://tophosting.vn/
  • 270. 270 ➢Khi chạy chương trình, nếu bạn gõ vào số 3 thì máy sẽ in dòng:” Bạn được thưởng 200.000đ”. Nhưng nếu bạn không may gõ nhầm số 6 (gõ nhầm là bình thường mà!) thì máy vẫn thưởng bạn 200.000đ, mặc dù không có loại nào là loại 6 cả. Để an toàn bạn sửa lại đoan mã trên như sau: Sub XetThuong() Dim Loai As Integer Loai=InputBox(“Vào loại: Trung bình gõ vào số1, Khá số2, Giỏi số3”) Select Loai Case 1 MsgBox(“Bạn không được thưởng”) Case 2 MsgBox(“Bạn được thưởng 100.000đ”) Case 3 MsgBox(“Bạn được thưởng 200.000đ”) Case Else MsgBox(“Bạn gõ nhầm loại bằng rồi!”) End Select End Sub 8.5.4 Lệnh chọn Select...Case https://tophosting.vn/
  • 271. 271 ➢Cú pháp tổng quát của lệnh Select như sau: ➢Nếu <Giá trị i > bằng i thì thực hiện <Nhóm lệnh i> và kết thúc lệnh Select Case. ➢Còn nếu không có 1 trường hợp nào đúng thì hực hiện <Nhóm lệnh n+1> và cũng kết thúc luôn lệnh Select Case hoặc ra khỏi Select Case nếu không dùng lệnh Case Else.. 8.5.4 Lệnh chọn Select...Case Select Case <Biểu thức nguyên> Case <Giá trị 1> <Nhóm lệnh 1> Case <Giá trị 2> <Nhóm lệnh 2> ……….. Case <Giá trị n> <Nhóm lệnh n> [Case Else <Nhóm lệnh n+1>] End Select https://tophosting.vn/
  • 272. 272 ➢Ví dụ: Tạo một thủ tục lập kế hoạch công tác trong tuần, đặt vào nút lệnh Command() trên Form. Khi chạy chương trình và kích hoạt nút lệnh thủ tục được thực hiện: Private Sub command0_Click() Dim Thu As Integer Thu = InputBox(“Bạn cho biết thứ? ”) Select Case Thu Case 2 MsgBox (“Họp giao ban”) Case 3 MsgBox (“Đi xuống phân xưởng”) Case 4 MsgBox (“Đi lên tổng công ty”) Case 5 Or 6 MsgBox (“Họp các phân xưởng”) Case Else MsgBox (“Nghỉ”) End Select End Sub 8.5.4 Lệnh chọn Select...Case https://tophosting.vn/
  • 273. 273 ➢Lệnh For có cú pháp tổng quát như sau: ➢Ban đầu <Biến đếm> nhận <Giá trị đầu>, và so sánh với <Giá trị cuối>, nếu lớn hơn thì kết thúc For, nếu nhỏ hơn hoặc bằng thì thực hiện <Nhóm lệnh>, gặp Next, <Biến đếm> cộng thêm với <Bước tăng>, và đồng thời so sánh với <Giá trị cuối>, nếu lơn hơn thì kết thúc For, còn nếu đang nhỏ hơn hoặc bằng thì lại thực hiện <Nhóm lệnh>, gặp Next lại làm tiếp như trên. 8.5.5 Lệnh lặp For...Next For <Biến đếm>=<Giá trị đầu> To <Giá trị cuối>[Step <Bước tăng>] <Nhóm lệnh> Next https://tophosting.vn/
  • 274. 274 ➢Ví dụ: Tính tổng s=11+22+33+...+1010 . Sub Tong() Dim s As Double, i As Integer For i = 1 To 10 Step 1 s = s + i^i Next MsgBox “Kết quả là:” & Str(s) End Sub 8.5.5 Lệnh lặp For...Next https://tophosting.vn/
  • 275. 275 ➢Dạng tổng quát như sau: ➢Chừng nào <Điều kiện> còn đúng thì thực hiện <Nhóm lệnh> ➢Khi <Điều kiện> sai thì ra thì thoát khỏi vòng lặp và thực hiện nhóm lệnh sau Loop . Ví dụ: Sub Tong() Dim s As Double, a As Double, i As Integer i= 1 a=1/i s= 0 Do While a>=0.0001 s= s+a i= i+1 a=1/i Loop MsgBox (“Kết quả:”) & Str(s) End Sub 8.5.6 Lệnh Do while... Loop Do While <Điều kiện> <Nhóm lệnh> Loop https://tophosting.vn/
  • 276. 276 ➢Dạng tổng quát như sau: ➢Chừng nào <Điều kiện> vẫn còn sai thì thực hiện <Nhóm lệnh>. ➢Ví dụ trên ta viết lại theo lệnh này: Sub Tong() Dim s As Double, a As Double, i As Integer i= 1 a=1/i s= 0 Do Until a< 0.0001 s= s+a i= i+1 a=1/i Loop MsgBox (“Kết quả:”) & Str(s) End Sub ➢Khi <Điều kiện> đúng thì ra khỏi vòng lặp và thực hiện nhóm lệnh sau Loop. 8.5.7 Lệnh Do Until... Loop Do Until <Điều kiện> <Nhóm lệnh> Loop https://tophosting.vn/
  • 277. 277 ➢Trong Access có một số đối tượng mà bạn cần quan tâm: ➢Đối tượng DBEngine: chứa đối tượng Workspaces (vùng làm việc) ➢Đối tượng Workspaces: chứa nhiều vùng làm việc, mỗi vùng chứa một Database. ➢Đối tượng Database: chứa CSDL ➢Đối tượng RecordSets: chứa các đối tượng trong CSDL ➢Đối tượng Tabledefs: chứa các bảng của một CSDL ➢Đối tượng Querydefs: chứa các truy vấn của một CSDL ➢Đối tượng Field: chứa các trường trong bảng ➢Đối tượng Form: chứa các Form ➢v.v.. 8.6 Đối tượng, biến đối tượng và xử lý đối tượng https://tophosting.vn/
  • 278. 278 Cách khai báo biến đối tượng: a. Kiểu Database cho phép tham chiếu đến một CSDL, vì vậy để làm việc với một CSDL ta phải khai báo biến kiểu Database ➢Để làm việc với một CSDL hiện thời ta làm như sau: Dim Db As Database (Khai báo biến Db có kiểu Database) Set Db=DBEngine.Wokspaces(0).Database(0) (gắn biến Db ứng với CSDL hiện thời) ➢Hoặc có thể viết: Dim Db As Database Set Db=CurrentDb() (Gắn biến Db với CSDL hiện thời) ➢ Làm việc với 1 CSDL khác: Dim Db As Database Set Db= DBEngine.Wokspaces(0).Database(<Tên_CSDL>) 8.6.1 Đối tượng và khai báo đối tượng Dim <Tên_biến> As <Kiểu_đối_tượng> https://tophosting.vn/
  • 279. 279 b. Sử dụng biến kiểu RecordSet ➢Kiểu RecordSets cho phép ta tham chiếu đến các đối tượng của CSDL đã khai báo như: Bảng, truy vấn, các bản ghi, v.v.. ➢Ví dụ 1: Tạo 1 biến kiểu RecordSet gắn với bảng So_luong của CSDL hiện thời: Sub Form_Load() Dim Db As Database Dim Rec As Recordset Dim Dem As Integer Set Db = CurrentDb() Set Rec = Db.OpenRecordset("So_luong", DB_OPEN_TABLE) Dem = Rec.RecordCount MsgBox "Tổng số bản ghi là" + Str(Dem) End Sub ➢ở trên ta dùng thủ tục Form_Load(), thủ tục này khi chạy thì tự động nạp Form. 8.6.1 Đối tượng và khai báo đối tượng https://tophosting.vn/
  • 280. 280 Ví dụ 2: Ta có thể dùng một biến bảng như sau:: Sub Form_Load() Dim Db As Database Dim TB As TableDef Dim Dem As Integer Set Db = DBEngine.Workspaces(0).Databases(0) Set TB = Db.TableDefs("So_luong") Dem = TB.RecordCount MsgBox "So ban ghi của Bang So_luong la:" & Str(Dem) End Sub 8.6.1 Đối tượng và khai báo đối tượng https://tophosting.vn/
  • 281. 281 Ví dụ 3: Ta có bảng KhoiA (khối A) gồm các trường: Hoten, NgaySinh, DienToan, DienLy. DienHoa, DiemTong, GhiChu như sau: Hãy lập trình để tính DiemTong: DiemTong=DiemToan+DiemLy+DiemHoa. Sub Form_Load() Dim Db As Database Dim Rec As Recordset Set Db = CurrentDb() Set Rec = Db.OpenRecordset("KhoiA") Do Until Rec.EOF ‘Làm cho đến hết tệp Rec.Edit ‘cho phép sửa nội dung các bản ghi Rec![TongDiem] = Rec![DiemToan] + Rec![DiemLy] + Rec![DiemHoa] Rec.Update ‘cập nhật giá trị mới Rec.MoveNext ‘Di chuyển đến bản ghi kế tiếp Loop Rec.Close Db.Close End Sub 8.6.1 Đối tượng và khai báo đối tượng https://tophosting.vn/
  • 282. 282 ➢Sau khi chạy chương trình ta có nội dung bảng mới như sau: ➢Chú ý: oTa viết Rec![TongDiem], nghĩa là trường TongDiem trong trong bản ghi, để phân biệt với biến khi khai báo từ khoá Dim... ➢Ví dụ 4: Cũng từ ví dụ 3, hãy lập trình để ghi vào trường GhiChu chữ “Do” nếu TongDiem>=15 hoặc chữ “Truot” nếu TongTong<15 8.6.1 Đối tượng và khai báo đối tượng https://tophosting.vn/
  • 283. 283 Sub Form_Load() Dim Db As Database Dim Rec As Recordset Set Db = CurrentDb() Set Rec = Db.OpenRecordset("KhoiA") Do Until Rec.EOF ‘Làm cho đến hết tệp If Rec![TongDiem]>=15 Then Rec.Edit ‘cho phép sửa nội dung các bản ghi Rec![GhiChu]=”Do” Else Rec.Edit ‘cho phép sửa nội dung các bản ghi Rec![GhiChu]=”Truot” End If Rec.Update ‘cập nhật giá trị mới Rec.MoveNext ‘Di chuyển đến bản ghi kế tiếp Loop Rec.Close Db.Close End Sub 8.6.1 Đối tượng và khai báo đối tượng https://tophosting.vn/
  • 284. 284 Sau khi chạy ta có: 8.6.1 Đối tượng và khai báo đối tượng https://tophosting.vn/
  • 285. 285 a. Câu lệnh Macro. ➢Để thực hiện một Macro ta dùng lệnh sau: ➢Lệnh này phải đựơc đặt trong các hàm hoặc thủ tục để thực thi. b. Hành động mở, đóng các đối tượng. ➢Đóng các đối tượng: CLOSE ví dụ: Để đóng một Form DanhSach ta gõ như sau: DoCmd.Close acForm, “DanhSach”, acSaveYes AcForm: là thông số chỉ Form đang hoạt động AcSaveYes: là thông số cho phép khi đóng Form thì ghi lại mọi sự thay đổi trên đó. Để đóng các đối tượng khác ta làm tương tụ như ví dụ trên. 8.6.2 Mở đóng đối tượng bằng câu lệnh Marco DoCmd. <Tên_hành_động>[,<danh sách đối số>] https://tophosting.vn/
  • 286. 286 ➢Mở các đối tượng ta sử dụng những hành động sau: oOpenTable: Mở một bảng oOpenForm: Mở một Form oOpenReport: Mở một Report oOpenQuery: Mở một Query oOpenModule: Mở một Module Ví dụ 1: Tạo một thủ tục thực hiện một Macro mở bảng DanhSach DoCmd.Opentable (“DanhSach”) ➢Để mở các đối tượng khác ta làm tương tự như trên. Ví dụ 2: Giả sử trong CSDL hiện thời ta có: 1. Hai bảng TaHsTs (bảng Hồ sơ Tuyển Sinh) và bảng TaDiemD (bảng Điểm khối D) . Bảng TaHsTs có các trường sau: Sbd, HoTen, NgaySinh, GioiTinh, KhuVuc, UuTien, TonGiao, DanToc. Bảng TaDiemD có các trường: Sbd, Toan, Van, Anh 2. Ba Form TuyenSinh2014, FoHsTs, FoDiemD Một giao diện chính của Form TuyenSinh2014 như hình sau: 8.6.2 Mở đóng đối tượng bằng câu lệnh Marco https://tophosting.vn/
  • 287. 287 ➢Chú ý: thuộc tính Name cho 4 nút trên như sau: oNút có tiêu đề: “NHAP HO SO” có tên NhapHoSo oNút có tiêu đề: “NHAP DIEM” có tên NhapDiem oNút có tiêu đề: “KET THUC” có tên KetThuc a. Khi ta kích hoạt nút NHAP HO SO thì Form FoDsTs sẽ được mở để ta đưa dữ liệu vào, Form này được thiết kế có hình dạng như sau: 8.6.2 Mở đóng đối tượng bằng câu lệnh Marco https://tophosting.vn/
  • 288. 288 oNút có tiêu đề: “nhập” có tên NhapLyLich oNút có tiêu đề: “kết thúc” có tên KetThucLyLich b. Khi ta kích hoạt nút “NHậP Điểm” ở giao diện chính thì Form FoDiemD sẽ được mở để ta đưa dữ liệu điểm sau khi đã chấm. Giao diện này có cấu trúc như sau: ➢Chú ý: Thuộc tính Name cho 2 nút trên như sau: oNút có tiêu đề: “nhập liệu” có tên NhapDuLieu oNút có tiêu đề: “Kết thúc” có tên KetThucNhap 8.6.2 Mở đóng đối tượng bằng câu lệnh Marco https://tophosting.vn/
  • 289. 289 ➢ Sau đây là các thủ tục sự kiện cuả ba nút lệnh trên Form TuyenSinh214 như sau: o Mở Form TuyenSinh2014 bằng cách về CSDL, chọn Navigation pane/ Form, chọn tệp TuyenSinh2014, chọn Design o Chọn nút có tiêu đề NHAP HO SO/ kích phải chuột chọn Code buider o Viết Code cho 3 thủ tục đó như sau: Option Compare Database Private Sub KetThuc_Click() DoCmd.Close End Sub Private Sub NhapDiem_Click() DoCmd.OpenForm ("FoDiemD") End Sub Private Sub NhapHoSo_Click() DoCmd.OpenForm ("FoHsTs") End Sub Tương tự viết Code cho 2 thủ tục của nút lệnh trên Form FoHsTs như sau: Rem Thủ tục trên Form FoHsTs Option Compare Database Private Sub KetThucLyLich_Click() DoCmd.Close End Sub Rem -------------------------------------------------- 8.6.2 Mở đóng đối tượng bằng câu lệnh Marco https://tophosting.vn/
  • 290. 290 Private Sub NhapLyLich_Click() Dim Db As Database, Rec As Recordset Set Db = CurrentDb() Set Rec = Db.OpenRecordset("TaHsTs") Rec.AddNew Rec("SBD") = Sbd Rec("HOTEN") = HoTen Rec("GIOITINH") = GioiTinh Rec("KHUVUC") = Val(KV) Rec("TONGIAO") = TonGiao Rec("DANTOC") = DanToc Rec.Update Sbd = "" HoTen = "" NgaySinh = "" GioiTinh = "" KhuVuc = "" TonGiao = "" DanToc = "" UuTien = "" Sbd.SetFocus End Sub 8.6.2 Mở đóng đối tượng bằng câu lệnh Marco https://tophosting.vn/
  • 291. 291 Tương tự như vậy viết tiếp cho 2 thủ tục của hai nút lệnh trên Form: FoDiemD Rem Thủ tục trên Form FoDiemD Option Compare Database Private Sub KetThucNhap_Click() DoCmd.Close End Sub Rem .................................................................... Private Sub NhapDuLieu_Click() Dim Db As Database, Rec As Recordset Set Db = CurrentDb() Set Rec = Db.OpenRecordset("TaDiemD") Rec.AddNew 'Thêm bản ghi mới Rec("SBD") = Sbd Rec("Toan") = Val(Toan) Rec("Van") = Val(Van) Rec("Anh") = Val(Anh) Rec.Update 'Cập nhập bản ghi mới vào bảng TaHsTs Sbd = "" Toan = "" Anh = "" Van = "" Sbd.SetFocus 'Chuyển trỏ đến SBD. End Sub 8.6.2 Mở đóng đối tượng bằng câu lệnh Marco https://tophosting.vn/
  • 292. 292 Tương tự như vậy viết tiếp cho 2 thủ tục của hai nút lệnh trên Form: FoDiemD Rem Thủ tục trên Form FoDiemD Option Compare Database Private Sub KetThucNhap_Click() DoCmd.Close End Sub Rem .................................................................... Private Sub NhapDuLieu_Click() Dim Db As Database, Rec As Recordset Set Db = CurrentDb() Set Rec = Db.OpenRecordset("TaDiemD") Rec.AddNew 'Thêm bản ghi mới Rec("SBD") = Sbd Rec("Toan") = Val(Toan) Rec("Van") = Val(Van) Rec("Anh") = Val(Anh) Rec.Update 'Cập nhập bản ghi mới vào bảng TaHsTs Sbd = "" Toan = "" Anh = "" Van = "" Sbd.SetFocus 'Chuyển trỏ đến SBD. End Sub 8.6.2 Mở đóng đối tượng bằng câu lệnh Marco https://tophosting.vn/