2. NỘI DUNG
Chương 1: Giới thiệu về Access
Chương 2: Table và Relationship
Chương 3: Một số thao tác trên CSDL
Chương 4: Query
Chương 5: Form
Chương 6: Report
Chương 7: Macro
Chương 8: Menu
4. I. Giới thiệu Access
Microsoft Access là một hệ quản trị CSDL quan hệ
chạy trên Windows.
Microsoft Access bắt đầu được phát hành trong bộ
Office năm 1992 và cho đến nay nó là một trong
những chương trình cơ sở dữ liệu văn phòng phổ biến
nhất thế giới.
Access dùng để xây dựng hệ CSDL đồng thời xử lý
và quản lí chúng theo những yêu cầu đặt ra, xây
dựng trọn gói các phần mềm quản lý quy mô vừa và
nhỏ.
5. II. Chế độ làm việc của Access
Acces có hai chế độ làm việc, đó là:
Chế độ sử dụng công cụ có sẵn: giúp người
sử dụng không chuyên có thể xây dựng
chương trình quản lí
Chế độ lập trình: Dùng ngôn ngữ VBA (Visual
Basic for Application), người sử dụng chuyên
nghiệp có thể phát triển ứng dụng, kiểm soát
chặt chẽ dữ liệu, phân quyền truy nhập.
6. III. Khởi động Access
Ta có thể khởi động Access bằng một trong
các cách sau:
Cách 1
Kích nút Start trên Taskbar của Windows
Di chuyển trỏ chuột đến All Program, một menu
con xuất hiện
Di chuyển trỏ chuột đến Microsoft Office
Tools, một menu con nữa xuất hiện
Kích chọn Microsoft Access có biểu tượng
7. Khởi động Access (tiếp)
Cách 2:
Nháy chuột vào biểu tượng trên thanh
công cụ chuẩn của Microsoft Office nếu
máy cài Microsoft Office Shortcut
Bar (thanh bảng chọn ở phía trên, góc
phải của màn hình)
8. Khởi động Access (tiếp)
Cách 3:
Có thể tạo biểu tượng tắt (ShortCut) cho
chương trình trên màn hình làm việc
(Desktop) và khi muốn khởi động thì nháy
đúp vào biểu tượng này .
9. IV. Cửa sổ làm việc của Access
Sau khi khởi động Access, ta sẽ thấy môi trường làm việc của
Access xuất hiện với các thành phần sau:
Thanh tiêu
đề
Thanh menu
chính
Thanh công cụ
Standard
Vùng làm
việc
10. Cửa sổ làm việc của Access (tiếp)
Thanh tiêu đề: Bao gồm tên của phần cửa sổ (Microsoft
Access) và ba nút điều khiển cửa sổ (thu nhỏ, phóng to, đóng).
Thanh Menu chính:
Các thanh công cụ: Trong Access có rất nhiều thanh công
cụ, nhưng ngầm định hiển thị sẵn thanh công cụ chuẩn vì chúng
thường xuyên được sử dụng. Trong quá trình làm việc, khi cần
hiển thị thanh công cụ nào thì kích vào
View/Toolbars/Customize ... và chọn tên thanh công cụ
cần hiển thị.
Vùng làm việc: Chứa tất cả các cửa sổ của các đối tượng dữ
liệu khi ta mở ra để thao tác trên đó.
11. V. Tạo cơ sở dữ liệu mới-Database
B1: Trên menu File, chọn
New, xuất hiện thanh tác vụ
New File
B2: Kích chọn Blank
Database,
xuất hiện hộp thoại File New
Database
12. Tạo cơ sở dữ liệu mới-Database (tiếp)
B3: Đặt tên cho Database
vào mục File name
B4: Kích chọn Creat
13. VI. Làm việc với cơ sở dữ liệu đã có
1. Nếu thanh tác vụ đã
được mở:
B1: Kích chọn tên CSDL
cần mở trong mục Open
a file hoặc kích vào
More file… , trên màn
hình xuất hiện hộp thoại
Open
B2: Chọn tên CSDL cần
mở trong danh sách hoặc
gõ tên CSDL cần mở vào
ô File name.
B3: Kích Open
14. Làm việc với cơ sở dữ liệu đã có (tiếp)
2. Nếu thanh tác vụ chưa mở:
B1: Trên menu File, kích Open , xuất
hiện hộp thoại Open
B2: Chọn tên CSDL cần mở (Giống như
ở mục 1.)
15. VII. Các đối tượng chính của Access
Bảng (tables): Là thành phần căn bản nhất của CSDL.
Bảng là nơi trực tiếp chứa dữ liệu. Ta có thể nhập
khẩu, kết nối các bảng từ các ứng dụng cơ sở dữ liệu
khác như Paradox, Excel, FoxPro, dBase, …
Truy vấn (Queries): Thực hiện chức năng tìm kiếm,
Tạo nguồn dữ liệu cho các giao diện nhập liệu (Form),
các báo cáo (Report), …
Biểu mẫu (Form): Hiển thị dữ liệu có trong các bảng
hay truy vấn và cho phép bổ sung các dữ liệu mới,
đồng thời hiệu chỉnh hay xóa dữ liệu hiện có. Có thể
kết hợp ảnh và đồ thị vào biểu mẫu, thậm chí cả âm
thanh.
16. Các đối tượng chính của Access(tiếp)
Báo cáo (Report): In dữ liệu từ các
bảng hoặc các truy vấn. Access cho
phép bổ sung đồ họa vào báo cáo.
Macro: là một hình thức lập trình đơn
giản. Nó được dùng để gắn kết các
đối tượng chính trong chương trình
như liên hệ giữa các form, tạo menu.
Module: Là chương trình viết bằng
VBA.
17. IIX. Thoát khỏi Access
Muốn thoát khỏi Access, ta có thể thực hiện
1 trong 3 cách sau:
Cách 1: Từ thanh menu, chọn File/Exit
Cách 2: Kích vào nút Close trên thanh
tiêu đề
Cách 3: Gõ tổ hợp phím Alt+F4
18. IX. Công cụ Wizard và Builder
1. Wizard
Wizard: cung cấp các dịch vụ đơn giản hóa việc tạo
các đối tượng cơ sở dữ liệu mới. Wizard dẫn ta qua
một loạt các bước định sẵn xác định các đặc tính
đối tượng mà ta muốn tạo ra.
Wizard có thể sử dụng ở nhiều nơi khác nhau:
+ Tạo lập toàn bộ một CSDL (Database Wizard).
+ Trên Bảng, Truy vấn, Form, Report.
+ Trên các điều khiển.
+ Tạo trang Web.
19. Công cụ Wizard và Builder (tiếp)
2. Expresion Builder
Là bộ công cụ thuận tiện nhất để tạo các biểu thức, đặc
biệt là các biểu thức có chứa điều khiển liên quan tới biểu
mẫu hoặc báo cáo.
21. I. Một số thuật ngữ
1. Bảng (Table):
- Bảng là cấu trúc cơ bản nhất của CSDL quan hệ. Mỗi bảng
trong một CSDL phải chứa những thông tin thích hợp cho
một đối tượng. Ví dụ: một trường học tiêu biểu gồm có các
học sinh, giáo viên và các lớp. Một ứng dụng CSDL về trường
học phải có một bảng chứa thông tin về học sinh, một bảng
về giáo viên và một bảng về lớp.
- Mỗi dòng trong bảng (hay còn gọi là bản ghi- record) tượng
trưng cho đối tượng được lưu trữ trong bảng. Ví dụ mỗi dòng
trong bảng HOCSINH biểu thị cho một học sinh.
- Mỗi cột trong bảng (hay còn gọi là trường-field) chứa một
mục dữ liệu cần quản lí về đối tượng. Ví dụ mỗi học sinh có
các mục dữ liệu càn lưu trữ là: Số báo danh, Họ tên,…
22. Một số thuật ngữ (tiếp)
2. Tên trường (Field name): được dùng để mô tả mục
dữ liệu cần lưu trữ. Mỗi bảng không thể có hai tên cột
trùng nhau
3. Kiểu dữ liệu (Data type): kiểu được dùng để gán
cho dữ liệu chứa trong cột
4. Thuộc tính trường (Field Property): là tập hợp các
đặc điểm được kết hợp vào mỗi trường. Ví dụ: SBD là
xâu 3 kí tự, hocbong co giá trị > 200.000,…
5. Thuộc tính bảng (Table Property): là tập hợp các
đặc điểm liên quan đến nhiều trường được kết hợp
vào bảng. Ví dụ: NGAYSINH+14<=NGAYVD
23. Một số thuật ngữ (tiếp)
6. Khoá chính (Primary key): Một hay nhiều trường
dùng để nhận dạng duy nhất từng dòng trong bảng
dữ liệu gọi là khoá chính. Mỗi bảng có một khoá
chính. Dữ liệu trong khoá chính phải là duy nhất cho
mỗi bản ghi. Khoá chính còn được dùng để tạo các
liên kết giữa các bảng trong một CSDL.
7. Khóa kết nối: Trong 1 CSDL thường có nhiều
bảng, các bảng này có mối liên kết với nhau. Để xác
định mối liên kết này, ta dùng khóa kết nối. Thông
thường khóa kết nối của 2 bảng là cột có cùng tên
nằm ở 2 bảng đó.
24. II. Qui ước tên trường
Tên trường dùng để mô tả dữ liệu chứa trong trường,
tên trường dài tối đa 64 ký tự và có thể chứa các kí tự
chữ cái, chữ số, khoảng trắng và các kí tự đặc biệt
khác.
Tên trường không được phép chứa dấu chấm (.),
chấm than (!), dấu huyền (`), dấu móc vuông ([])
Tên trường không được bắt đầu bằng khoảng trắng
Tên trường không phân biệt chữ hoa, chữ thường.
Ví dụ: Số báo danh, Họ tên, Toan, Ly,…
25. III. Các loại dữ liệu
1). Text: các từ hoặc số không được sử dụng trong các
phép tính. Chiều dài tối đa cho kiểu text là 255 kí tự
2). Memo: một trường mở sử dụng cho các lời ghi chú
3). Number: Các số âm hoặc dương
4). Date/Time: Ngày tháng, thời gian
5). Currency: tiền tệ
6). AutoNumber: một trường số được tự động nhập
vào
7). Yes/No: logic
8). OLE Object: một đối tượng như ảnh,...
9). Hyperlink: các địa chỉ Web
26. IV. Tạo bảng
1. Bước 1: Mở cửa sổ thiết kế bảng (Table Design)
Cách 1: Từ cửa sổ Database, trong mục Object chọn Tables/
Create table in Design view/Design
27. Tạo bảng (tiếp)
Cách 2: Từ cửa sổ Database, trong mục Object, chọn Tables/
kích biểu tượng New, cửa sổ New Table xuất hiện
28. Tạo bảng (tiếp)
Chọn Design view/OK
Kết thúc bước 1, ta có cửa số thiết kế bảng(Table Design)
29. Tạo bảng (tiếp)
2. Bước 2: Thiết kế các trường (cột ) của bảng
Trong cửa sổ như trong hình trên, chúng ta lần lượt thực hiện các
công việc sau:
Nhập tên trường trong mục Field name:
Đặt trỏ chuột vào dòng bất kì của cột Field name
Gõ tên trường
Chọn kiểu dữ liệu của trường trong mục Data Type
Kích vào dấu mũi tên xuống, xuất hiện danh sách kiểu dữ
liệu
Kích chọn kiểu cần dùng
Ghi mô tả của trường trong mục Description (không bắt
buộc)
30. Tạo bảng (tiếp)
Nhập các thuộc tính của trường trong phần
General và phần Lookup (trình bày ở phần sau)
Nhập thuộc tính của bảng trong phần Table
Properties (trình bày trong phần sau)
Xác định khoá chính:
Đánh dấu các trường trong khoá chính
Kích hoạt biểu tượng chìa khóa hoặc chọn menu
Edit/Primary key, khi đó xuất hiện biểu tượng chìa khoá
ở phía trước của trường được chọn làm khoá chính.
31. Tạo bảng (tiếp)
3. Bước 3: Ghi lại cấu trúc bảng vừa tạo
Chọn biểu tượng đĩa mềm trên thanh công cụ. Hộp thoại
Save As xuất hiện
Nhập tên bảng trong phần Table Name/OK
32. V. Thuộc tính trường (Field Properties)
1. Field size: số kí tự tối đa để lưu trữ dữ liệu trong
trường.
2. Format: khuôn dạng của dữ liệu khi hiển thị
3. Decimal Places: dùng cho các trường Number và
Currency để xác định số chữ số được hiển thị và số
chữ số sau dấu thập phân
4. Input mask: Khuôn dạng của dữ liệu nhập. Đó là xâu
kí tự chứa những kí tự sau:
0: Các chữ số. Bắt buộc nhập
9: các chữ số hoặc dấu cách. Không bắt buộc nhập
#: các chữ số, dấu +, - hoặc dấu cách. Không bắt buộc nhập
L: Chữ cái. Bắt buộc nhập
33. Thuộc tính trường (tiếp)
?: chữ cái. Không bắt buộc nhập
A: Chữ cái hoặc chữ số. Bắt buộc nhập
a: chữ cái hoặc chữ số. Không bắt buộc nhập
&: Ký tự bất kì hoặc khoảng trống. Bắt buộc nhập
.,:-/: các dấu phân cách dùng cho kiểu số và ngày
giờ.
Nếu có kí tự chữ cái cố định thì chữ cái đó được
đặt trong cặp dấu “”
5. Caption:Chú thích
6. Default Value: xác định 1 giá trị cho các mục nhập
mới. Ta sẽ nhập giá trị thường được nhập nhất cho
các trường
34. Thuộc tính trường (tiếp)
7. Validation Rule : qui định ràng buộc về dữ liệu nhập
vào. Điều kiện ràng buộc có thể dùng:
Các hằng: phải dùng các dấu phân cách: cặp””
cho kiểu xâu, cặp # # cho ngày giờ
Các phép so sánh: =,>,<,>=,<=,<>
Các phép toán logic: NOT, AND, OR,...
Các toán tử đặc biệt: Between, In, Like,...
8. Validation Text: Thông báo khi dữ liệu nhập vào
không thỏa mãn ràng buộc
35. Thuộc tính trường (tiếp)
9. Lookup- tham chiếu: Khi muốn ràng buộc để dữ liệu của
trường này chỉ nhận các giá trị của một trường nào đó
trong 1 bảng khác, ta khai báo trong Lookup.
Trong trang Lookup cần khai báo các thông số sau:
Display Control: Chọn Listbox hoặc Combobox
Row Source Type: Kiểu nguồn dữ liệu, dạng bảng hoặc
danh sách giá trị
Row Source: Nguồn dữ liệu, tên bảng truy vấn hay danh
sách giá trị
Bound Column: Số thứ tự của cột được tham chiếu đến(cột
cho giá trị trong bảng gốc)
Column Count: Tổng số cột hiển thị trong hộp
Column width: Độ rộng cột
36. VI. Thuộc tính bảng (Table Properties)
Khi các ràng buộc dữ liệu liên quan đến nhiều
trường trong bảng, ta phải xác định tại Table
Properties.
Từ cửa sổ Table Design, kích phải chuột, chọn
Properties
Xuất hiện cửa sổ Table Properties cho phép đặt
ràng buộc (tương tự như Fields Properties)
Tại Validation Rule, ta xây dựng biểu thức thể
hiện ràng buộc của các trường trong bảng.
37. VII. Các thao tác trên bảng
Chỉnh sửa bảng:
Mở bảng cần chỉnh sửa trong Design View
Chọn bảng và kích nút Design
Chèn trường:
Chọn hàng bên dưới vị trí ta muốn chèn
Kích Insert Rows
Xóa trường
Chọn trường cần xóa
Kích Delete Rows (không xóa trường khóa)
38. Các thao tác trên bảng(tiếp)
Đổi tên trường:
Chọn tên trường cần đổi
Nhập tên mới cho trường
Thay đổi kiểu dữ liệu:
Kích vào cột DataType của trường cần đổi
Kích mũi tên xổ xuống
Chọn kiểu
Lưu bảng
39. Các thao tác trên bảng(tiếp)
Di chuyển trường:
Kích chọn trường cần di chuyển
Rê kéo đến vị trí mới rồi nhả chuột
Chỉnh kích cỡ hàng
Vào menu Format/Row Height, xuất hiện hộp thoại
Row Height
Nhập độ cao mới cho hàng vào hộp Row height
Các hàng đồng loạt được thay đổi độ cao
40. Các thao tác trên bảng (tiếp)
Dấu cột:
Ta có thể tạm dấu những cột không muốn xem bằng
cách
Kích chọn cột muốn dấu
Vào menu Format/Hide Columns
Hiện cột:
Vào menu Format/Unhide Columns
Kích bỏ chọn vào những trường không muốn ẩn
Close
41. Các thao tác trên bảng(tiếp)
Xóa bản ghi:
Kích chọn bản ghi cần xóa
Kích nút Delete Record hoặc nhấn phím Delete
Kích chọn Yes
Thay đổi độ rộng cột
Kích chọn cột cần thay đổi
Vào menu Format/Column Width, xuất hiện hộp thoại
Column Width
Nhập độ rộng mới cho cột
42. VIII. Nhập, sửa dữ liệu
Nhập dữ liệu sử dụng Edit Mode:
Mở bảng trong Datasheet View
Nhập dữ liệu
Sửa đổi dữ liệu:
Mở bảng trong Datasheet View
Làm các thao tác sửa đổi
43. Nhập, sửa dữ liệu (tiếp)
Chỉnh sửa toàn bộ nội dung của một trường:
Đặt trỏ chuột tại cạnh trái trường, con trỏ biến
thành dấu cộng
Kích lên trường, toàn bộ trường được chọn
Nhập thông tin mới
Chỉnh sửa một phần nội dung trường:
Kích trên trường ta muốn chỉnh sửa, dấu nhắc sẽ
xuất hiện trong trường
Thay thế phần dữ liệu cần sửa bằng thông tin mới
44. IX. Tìm kiếm và thay thế
Tìm kiếm
Kích trên trường cần tìm kiếm
Kích nút Edit/ Find. hộp thoại Find and
Replace xuất hiện
Nhập dữ liệu cần tìm vào ô Find What
Kích nút Find next để tìm tiếp. Nếu không còn
bản ghi nào thỏa mãn nữa thì Access sẽ Đưa ra
thông báo
45. Tìm kiếm và thay thế (tiếp)
Thay thế dữ liệu:
Kích vào trường ta muốn thay thế dữ liệu
Kích menu Edit/Replace, hộp thoại Find and Replace xuất hiện
Nhập dữ liệu sẽ được thay thế trong hộp Find What
Nhập dữ liệu thay thế trong hộp Replace with
Chọn kiểu duyệt trên toàn bảng hay chỉ trong cột ban đầu trong
hộp Look in
Chọn kiểu duyệt lên xuống hoặc toàn bộ trong khung Search
Kích vào hộp Match Case để chỉ định chỉ những dữ liệu nào
chính xác với điều kiện duyệt
Kích vào Search Fields As Formatted để chỉ định chỉ những
phần nào chính xác với kiểu định dạng của điều kiện duyệt
Kích nút Replace All để thay thế tất cả các dữ liệu tìm được
46. X. Sắp xếp dữ liệu
Sắp xếp dữ liệu
Một cách mặc định, các bản ghi được sắp xếp theo
thứ tự khi nhập vào. ta có thể sắp xếp lại :
Kích chọn trường cần sắp xếp
Kích nút Record/ Sort Ascending để sắp tăng dần hoặc
Sort Descending để sắp xếp giàm dần
Hủy bỏ việc sắp xếp:
Vào menu Record/Remove Filter/Sort. Thứ tự sắp xếp
mặc định cũ sẽ được lưu lại
47. XI. Lọc dữ liệu
Lọc bằng sự lựa chọn-Filter by Selection:
Kích lên ô có giá trị trường bằng giá trị cần lọc
Kích lên nút Record/Filter by Selection. Sau
khi lọc, chỉ những bản ghi có giá trị của trường đã
chọn bằng giá trị lọc mới được hiển thị.
Để xóa lọc, kích nút Record/Remove Filter.
Nút này sẽ trở thành Apply Filter
Ví dụ: để đưa ra những chuyến hàng có số
lượng=10 thì trong vào bảng CHUYENHANG, kích
chọn ô thuộc trường SOLUONG có giá trị 10. Sau
đó kích Record/Filter by Selection.
48. Lọc dữ liệu(tiếp)
Lọc bằng Form-Filter by Form: Lọc dữ liệu
bằng Form cho phép lọc dựa trên nhiều hơn 1 điều
kiện:
Kích nút Record/Filter by Form.
Kích lên trường ta muốn lọc
Chọn điều kiện lọc
Kích chọn AND hoặc OR nếu cần sử dụng
Kích nút Record/Apply Filter. Kết quả lọc sẽ
xuất hiện trong bảng
Đóng và lưu bảng
49. XII. Tạo quan hệ giữa các bảng
Đưa bảng vào cửa sổ Relationship:
Trên thanh công cụ của cửa sổ Access, kích
Tools/Relationship, xuất hiện hộp thoại Show Table
Kích chọn tên các bảng cần thiết lập quan hệ, kích Add
Kích Close để đóng hộp thoại
Tạo quan hệ:
Kích chọn trường muốn tạo kết nối trong bảng 1(Bảng ở
đầu 1) rồi rê thả sang trường tương ứng trong bảng 2
(bảng ở đầu nhiều). Hộp thoại Edit Relationship xuất hiện
Kích Creat
Xuất hiện đường liên kết nối 2 bảng
50. Tạo quan hệ giữa các bảng(tiếp)
Loại bỏ quan hệ:
Kích chọn đường liên kết
Nhấn phím Delete, xuất hiện hộp thoại Delete
Kích chọn Yes
52. Bảng PHONG - phòng ban trong cơ quan
STT Tên trường Kiểu Độ rộng Ý nghĩa Kiểm soát
1 MAPHONG text 3 Mã phòng ban 3 chữ cái
2 TENPHON
G
text 40 tên phòng ban
3 DIACHI text 50 dịa chỉ phòng ban
53. Bảng DMNN-danh mục ngoại ngữ
STT Tên
trường
Kiểu Độ rộng Ý nghĩa Kiểm soát
1 MANN text 2 Mã ngoại
ngữ
2 chữ số
2 TênNN text 20 Tên ngoại
ngữ
54. Bảng NHANVIEN-Nhân viên
1 MANV text 5 2 kí tự đầu là chữ, 3
kí tự sau là số
2 HOTEN text 40
3 NAM Yes/No Nam: True, Nữ:False
4 NGAYSINH Date/Time Từ 18 đến 60 tuổi
5 LUONG Number Long
Integer
từ 200.000 đến
3.000.000
6 MAPHONG text 3 Phải tồn tại trong
bảng PHONG
7 NGAYBC Date/Time > ngày sinh 18 năm
trở lên
55. Bảng TDNN-trình độ ngoại ngữ
1 MANV text 5 mã nhân viên Phải tồn tại trong bảng
NHANVIEN
2 MANN text 2 Mã ngoại ngữ Phải tồn tại trong bảng
DMNN
3 TDO text 1 Trình độ ngoại
ngữ
A,B,C,D,E,F
57. I. Import dữ liệu
1. Import Table từ CSDL khác
• Mở cửa sổ CSDL đích (CSDL cần gắn bảng
vào)
• Kích phải chuột / Import…
• Chọn đường dẫn đến CSDL nguồn (CSDL
chứa bảng cần lấy) / Import
• Xuất hiện cửa sổ Import Object.
• Chọn tên bảng cần lấy / OK
58. Import dữ liệu (tiếp)
2. Import Table từ Excel
• Mở cửa sổ CSDL đích (CSDL cần gắn bảng vào)
• Kích phải chuột / Import…
• Trong cửa sổ Import, trong mục Files of type, chọn
Microsoft Excel
• Chọn file excel cần lấy dữ liệu / Import.
• Chọn Next để chuyển sang các bước tiếp theo.
• Lựa chọn 1 trong 2 cách:
• Dữ liệu của file Excel đó tạo thành 1 table mới/ Chọn trường làm
khóa chính
• Dữ liệu của file Excel đó sẽ đưa vào bảng đã tồn tại/ Chọn tên
bảng.
59. II. Export dữ liệu
1. Export Table sang CSDL khác
• Trong cửa sổ Database của CSDL nguồn (CSDL cần lấy
bảng ra)
• Kích chọn tên bảng cần Export
• Kích phải chuột / Export…
• Chọn đường dẫn đến CSDL đích (CSDL cần gắn bảng
vào)
• Đặt tên cho bảng ở CSDL đích
• Chọn Definition and Data: nếu muốn lấy cả cấu trúc và dữ liệu.
• Chọn Definition Only: nếu chỉ lấy cấu trúc
60. Export dữ liệu (tiếp)
2. Export Table sang Excel
• Trong cửa sổ Database của CSDL nguồn (CSDL
cần lấy bảng ra)
• Kích chọn tên bảng cần Export
• Kích phải chuột / Export…
• Chọn 1 trong 2 cách sau:
• Để tạo 1 file Excel mới: Trong mục Save as type, chọn
Microsoft Excel/ Đặt tên cho file.
• Để tạo 1 sheet trong 1 file Excel đã tồn tại: Chọn
đường dẫn đến file đích/ Đặt tên cho sheet đó.
62. I. Giới thiệu Query
1. Tác dụng của Query
Dùng để trả lời các câu hỏi có tính chất tức thời
Dùng để thực hiện tìm kiếm, hiển thị các bản ghi
thỏa mãn yêu cầu nào đó. Query giống như bộ lọc
Dùng làm nguồn dữ liệu cho các biểu mẫu, báo cáo
Dùng để tạo lập, cập nhật CSDL
63. Giới thiệu Query (tiếp)
2. Các loại Query:
Select query, Parameter query, Crosstab query,
Action query.
Hầu hết các query được sử dụng trong các CSDL
được gọi là các Select query bởi vì chúng chọn các
bản ghi dựa vào tiêu chuẩn mà ta xác lập. Những
query này gọi là query đơn giản.
Kết quả của các query được hiển thị dưới dạng
bảng
3. Các cách tạo Query:
Query Wizard, Query Design (ngôn ngữ QBE) hoặc
dùng câu lệnh SQL (ngôn ngữ SQL)
64. II. Các toán tử và biểu thức trong Access
1. Toán tử số học:
+: Cộng 2 toán hạng ([luong]+[phucap])
-: Trừ 2 toán hạng (Date()-30)
-(toán tử đơn): thay đổi dấu của toán tử đơn (-123)
*: nhân 2 toán hạng ([heso]*[luong])
/: chia 2 toán hạng (15.2/12.5)
: chia 2 toán hạng nguyên (52)
Mod: trả về số dư của phép chia 2 số nguyên (5 mod
2)
^: nâng lên lũy thừa (4^3)
65. Các toán tử và biểu thức trong Access (tiếp)
2. Toán logic:
AND: và (True and False=False,True and
True=True)
OR: hoặc (True or False=True, False or
False=False)
NOT: phủ định (Not True=False, Not False=True)
66. Các toán tử và biểu thức trong Access(tiếp)
3. Các toán tử khác:
Like: xác định 1 chuỗi có bắt đầu bằng 1 hay nhiều
kí tự nào đó không. Like đi cùng các kí tự: ?- thay cho
1 kí tự; *-thay cho 1 xâu kí tự (Like “Jon*”)
In: Xác định 1 giá trị chuỗi có thuộc vào danh sách
giá trị hay không (in(“A”,”B”,”C”))
Between: Xác định 1 số có nằm trong miền giá trị đã
chỉ định hay không (between 1 and 5)
67. Các toán tử và biểu thức trong Access(tiếp)
4. Hàm ngày giờ:
Date(): trả về ngày hiện tại của hệ thống
Day(exp):trả về ngày của biểu thức exp
(Day(#7/15/2005#)=15)
Month(exp): trả về tháng của bt exp
(Month(#7/15/2005#)=7))
Year(exp): trả về năm của bt exp
(Year(#7/15/2005#)=2005))
68. Các toán tử và biểu thức trong Access(tiếp)
5. Hàm xử lý dữ liệu kiểu Text:
Format(exp):Định dạng bt theo các dạng thức thích
hợp (Format(Date(),”dd-mm-yyyy”))
LCase(exp):Trả về chữ thường của exp
UCase(exp): Trả về chữ hoa của exp
LTrim(exp): xóa các dấu cách ở đầu chuỗi
RTrim(exp): xóa các dấu cách ở cuối chuỗi
Trim(exp): xóa các dấu cách ở đầu và cuối chuỗi
Str(exp):Chuyển 1 số thành chuỗi
Val(exp): Chuyển 1 chuỗi thành số
69. III. Tạo truy vấn bằng QBE (Query by Example)
Bước1: Trong cửa sổ Database, trong mục Object kích
chọn đối tượng Query.
Có 2 cách sau:
- Kích chọn New/Design View/OK
- Kích đúp vào dòng Create query in Design
View.
Bước 2: Sau bước 1, Hộp thoại Show table xuất hiện cho
phép chọn bảng hoặc query tham gia vào query
Kích chọn tên bảng(hoặc query).
Kích nút Add/Close
Cửa sổ Query được chia thành 2 khung.
a. Khung trên (Khung Table) hiển thị các bảng được
sử dụng trong query và các mối liên kết giữa các
bảng
70. Tạo truy vấn bằng QBE (tiếp)
b. Khung dưới (Khung lưới) có các hàng và cột. Mỗi cột
dành cho 1 trường. Các hàng bao gồm:
Field: dùng để hiển thị tên trường
Table: tên bảng tham gia vào query
Sort: sắp xếp trường
Show: hiển thị trường trong kết quả của query
Criteria: các điều kiện để lọc bản ghi
Or: dùng khi có điều kiện OR
Bước 3: Lựa chọn các trường cần hiển thị trong kết quả
truy vấn hoặc liên quan đến các điều kiện tìm kiếm. Sau
đó soạn thảo các điều kiện tìm kiếm trong Criteria
71. Tạo truy vấn bằng QBE (tiếp)
Bước 4: Thực hiện truy vấn theo 1 trong 2 cách:
- Chọn biểu tượng ! trên thanh công cụ
- Trên thanh menu chọn Query/Run
Bước 5: Ghi lại truy vấn nếu muốn bằng 1 trong 2
cách:
- Chọn biểu tượng đĩa mềm trên thanh công cụ
- Trên thanh menu chọn File/Save
72. IV. Truy vấn chọn (Select Query)
Cách tạo: Giống nhu cách tạo truy vấn đã trình bày
trong mục III.
Ví dụ 1: Tìm họ tên, ngày sinh của các nhân viên nữ
73. Truy vấn chọn(tiếp)
Ví dụ 2: Đưa ra toàn bộ thông tin về các nhân viên nữ
có lương từ 500000 đến 1000000
74. Truy vấn chọn (tiếp)
Ví dụ 3: Đưa ra tên, phòng của các nhân viên đủ tiêu chuẩn
về hưu năm nay: nam từ 60, nữ từ 55 tuổi
75. Truy vấn chọn (tiếp)
Ví dụ 4: Tìm họ tên, tên phòng của các nhân viên biết tiếng
ANH hoặc PHAP
76. V. Truy vấn tính toán
Cách tạo:
Tạo truy vấn như trên (truy vấn chọn)
Chuyển từ truy vấn chọn sang truy vấn tính toán
bằng cách kích chọn biểu tượng Total (dấu
xíchma) trên thanh công cụ hoặc trên thanh menu
chọn View/Total
Sau khi thực hiện các bước trên, cửa sổ của truy
vấn tính toán có dạng sau:
78. Truy vấn tính toán (tiếp)
Trong mục Total có những lựa chọn sau:
Group by: chỉ ra các trường phân nhóm
Sum: tính tổng
Avg: Tính trung bình
Min: Tính giá trị nhỏ nhất
Max: Tính giá trị lớn nhất
Count: Đếm
First: Tìm bản ghi đầu tiên
Last: Tìm bản ghi cuối cùng
Expression: bt tính toán đi kèm với các hàm
Where: điều kiện lọc các bản ghi tham gia vào tính toán
79. Truy vấn tính toán (tiếp)
Ví dụ 1: Tìm tổng số nhân viên nữ trong cơ quan
80. Truy vấn tính toán (tiếp)
Ví dụ 2: Tính tuổi trung bình của các nhân viên phòng TAIVU
81. Truy vấn tính toán (tiếp)
Ghi chú: Để tạo 1 trường mới trong query:
Trong mục Field, gõ tên trường mới theo cấu trúc
như sau:
<tên trường mới>: <biểu thức>
tên trường đã có phải đặt trong cặp ngoặc vuông [].
Ví dụ: tạo ra trường THUONG có giá trị bằng 1.5
LUONG, ta viết như sau:
THUONG: 1.5*[LUONG]
82. Truy vấn tính toán (tiếp)
Ví dụ 3:Tính tiền thưởng cho nhân viên phòng KHOAHOC bằng 1,5
lương
83. Truy vấn tính toán (tiếp)
Ví dụ 4: Đưa ra bảng tổng hợp lương trong cơ quan bao gồm:
tên phòng, tổng lương của phòng
84. VI. Truy vấn tham số (Parameter Query)
Truy vấn tham số là truy vấn khi thực hiện sẽ đòi hỏi
giá trị tham số nhập từ bàn phím.
Cách tạo truy vấn tham số:
Thực hiện tạo truy vấn chọn thông thường
Để biến một đối tượng nào đó thành tham số ta
chỉ cần để nó trong cặp ngoặc vuông
85. Truy vấn tham số (tiếp)
Ví dụ 1: Đưa ra danh sách nhân viên học ngoại ngữ với tên
ngoại ngữ nhập từ bàn phím
Ví dụ 2: Đưa ra danh sách nhân viên gồm mã nhân viên, họ tên,
ngày sinh, tên phòng của phòng có mã phòng nhập từ bàn phím
86. Truy vấn có tham số (tiếp)
Ví dụ 2: Đưa ra danh sách nhân viên gồm mã nhân viên, họ tên,
ngày sinh, tên phòng của 1 phòng có mã phòng nhập từ bàn
phím
87. VII. Truy vấn tạo lập (Make-Table Query)
Khi cần tạo 1 bảng mới từ một tập hợp con dữ liệu
trong 1 bảng hiện có. Ta thực hiện các bước sau:
Tạo query để thực hiện việc đưa ra các bản ghi mà ta muốn
đưa vào bảng mới
Kích chọn trên thanh menu Query/Make Table Query
Đặt tên cho bảng mới trong khung Table Name của hộp
thoại Make Table
Nếu bảng mới sẽ nằm trong CSDL hiện thời thì chọn
Current Database. Nếu không thì chọn Another
Database và nhập tên của CSDL ta muốn thêm bảng mới
vào
88. Truy vấn tạo lập (tiếp)
Ví dụ 1: Tạo bảng NAM để lưu những nhân viên là nam giới
của cơ quan
90. Truy vấn tạo lập (tiếp)
Ví dụ 2: Lưu trữ những nhân viên có lương từ 1500000 đến
2000000 hoặc sinh trước năm 1975 vào bảng mới có tên LUU
Ví dụ 3: Lưu trữ những nhân viên có trình độ ngoại ngữ là
B,C,D sang bảng mới có tên TDO-BCD
91. VIII. Truy vấn bổ sung (Append Query)
Khi cần thực hiện bổ sung 1 nhóm các bản ghi từ 1 hoặc
nhiều bảng vào 1 bảng khác (đã có) ta dùng truy vấn bổ
sung.
Cách tạo:
Tạo truy vấn thông thường. Tên trường và thứ tự trường của
bảng lấy kết quả và bảng cần thêm vào phải giống nhau.
Chọn Query/Append Query
Chọn bảng cần bổ sung thông tin trong mục Table
Name/OK
Chọn Current Database hoặc Another Database cho
phù hợp.
Trong khung lưới xuất hiện dòng Append To cho ta chọn
tên trường mà dữ liệu tương ứng sẽ được nhập tiếp vào
92. Truy vấn bổ sung (tiếp)
Xác định các giá trị sau:
Field: Các trường cho dữ liệu hoặc liên quan đến
điều kiện chọn
Table: Bảng
Sort: Sắp xếp dữ liệu sẽ bổ sung theo thứ tự tăng
hoặc giảm của trường được chọn
Append to: Trường nhận dữ liệu. Ngầm định là
trường trùng tên trong bảng cho dữ liệu.
Criteria: điều kiện chọn các bản ghi để bổ sung
93. Truy vấn bổ sung (tiếp)
Ví dụ 1:Đưa vào bảng LUU (đã có) thông tin về nhân viên mới,
mã nhân viên nhập tư bàn phím
94. Ví dụ 1: Bổ sung vào bảng LUU (đã có) thông
tin về nhân viên của phòng PQT
Ví dụ 2: Bổ sung vào bảng NAM (đã có)
thông tin về nhân viên có mã nhân viên nhập
từ bàn phím
95. Truy vấn bổ sung (tiếp)
Ví dụ2: Nhập thông tin về nhân viên mới (nhập từ
bàn phím) đưa vào bảng LUU
96. IX. Truy vấn loại bỏ (Delete Query)
Sử dụng để xóa các bản ghi khỏi 1 bảng
Cách tạo:
Tạo truy vấn thông thường
Trên hộp thoại Show Table chọn các bảng liên
quan đến điều kiện loại bỏ và 1 bảng cần loại bỏ
các bản ghi
Trên menu, kích chọn Query/Delete query.
Trên khung lưới xuất hiện dòng Delete trong đó
có các lựa chọn From và Where do Access tự
điền vào
97. Truy vấn loại bỏ (tiếp)
Ví dụ 1: Xóa thông tin về nhân viên có MANV nhập từ bàn
phím
98. Truy vấn loại bỏ (tiếp)
Ví dụ 2: Xóa bỏ thông tin về trình độ ngoại ngữ của nhân viên
có MAPHONG là PQT
99. X. Truy vấn cập nhật (Update Query)
Sử dụng khi cần thay đổi 1 số lượng lớn các
bản ghi
Cách tạo:
Tạo truy vấn thông thường bao gồm bảng cần cập
nhật và bảng liên quan đến điều kiện
Trên thanh menu chọn Query/Update Query
Trên khung lưới xuất hiện dòng Update To dùng
để chứa các giá trị mới của trường tương ứng
100. Ví dụ: tăng lương cho những nhân viên
vào biên chế trước năm 1980 thêm 20%
101. Truy vấn cập nhật (tiếp)
Ví dụ 1: Những nhân viên vào biên chế trước 1/1/1995 thì tăng
lương gấp đôi
102. Truy vấn cập nhật (tiếp)
Ví dụ 2: Những nhân viên phòng DAOTAO và phòng
KHOAHOC được cập nhật trình độ ngoại ngữ là C
103. XI. Truy vấn Crosstab
Dùng để thống kê thông tin trên 2 hoặc nhiều cột
trong 1 bảng hoặc 1 query
Cách tạo:
Tạo truy vấn thôngthường
Trên thanh menu chọn Query/Crosstab Query
Chọn trường để nhóm theo hàng(Row Heading-
tiêu đề hàng)
Chọn trường để nhóm theo cột (Column
Heading-tiêu đề cột)
Chọn giá trị để lưu ở các ô giao của hàng và cột
(Value). Ở đó có thể dùng các hàm SUM,
COUNT,... để tính toán
104. Truy vấn Crosstab (tiếp)
Ví dụ 1: Tính tổng số nam nữ trong từng phòng
106. Truy vấn Crosstab (tiếp)
Ví dụ2: Thống kê trình độ ngoại ngữ của từng phòng
Ví dụ 3: Lập bảng thống kê tên phòng và số người
học ngoại ngữ theo tên ngoại ngữ
Ví dụ: Phòng KHOAHOC có 2 người học tiếng ANH, 4
người học tiếng PHAP,…
Ví dụ 4: Thống kê tổng lương của từng phòng theo
giới tính:
Ví dụ: phòng PTV có tổng lương của Nam là 3000000, tổng
lương của Nữ là 5000000,…
Ví dụ 5: Thống kê số nam và nữ vào biên chế sau
năm 1990 của từng phòng.
108. XII. Tạo Query bằng SQL
1).Cú pháp
Cú pháp đơn giản nhất của SQL là:
SELECT <danh sách tên cột>
FROM <tên bảng>
WHERE <biểu thức logic >
Hiểu là: đưa ra cái gì từ đâu thỏa mãn điều kiện gì
109. Tạo Query bằng SQL(tiếp)
2).Tìm kiếm không điều kiện
Cú pháp:
SELECT <danh sách tên cột>
FROM <tên bảng>
Ví dụ 1: Cho biết thông tin về các nhân viên
select MANV, HOTEN, GTINH, LUONG,
MAPHONG
From NHANVIEN
Dấu * thay cho việc liệt kê tất cả các cột của bảng
select *
From NHANVIEN
110. Tạo Query bằng SQL(tiếp)
3).Tìm kiếm với điều kiện đơn giản
Cú pháp:
SELECT <danh sách tên cột>
FROM <tên bảng>
WHERE <biểu thức logic>
Trong đó <biểu thức logic> thường chứa:
Toán tử so sánh: >,>=,<,<=,=,<>
Toán tử logic: NOT, AND, OR
111. Tạo Query bằng SQL(tiếp)
Ví dụ 2: Cho biết MANV, họ tên của các nhân viên
nữ
select MANV, HOTEN
From NHANVIEN
Where GTINH=False
Ví dụ 3: Cho biết thông tin của những nhân viên có
lương >1.000.000
select *
From NHANVIEN
Where LUONG> 1.000.000
112. Tạo Query bằng SQL(tiếp)
Ví dụ 3’: Nhân viên hoặc là nữ hoặc là có
lương từ 1.000.000 đến 2.000.000
Select *
From NHANVIEN
Where (GTINH=False) OR (LUONG>=1.000.000
AND LUONG <=2.000.000)
113. Tạo Query bằng SQL(tiếp)
4).Tìm kiếm với BETWEEN
Cú pháp:
SELECT <danh sách tên cột>
FROM <tên bảng>
WHERE <tên cột> BETWEEN <gtrị1> AND <gtri 2>
114. Tạo Query bằng SQL(tiếp)
Ví dụ 4 : Đưa ra thông tin của các nhân viên có lương
từ 200.000 đến 700.000
Select *
From NHANVIEN
Where LUONG Between 200.000 and 700.000
115. Tạo Query bằng SQL(tiếp)
5).Tìm kiếm với IN
Cú pháp:
SELECT <danh sách tên cột>
FROM <tên bảng>
WHERE <tên cột> IN (<gtrị1>,…, <gtrị n>)
Ví dụ 5: Đưa ra thông tin về các nhân viên có mã
phòng là “PTV”, “PDT”, “PKH”
Select *
From NHANVIEN
Where MAPHONG in (“PTV”, “PHC”, “PDT”)
116. Tạo Query bằng SQL(tiếp)
6).Tìm kiếm với LIKE
Cú pháp:
SELECT <danh sách tên cột>
FROM <tên bảng>
WHERE <tên cột> LIKE <xâu>
Trong đó:
<tên cột> phải có kiểu xâu
<xâu> thường chứa kí hiệu % dùng để thay cho 1 xâu
con; kí hiệu _ dùng để thay cho 1 kí tự.
117. Tạo Query bằng SQL(tiếp)
Ví dụ 6: Tìm những nhân viên có họ “Nguyễn”
Select *
From NHANVIEN
Where HOTEN Like “Nguyễn%”
118. Tạo Query bằng SQL(tiếp)
7). Sử dụng phép toán số học
Ta có thể sử dụng các biểu thức số học trong mệnh
đề SELECT hoặc WHERE của câu lệnh SQL.
Các phép toán số học là +, -, *, /
Ví dụ 7: Cho biết Họ tên và lương mới của các nhân
viên nữ nếu lương của họ được tăng thêm 10%
Select HOTEN, LUONG+ LUONG*0.1
From NHANVIEN
Where GTINH=False
119. Tạo Query bằng SQL(tiếp)
Ví dụ 8: Đưa ra thông tin của các
nhân viên mà nếu lương của họ được
tăng 10% thì >2.000.000
Select *
From NHANVIEN
Where LUONG+0.1*LUONG>2.000.000
120. Tạo Query bằng SQL(tiếp)
8). Các hàm trong SQL:
COUNT: đếm số các giá trị trong cột
SUM: tính tổng các giá trị trong cột (số)
AVG: tính trung bình cộng các giá trị trong cột
(số)
MIN: tìm giá trị nhỏ nhất
MAX: tìm giá trị lớn nhất
121. Tạo Query bằng SQL(tiếp)
Ví dụ 9: Cho biết số người của phòng có mã
phòng là “PDT”
Select COUNT (MANV)
From NHANVIEN
Where MAPHONG=“PDT”
Ví dụ 10: Cho biết mức lương cao nhất của
các nhân viên
Select MAX (LUONG)
From NHANVIEN
122. Tạo Query bằng SQL(tiếp)
9). Sử dụng mệnh đề GROUP BY và HAVING
SQL sử dụng mệnh đề GROUP BY<tên thuộc
tính> để tìm kiếm theo nhóm các bản ghi có cùng
giá trị <tên thuộc tính>. Kết quả tìm kiếm là danh
sách các bản ghi được liệt kê theo nhóm, hết nhóm
này đến nhóm khác
Mệnh đề HAVING luôn đi sau GROUP BY và miền
tác động của nó là từng nhóm của GROUP BY chứ
không phải là toàn bảng.
123. Tạo Query bằng SQL(tiếp)
SELECT <danh sách cột>
FROM <tên bảng>
WHERE <btlogic1>
GROUP BY <tên cột>
HAVING <bt logic2>
124. Tạo Query bằng SQL(tiếp)
Ví dụ 11: Cho biết số người của từng phòng
Select COUNT (MANV)
From NHANVIEN
Group by MAPHONG
Ví dụ 12: Cho biết lương cao nhất trong từng phòng
và tổng lương của từng phòng
Select MAPHONG,MAX(LUONG) AS
Max_luongphong, SUM(LUONG) AS
tong_luongphong
From NHANVIEN
Group by MAPHONG
125. Tạo Query bằng SQL(tiếp)
Ví dụ 13 : Đưa ra mã phòng và tổng lương của các
phòng có tổng lương >4000000
Select MAPHONG, sum(LUONG)
From NHANVIEN
Group by MAPHONG
Having SUM (LUONG)>4000000
126. Tạo Query bằng SQL(tiếp)
10). Kết nối các bảng:
- Trong trường hợp câu hỏi liên quan đến nhiều bảng,
ta phải kết nối các bảng với nhau.
- Khi sử dụng nhiều bảng trong câu SQL, với những
thuộc tính xuất hiện ở nhiều bảng, ta phải xác định
rõ thuộc tính đó ở bảng nào bằng cách viết: <tên
bảng>.<tên thuộc tính chung>
- Cú pháp:
SELECT <danh sách cột>
FROM <bảng1>, <bảng2>
WHERE <bảng1>.<cột chung>=<bảng2>.<cột
chung>
127. Tạo Query bằng SQL(tiếp)
Ví dụ 14: Cho biết mã nhân viên, họ tên, lương của các nhân viên
phòng DAOTAO
Select MANV, HOTEN, LUONG
From NHANVIEN, PHONG
Where NHANVIEN.MAPHONG=PHONG.MAPHONG And
TENPHONG=“DAOTAO”
Ví dụ 15: Cho biết mã nhân viên, họ tên của các nhân viên phòng
DAOTAO và có trình độ ngoại ngữ C
Select MANV, HOTEN
From NHANVIEN, PHONG, TDNN
Where NHANVIEN.MANV=PHONG.MANV
And NHANVIEN.MANV=TDNN.MANV
And TENPHONG=“DAOTAO”
And TDO=“C”
128. Tạo Query bằng SQL(tiếp)
Cho biết thông tin về phòng của nhân
viên có mã nhân viên là “P15”
Select PHONG.*
From NHANVIEN, PHONG
Where
NHANVIEN.MAPHONG=PHONG.MAPHONG
and MANV=“P15”
129. Tạo Query bằng SQL(tiếp)
11).Truy vấn lồng nhau:
Trong nhiều bài toán, kết quả của 1 câu tìm kiếm lại được tham gia
vào 1 câu tìm kiếm khác. Khi đó ta phải dùng cấu trúc truy vấn
lồng nhau, tức là nhiều cấu trúc SELECT...FROM...WHERE
lồng nhau.
Ví dụ 16: Đưa ra danh sách nhân viên phòng TAIVU
Select *
From NHANVIEN
Where MAPHONG = ( Select MAPHONG
From PHONG
Where TENPHONG=“TAIVU”)
130. Tạo Query bằng SQL(tiếp)
Select *
From NHANVIEN, PHONG
Where
NHANVIEN.MAPHONG=PHONG.MAP
HONG and TENPHONG=“TAIVU”
131. Tạo Query bằng SQL(tiếp)
Ví dụ 17: Đưa ra thông tin về người có lương cao
nhất
Select *
From NHANVIEN
Where LUONG= ( Select MAX(LUONG)
From NHANVIEN)
132. Tạo Query bằng SQL(tiếp)
8). Các lượng từ:
Lượng từ Tồn tại-EXISTS:
Cấu trúc: EXISTS<tập hợp> trả về giá trị đúng nếu tập hợp này
khác rỗng
Ví dụ 18: Cho biết thông tin về những nhân viên biết ngoại
ngữ
Select *
From NHANVIEN
Where Exists (Select *
From TDNN, NHANVIEN
Where NHANVIEN.MANV=TDNN.MANV)
133. Tạo Query bằng SQL(tiếp)
Lượng từ Với mọi-ALL:
<tên thuộc tính><phép so sánh> ALL <tập hợp giá trị>
Ví dụ 19: Cho biết những nhân viên có lương cao hơn lương
của mọi nhân viên phòng PTV
Select *
From NHANVIEN
Where LUONG> ALL ( Select LUONG
From NHANVIEN
Where MAPHONG=‘PTV’)
134. Bài tập
1. Đưa ra thông tin về các phòng
2. Đưa ra MANV, HOTEN, LUONG của những nhân viên sinh
trước năm 1975
3. Đưa ra tổng lương của phòng KHOAHOC
4. Đưa ra danh sách nhân viên có lương thấp nhất
5. Đưa ra tên phòng có số nhân viên lớn hơn 10
6. Đưa ra MANV, hoten, luong, tenphong của nhân viên có mã
nhân viên “S09”
7. Đưa ra thông tin về phòng có lương trung bình>2.000.000
8. Đưa ra thông tin về các nhân viên có mã nhân viên là “S02”,
“S04”, “S07”
9. Tính phụ cấp cho các nhân viên sinh trước năm 1950 theo
công thức phụ cấp= 15% lương.
135. 1. Đưa ra thông tin về các phòng
Select *
From PHONG
136. 2. Đưa ra MANV, HOTEN, LUONG của
những nhân viên sinh trước năm 1975
Select MANV, HOTEN, LUONG
From NHANVIEN
Where NGAYSINH <#01/01/1975#
137. 3. Đưa ra tổng lương của phòng KHOAHOC
Select SUM(LUONG)
From NHANVIEN, PHONG
Where
NHANVIEN.MAPHONG=PHONG.MAPHO
NG and TENPHONG=“KHOAHOC”
138. Select sum (LUONG)
From NHANVIEN
Where MAPHONG=
(Select MAPHONG
From PHONG
Where
TENPHONG=“KHOAHOC”)
139. 4. Đưa ra danh sách nhân viên có lương
thấp nhất
Select *
From NHANVIEN
Where LUONG=
(Select MIN(LUONG)
From NHANVIEN)
140. 5. Đưa ra tên phòng có số nhân viên lớn hơn 10
Select TENPHONG
From PHONG
Where MAPHONG =
(Select MAPHONG
From NHANVIEN
Group by MAPHONG
Having COUNT(MANV)>10)
141. 6. Đưa ra MANV, hoten, luong, tenphong
của nhân viên có mã nhân viên “S09”
Select MANV, HOTEN, LUONG, TENPHONG
From NHANVIEN, PHONG
Where
NHANVIEN.MAPHONG=PHONG.MAPHONG
and MANV=“S09”
142. 7. Đưa ra thông tin về phòng có lương
trung bình>2.000.000
Select *
From PHONG
Where MAPHONG in ( Select MAPHONG
From NHANVIEN
Group by MAPHONG
Having AVG(LUONG)>2.000.000)
143. 8. Đưa ra thông tin về các nhân viên có
mã nhân viên là “S02”, “S04”, “S07”
Select *
From NHANVIEN
Where MANV in (“S02”,”S04”, “S07”)
144. 9. Tính phụ cấp cho các nhân viên sinh
trước năm 1950 theo công thức phụ
cấp= 15% lương.
Select 0.15*LUONG as PHUCAP
From NHANVIEN
Where NGAYSINH <#01/01/1950#
145. SELECT TENPHONG, COUNT (MANV) AS
SONV
FROM NHANVIEN INNER JOIN PHONG ON
NHANVIEN.MAPHONG=PHONG.MAPHONG
GROUP BY TENPHONG
HAVING COUNT(MANV)>10
147. BÀI KIỂM TRA
Cho CSDL BAN_HANG gồm các bảng sau:
CONGTY : MACT, TENCT, VON
SANPHAM: MASP, TENSP, MAU, GIA
BAN: MACH, MACT, MASP, SLUONG
Hãy thực hiện các truy vấn sau bằng SQL:
Bài 1:
1. Đưa ra tên các công ty đã bán sản phẩm với số lượng =70.
2. Đưa ra MACT, MASP, SLUONG, GIA, THANH_TIEN của
mỗi lần bán hàng. Biết rằng
THANH_TIEN=SLUONG*GIA
148. Bài 2:
1. Đưa ra danh sách các sản phẩm hoặc có màu
DO và giá <100, hoặc có màu DEN và giá
>120.
2.Tìm mã công ty đã bán sản phẩm với số lượng
nhỏ nhất.
Bài 3:
1. Đưa ra danh sách các sản phẩm có tên bắt
đầu bằng chữ BUT.
2. Cho biết số lượng các công ty.
149. Bài 4:
1. Đưa ra tên các sản phẩm có màu XANH
2. Mỗi Mã sản phẩm đã được bán với tổng số
lượng là bao nhiêu?
Bài 5:
1. Đưa ra danh sách công ty.
2. Cho biết tên công ty đã thực hiện bán hàng từ 2
lần trở lên.
151. I. Giới thiệu Form
Form là giao diện chủ yếu giữa người và máy
Form thường dùng để:
Thiết kế màn hình nhập dữ liệu
Thiết kế menu
Thiết kế các màn hình tra cứu thông tin
Thiết kế các màn hình giới thiệu, trợ gíup
Yêu cầu khi thiết kế giao diện phải thuận tiện cho
người sử dụng
Mọi đối tượng xuất hiện trên Form được gọi là điều
khiển. Điều khiển được chia thành 3 loại:
152. Giới thiệu Form (tiếp)
Điều khiển bị buộc (Bound Control): Là điều khiển có
nguồn dữ liệu lấy từ CSDL. Nhờ điều khiển loại này ta có thể
tra cứu thông tin trong CSDL hoặc cập nhật thông tin vào
CSDL
Điều khiển không bị buộc (Unbound Control): là điều
khiển mà thông tin không gắn với nguồn dữ liệu. Thường
gặp dưới dạng tiêu đề, đường kẻ,... cũng có thể là hộp văn
bản (text box) dùng để nhập dữ liệu trong trường hợp đặc
biệt
Điều khiển tính toán được (Calculate Control): Là
điều khiển mà giá trị của nó được tính toán từ giá trị của các
điều khiển khác
Ví dụ: tongluong= Sum ([luong])
thanhtien= [soluong]*[dongia]
153. II. Thiết kế Form
Từ cửa sổ Database, trong phần Object
chọn Form/New/New Form
Trong cửa sổ New Form có 2 cách tạo Form
Sử dụng Form Wizard
Sử dụng Design View
154. Thiết kế Form (tiếp)
1). Dùng Form Wizard
Trong cửa sổ NewForrm, kích chọn Form Wizard
Xuất hiện các bước như sau:
B1: Chọn bảng làm nguồn dữ liệu/Next
B2: Chọn trường xuất hiện trên Form/Next
B3: Chọn kiểu trình bày Form/Next
B4: Chọn kiểu nền cho Form/Next
B5: Nhập tiêu đề Form/Finish
Khi tạo Form bằng Wizard, trên Form chỉ có các điều
khiển bị buộc. Muốn Form có thêm các loại điều
khiển khác nữa, ta phải kết hợp với Form Design.
155. Thiết kế Form (tiếp)
2). Dùng Design View:
Trong cửa sổ New Form, chọn Design View
Trong cửa sổ thiết kế Form này, quan trọng nhất là
Fieldlist và Toolbox. Để ẩn hoặc hiện 2 công cụ
này ta chọn trên menu View/Fieldlist và
View/Toolbox
Fieldlist: dùng trong trường hợp Form bị buộc vào nguồn dữ
liệu nào đó
Hộp công cụ Toolbox: dùng để thiết kế các điều khiển trên
Form
156. Thiết kế Form (tiếp)
3). Các thành phần trên Toolbox:
Label: nhãn
Text box: hộp văn bản
Option Group: nhóm lựa chọn
Toggle Button: nút bật tắt
Option Button: nút lựa chọn
Check box: hộp kiểm tra
ComBo Box: Hộp combo
List Box: hộp thiết kế
Command Button: nút lệnh
157. Thiết kế Form (tiếp)
Image: ảnh
Unbound Object Frame: khung ảnh-không bị buộc
Bound Object Frame: Khung ảnh bị buộc
Page Break: đường ngắt trang-khi in
Tab Control: tab
SubFrom: Form con
Line: đường thẳng
Rectangle: khung chữ nhật
More Controls: Các điều khiển hoạt động khác
158. III. Thiết kế các điều khiển trên Form
1. Vị trí của các điều khiển:
Khi thiết kế các điều khiển, ta quan tâm đến vị trí của nó
trên form
159. Thiết kế các điều khiển trên Form (tiếp)
Page header/Page footer: tiêu đề đầu và cuối
mỗi trang
Form header: dùng để chứa các tiêu đề như tên
Form, tên trường
Form footer: dùng để chứa các nút lệnh thao
tác trên bản ghi hoặc các dòng tổng cộng
Detail: phần quan trọng nhất của Form. Với
những Form có dữ liệu thì đây là phần lặp lại với
mỗi bản ghi. Muốn dữ liệu được hiển thị như
phiếu nhập dữ liệu thì dàn dọc các điều khiển.
Muốn dữ liệu hiển thị dưới dạng bảng thì dàn
ngang các điều khiển trên Detail
160. Thiết kế các điều khiển trên Form (tiếp)
2. Căn chỉnh các điều khiển
Có thể sao chép, cắt, dán, xóa các điều khiển (chỉ với 1 số loại nào
đó)
Đánh dấu các điều khiển:
Đánh dấu theo cột
Đánh dấu theo hàng
Đánh dấu theo khung
Đánh dấu các điều khiển rời rạc
Căn chỉnh các điều khiển: Chọn mục Format
Align: gióng đều
Vertical Spacing: khoảng cách dòng giữa các điều khiển
Horizotal Spacecing: khoảng cách cột giữa các điều khiển
Size: làm cho các điều khiển có cùng độ cao
161. Thiết kế các điều khiển trên Form (tiếp)
3. Điều khiển hộp văn bản (TextBox)
Hộp văn bản là điều khiển quan trọng nhất trên Form.
Có thể thuộc cả 3 loại: bị buộc, không bị buộc và tính
toán được.
Nếu là không bị buộc
Thường dùng để nhập dữ liệu.
Cách tạo: kéo từ toolbox vào Form
Nếu là bị buộc
Thường dùng để hiển thị dữ liệu của bảng.
Cách tạo: Kéo từ Fieldlist vào Form
162. Thiết kế các điều khiển trên Form (tiếp)
Nếu là điều khiển tính toán:
Thường dùng để tính toán thông qua các điều khiển khác.
Cách tạo:
Tạo 1 điều khiển không bị buộc.
Sau đó đưa các biểu thức vào
163. Thiết kế các điều khiển trên Form (tiếp)
4. Nhãn (Label)
Dùng làm tiêu đề, chú giải,…
Chủ yếu quan tâm đến hình thức trình bày trên nhãn:
font, màu sắc,…
164. Thiết kế các điều khiển trên Form (tiếp)
5. Hộp liệt kê (List Box) và Combo (Combo Box)
Khi muốn chọn 1 trong nhiều giá trị để nhập vào trường
(trên 5 giá trị) ta dùng List box hoặc Combo box
Combo box: thường được dùng nhiều trên màn hình nhập
dữ liệu, tìm kiếm
List box: thường được dùng trên màn hình hiển thị, tra cứu
Có thể thêm các giá trị khác (không có trong danh sách)
vào hộp Combo box và không thể thêm 1 giá trị mới vào
List box
Có 2 cách tạo List box/Combo box:
165. Thiết kế các điều khiển trên Form (tiếp)
Dùng Wizard:
Bật Control Wizard
Chọn List box/Combo box trên Toolbox
Kéo vào Form, Wizard khởi động
Chọn nguồn dữ liệu: lấy từ bảng hay danh sách giá trị
Chọn bảng hoặc danh sách giá trị nguồn
Chọn các trường hiện trong hộp
Quyết định có hiện trường khoá hay không
Chọn trường nhận dữ liệu (Form phải có nguồn dữ liệu.
Trường nhận dữ liệu là 1 trong các trường của bảng hoặc
truy vấn nguồn dữ liệu)
166. Thiết kế các điều khiển trên Form (tiếp)
Không dùng Wizard
Tắt Control Wizard
Chọn biểu tượng List box/Combo box kéo vào Form
Mở thuộc tính của List box/Combo box, xác định các
thuộc tính sau:
Row Source Type: Chọn Table/Query hoặc Value List
Row Source: Tên bảng hoặc Query hoặc danh sách giá trị
phân cách nhau bằng dấu ;. Cũng có thể là 1 lệnh SQL
Bound Column: cột cho giá trị
Column Count: Số các cột sẽ hiển thị dữ liệu trong hộp
Limit to list: Dùng riêng cho Combo box. Khi thêm giá trị
vào, giá trị này sẽ được cập nhật vào nguồn nếu thuộc tính
này chọn là No.
167. Thiết kế các điều khiển trên Form (tiếp)
6. Nút lệnh (Command Button)
Khi ta kích hoạt nút lệnh, HQTCSDL sẽ thực hiện 1
công việc. Công việc đó có thể đơn giản là mở 1
Form, cũng có thể là thực hiện tính điểm TB của SV
của trường ĐH
Để tạo nút lệnh ta có thể dùng Wizard hoặc lập trình
Dùng Wizard:
Bật Control Wizard
Chọn lĩnh vực của nút lệnh
Chọn đối tượng và tham số của hành động
Chọn hình thức trình bày của nút lệnh
168. Thiết kế các điều khiển trên Form (tiếp)
Không dùng Wizard:
Tắt Control Wizard
Chọn nút lệnh, đưa vào Form
Lập trình xử lý sự kiện nút lệnh
169. Thiết kế các điều khiển trên Form (tiếp)
7. Thuộc tính của Form:
Kích phải chuột / Chọn Properties, xuất hiện hộp thoại
Properties chứa các khai báo thuộc tính Form
a). Về hình thức trình bày
Default View: dạng hiển thị ngầm định của Form
Scroll bars: các thanh cuộn để chuyển điều khiển lên
xuống
Navigation Button: các nút để dịch chuyển bản ghi
Dividing Lines: Đường phân chia các bộ phận của Form
Picture: hình ảnh trên toàn Form
MinMax Buttons: Nút cho phép thu nhỏ, phóng to kích
cỡ Form
170. Thuộc tính của Form (tiếp)
b). Về dữ liệu trên Form
Records Source: tên truy vấn, bảng nguồn dữ liệu
hoặc văn bản SQL của nguồn dữ liệu
Chú ý: Khi thiết lập nguồn bằng SQL thì mọi trường xuất
hiện trên cửa sổ Design của Form phải xuất hiện trên
SQL (mặc dù là các trương đó có được bằng cách kéo
chuột)
Allow Filter: cho phép lọc dữ liệu hiện trên Form
Allow Deletion: cho phép xoá các bản ghi trên Form
Allow Edits: cho phép chỉnh sửa dữ liệu trên Form
Allow Additions: cho phép bổ sung bản ghi trên Form
171. Thuộc tính của Form (tiếp)
c). Các thuộc tính khác
Popup: Form được mở trên các Form khác
Modal: Không thể kích hoạt bất cứ vị trí
nào ngoài phạm vi Form
Menu bar: menu hiện khi mở Form
Short cut menu: menu hiện khi nhấn chuột
phải
172. Thuộc tính của Form (tiếp)
Ví dụ:tạo form để xem và cập nhật thông tin cho
bảng PHONG. Form được phép thêm, sửa, không
được xoá
Có thể làm như sau:
173. Thuộc tính của Form (tiếp)
Từ cửa sổ Database, trong mục Object chọn Form/ Create
form in Design view. Cửa sổ thiết kế xuất hiện.
Từ cửa sổ thiết kế form, kích phải chuột/Properties. chọn nguồn
dữ liệu của form là bảng PHONG.
Đặt thông số cho các thuộc tính:
Allow Deletion: No
Allow Edits: Yes
Allow Additions: Yes
Thiết kế các điều khiển trên form như sau:
Kéo rê các trường cần hiển thị trên form (các trường này lấy
từ nguồn dữ liệu của form – Field List) vào cửa sổ thiết kế
Hiệu chỉnh lại các nhãn (Lables) trên form như sau:
175. IV. Form chính-phụ
1. Giới thiệu
Dùng để nhập dữ liệu đồng thời vào nhiều bảng.
Form chính - phụ đặc biệt có hiệu quả khi ta muốn hiển
thị dữ liệu trong các bảng có quan hệ 1:n.
Form chính hiển thị dữ liệu trong bảng có quan hệ 1,
Form phụ hiển thị dữ liệu trong bảng có quan hệ n.
Khi di chuyển sang một bản ghi mới trong Form chính thì form
phụ sẽ hiển thị một tập hợp các bản ghi nối kết tới bản ghi mới
trong form chính.
Khi tạo Form phụ, ta có thể thiết kế để nó hiển thị dưới
dạng bảng tính, Form đơn, biểu đồ,…
Một Form chính có thể có nhiều Form phụ. Chỉ có yêu
cầu là phải có ít nhất một trường chung cho từng Form
phụ với Form chính.
176. Form chính-phụ (tiếp)
2. Cách tạo form chính – phụ:
a.Dùng Wizard
Từ cửa sổ Database, trong mục Object, kích chọn
Form
Hộp thoại New Form xuất hiện, kích đúp Form
Wizard xuất hiện các bước của Form Wizard
Bước 1:
chọn bảng hoặc truy vấn nguồn của Form chính
(bảng ở đầu 1 của quan hệ 1:n)
Kích chọn tên trường xuất hiện trong Form chính
177. Form chính-phụ (tiếp)
Bước 2: Vẫn trong hộp thoại trên,
chọn bảng hoặc truy vấn nguồn của Form phụ
(bảng ở đầu n của quan hệ 1:n)
Kích chọn tên trường xuất hiện trong Form phụ
Kích Next,
Bước 3: chọn Form With subform(s)
Tiếp theo là các hộp thoại hướng dẫn của
Wizard. Khi ta kích Finish, Access sẽ tạo ra 2
Form, một Form chính và một Form phụ bên trong
Form chính.
178. Form chính-phụ (tiếp)
b. Không dùng Wizard:
Tạo form chính.
Tạo form phụ một cách độc lập.
Trong cửa sổ thiết kế form phụ, xây dựng
điều kiện kết nối 2 form.
Mở cửa sổ thiết kế form chính đồng thời
với cửa sổ Database. Kéo form phụ vào
form chính rồi thả.
179. Form chính-phụ (tiếp)
c. Làm quen với cách viết:
[loại đối tượng]![tên đối tượng]![trường liên kết]
Ví dụ: Biểu thức kết nối 2 Form:
[FORMS]![<tên Form chính>]![<tên trường kết nối>]
180. Form chính-phụ (tiếp)
d. Ví dụ: Tạo một form chính “Danh sách phòng”, mỗi phòng tương
ứng với một danh sách nhân viên trong form phụ “Danh sách nhân
viên”.
Bước 1: Tạo form chính CHINH với tiêu đề “danh sách
phòng”
Dùng Design View
Chọn nguồn dữ liệu là bảng PHONG
Ghi lại thiết kế form CHINH
Bước 2: Tạo form phụ PHU với tiêu đề “danh sách nhân
viên”
Dùng Design View
Chọn nguồn dữ liệu là văn bản SQL đưa ra các n.v
thỏa đk kết nối.
Thiết lập kết nối với form CHINH thông qua
MAPHONG tại Criteria
181. Form chính-phụ (tiếp)
Đặt Defaul View là Datasheet (nếu muốn Form phụ hiển
thị dưới dạng bảng)
Ghi lại thiết kế form PHU
Bước 3:
Mở cửa sổ thiết kế của form CHINH và cửa sổ Database
Kéo form PHU thả vào vị trí muốn đặt trong form CHINH
Ghi lại tất cả thiết kế này.
184. Form chính-phụ (tiếp)
Ví dụ 2: Tạo Form chính –phụ đưa ra
danh sách nhân viên theo ngoại ngữ đã
học
185. V. Dùng Form chính-phụ để tìm kiếm
Form chính-phụ được dùng để tìm kiếm thông tin.
Nó thực hiện như một Parameter Query.
Thông thường, điều kiện tìm kiếm được nhập vào một
textbox trên form chính.
Sau khi Enter, thì nó sẽ đưa ra thông tin cần thiết, thể
hiện trên form phụ.
Textbox trên form chính là loại không bị buộc, nó chỉ
dùng để nhập điều kiện tìm kiếm.
Như vậy, phải có ràng buộc giữa form phụ và textbox
này.
186. Dùng Form chính-phụ để tìm kiếm(tiếp)
Ví dụ 1: Thiết kế form chính-phụ để tìm kiếm
các nhân viên theo tên phòng.
Khi chạy Form, trên Form chính chứa 1 text box
để nhận tên phòng cần tìm. Trên Form phụ
sẽ xuất hiện danh sách nhân viên của phòng
vừa nhập tên.
Bước1: Thiết kế form chính CHINH1 không có
nguồn dữ liệu. Chứa 1 textbox [TEXT i] để
nhập tên phòng cần tìm.
187. Dùng Form chính-phụ để tìm kiếm(tiếp)
Bước 2: Thiết kế form PHU1
- Nguồn dữ liệu là văn bản SQL chứa thông
tin về các nhân viên và tên phòng tương
ứng.
- Thiết lập điều kiện liên kết với form chính:
TENPHONG=[FORMS]![CHINH1]![TEXT i]
188. Dùng Form chính-phụ để tìm kiếm(tiếp)
Bước 3:
Mở cửa sổ thiết kế form CHINH1 đồng thời
với cửa sổ Database. Kéo form PHU1 thả
vào form CHINH1.
Bước 4:
Trong trang Properties của form PHU1.
thiết lập điều kiện liên kết ở thuộc tính:
Link Child Field và Link Master Field
cho phù hợp
189. Dùng Form chính-phụ để tìm kiếm(tiếp)
Ví dụ 2:
Tạo form chính –phụ để tìm kiếm thông tin về các
nhân viên học một ngoại ngữ nào đó (tên ngoại ngữ
nhập vào 1 textbox)
191. I. Giới thiệu về báo cáo
Báo cáo dùng để in ra giấy những thông tin kết xuất
từ CSDL theo khuôn dạng, theo yêu cầu của người sử
dụng.
Báo cáo có nhiều dạng, nhưng thông dụng nhất là
các dạng sau:
Báo cáo dạng văn bản, trong đó văn bản kết hợp với các
thông tin lấy từ CSDL, ví dụ, giấy mời được giửi tới các thành
viên mà danh sách được lưu trữ trong CSDL, thẻ ra vào, …
Báo cáo dạng đơn giản với thông tin được lấy trực tiếp từ
CSDL, ví dụ danh sách nhân viên, bảng lương.
Báo cáo thực hiện một số tính toán, thống kê.
Báo cáo dạng biểu đồ, nhãn thư, …
192. II. Tạo báo cáo
Để tạo khuôn dạng của báo cáo ta làm như sau:
Cách 1: Từ cửa sổ Database, trong phần Objects
chọn Report / Create report in Design view
hoặc Create report by using wizard
Cách 2: Từ cửa sổ Database, trong phần Objects
chọn Report / New, cửa sổ New Report xuất
hiện với các lựa chọn như sau:
193. Tạo báo cáo (tiếp)
Auto Report: Tự động đưa ra báo cáo khi đã chọn
nguồn dữ liệu. Không được chọn thông tin nào.
Report Wizard: Người sử dụng phải lựa chọn các
mục sau:
Chọn nguồn dữ liệu (bảng hoặc truy vấn).
Chọn trường dùng trong báo cáo.
Chọn trường cần phân nhóm (nếu muốn tạo báo
cáo phân nhóm )
Sắp thứ tự (nếu cần).
Dạng và kiểu trình bày của báo cáo.
Dùng Wizard có thể tạo báo cáo nhanh nhưng kích
cỡ của báo cáo thường lớn, khuông dạng và font chữ theo
ngầm định của Access nên thường phải sửa thiết kế.
194. Tạo báo cáo (tiếp)
Báo cáo dạng nhãn (Label Report): Để tạo một
báo cáo dạng này cần thực hiện lần lượt các bước sau:
Xác định kích cỡ và cách bố trí các nhãn trên giấy.
Font chữ ngầm định.
Các trường cần lấy thông tin.
Trường cần sắp xếp.
Mở thiết kế của báo cáo dạng nhãn, điều chỉnh lại
một số điều khiển cho phù hợp yêu cầu thực tế.
195. III. Các thành phần của báo cáo
Từ cửa sổ New Report chọn mục Design View. Màn
hình thiết kế báo cáo hiện ra với 3 chế độ song song
tồn tại, đó là:
Design View: Thiết kế báo cáo.
Print Preview: Xem hình ảnh của báo cáo với kích
thước thật và dữ liệu thật.
Layout Preview: Chỉ xem hình ảnh của báo cáo, còn
dữ liệu chưa chắc chính xác, vì Access có thể bỏ qua
các điều kiện chọn, kết nối, …
196. Các thành phần của báo cáo (tiếp)
Trên màn hình thiết kế báo cáo cũng luôn để 2 công cụ
là Toolbox và Fieldlist. Các thành phần trong cửa sổ
thiết kế báo cáo gồm:
Detail: Lặp lại theo từng bộ dữ liệu (từng bản ghi
trong bảng hoặc truy vấn nguồn).
Page Header/Page Footer: Lập lại mỗi trang một lần.
Phần này thường chứa số trang, ngày tháng lập báo
cáo, …
Report Header/Report Footer: Mỗi báo cáo lặp một
lần. Phần này chứa tiêu đề chung của toàn báo cáo
và các dòng tổng cộng.
Ngoài ra các báo cáo có phân nhóm còn chứa Group
Header/Footer dùng làm tiêu đề và các dòng tổng
cộng cho từng nhóm trong báo cáo.
197. Các thành phần của báo cáo (tiếp)
1. Thiết kế báo cáo dạng văn bản
Gồm những văn bản giống nhau được gửi tới mỗi đối
tượng có thông tin trong CSDL. Đặc trưng của các báo
cáo dạng này là văn bản trộn lẫn với thông tin trong
CSDL. Vì vậy, toàn bộ thiết kế nằm trong phần Detail.
Trong báo cáo thường gồm các điều khiển:
Nhãn: Chứa các đoạn văn bản với font chữ theo yêu
cầu thực tế.
Textbox: Có thể chứa thông tin lấy trực tiếp từ nguồn dữ
liệu hoặc kết xuất từ những thông tin trong CSDL. Do
vậy Text box gồm 2 loại: bị buộc và tính toán được.
Ảnh: Có thể bị buộc hoặc không bị buộc.
198. Các thành phần của báo cáo (tiếp)
2. Thiết kế báo cáo đơn giản dạng bảng
Tiêu đề: Nếu tiêu đề chỉ xuất hiện ở trang đầu chọn Report
Header. Nếu tiêu đề xuất hiện trên mọi trang chọn Page
Header.
Đầu cột: Thường để ở Page Header
Text box chứa dữ liệu nguyên dạng: Kéo các dữ liệu xuất
hiện trong bảng từ Field List vào phần Detail. Xóa nhãn đi
kèm điều khiển. Việc căn chỉnh giống như căn chỉnh điều
khiển trên form.
Nếu muốn các giá trị trùng nhau chỉ xuất hiện 1 lần, ví dụ
tên người đi kèm tên ngoại ngữ mà người đó biết, mở
thuộc tính của Textbox đặt Hide Duplicate là Yes.
Để có các textbox có độ cao giống nhau, nên chọn cách
sao chép hoặc tác động vào thuộc tính của điều khiển.
199. Các thành phần của báo cáo (tiếp)
Tạo các Textbox (điều khiển tính toán được) chứa dữ liệu
kết xuất dạng = <Biểu thức>
Có những Textbox được dùng làm trung gian để tính giá trị
cho những textbox khác. Khi ấy phải đặt thuộc tính Visible
là No.
Dòng tổng cộng đặt tại Report Footer.
Số trang hoặc ngày lập báo cáo có thể để ở Page Footer.
Hàm Page, cho biết số của trang hiện thời. Hàm Pages,
cho biết tổng số trang của báo cáo. Hàm Now() cho biết
ngày tháng hiện tại
Muốn kẻ khung dùng các điều khiển dạng Line. Muốn
chính xác sử dụng thuộc tính left, width, top, height. Tại
Textbox đặt thuộc tính Border Style chọn Solid/Dashes …
200. Các thành phần của báo cáo (tiếp)
Cuối báo cáo (Report Footer) thường có các dòng
tổng cộng là các điều khiển dạng tính toán được với
các hàm thư viện hoặc các hàm thư viện có điều
kiện, đó là:
= Sum| Avg (<Biểu thức số>)
=Count| Min| Max (<Biểu thức>)
201. IV.Sắp xếp và phân nhóm trên báo cáo
Muốn dữ liệu xuất hiện trong báo cáo được sắp xếp
theo một thứ tự nào đó, không nhất thiết phải sắp xếp
trên truy vấn. Có thể sắp xếp ngay trên báo cáo. Để
thực hiện công việc này, cần mở hộp thoại Sorting
and Grouping (Có thể mở hộp thoại Sorting and
Grouping bằng cách chọn View hoặc kích chuột
phải). Cửa sổ Sorting and Grouping có dạng như
sau:
203. Sắp xếp và phân nhóm trên báo cáo(tiếp)
Sau khi sắp xếp xong có thể phân nhóm dữ liệu –
cũng làm việc trên hộp thoại nói trên. Nếu đặt Group
Header/Footer là Yes, sẽ xuất hiện tiêu đề trên và
dưới cho mỗi nhóm và do vậy có thể dùng tiêu đề, kẻ
đầu cột cũng như tính toán ứng với mỗi nhóm.
Có thể phân nhóm theo nhiều trường cũng như
phân nhóm theo trường kết xuất.
204. V. Báo cáo chính-phụ
Khi tạo báo cáo với nguồn dữ liệu lấy từ nhiều bảng
và phải đảm bảo đúng khuôn dạng thực tế, người ta
phải dùng báo cáo chính-phụ, ví dụ phiếu xuất vật tư,
lý lịch nhân viên, …
Cách tạo báo cáo chính – phụ gồm các bước sau:
Tạo báo cáo chính.
Tạo báo cáo phụ độc lập.
Mở đồng thời cửa sổ thiết kế báo cáo chính và cửa sổ
Database. Kéo báo cáo phụ từ cửa sổ Database vào.
Mở thuộc tính của điều khiển Subreport trên báo cáo
chính. Kiểm tra sự kết nối dữ liệu qua các thuộc tính
LinkMasterFields và LinkChildFields.
205. VI. Một số ví dụ về thiết kế báo cáo
1.Ví dụ 1:
Thiết kế báo “Thẻ ra vào”, có nội dung được trình bày
như sau:
THẺ RA VÀO
Số thẻ:
Họ tên: Nam/nữ
Năm sinh:
Đơn vị:
Ảnh
206. Một số ví dụ về thiết kế báo cáo (tiếp)
Để có được nguồn dữ liệu cho báo cáo, cần thiết kế
truy vấn: Tìm MãNV, Họ tên, Năm sinh, Giới tính
(Nam/nữ), Tên phòng. Dữ liệu cho truy vấn này được
lấy từ bảng NHANVIEN và bảng PHONG.
Vì thẻ ra vào được in cho từng nhân viên, có nghĩa là
toàn bộ thông tin trên tờ thẻ được lặp lại với mỗi bản
ghi về nhân viên nên toàn bộ các thông tin trên thẻ
đều được để trong phần Detail.
Thiết kế của thẻ ra vào được thể hiện như sau:
Bước 1: Mở cửa sổ thiết kế báo cáo (report)
Từ cửa sổ Database, trong phần Objects chọn
Report/ Create report in Design view
207. Một số ví dụ về thiết kế báo cáo (tiếp)
Bước 2: Chọn nguồn dữ liệu cho báo cáo là bảng
NHANVIEN
Bước 3: Thiết kế các điều khiển trên báo cáo
Kéo rê các trường cần hiển thị trên report (các trường
này lấy từ nguồn dữ liệu của report – Field List) vào
cửa sổ thiết kế, sau đó hiệu chỉnh lại các nhãn
(Lables) và text box để hiển thị giới tính trên report
như sau:
209. Một số ví dụ về thiết kế báo cáo (tiếp)
2. Ví dụ 2: Tạo 1 báo cáo thống kê trình độ
ngoại ngữ của từng phòng.
Trong báo cáo chính có: MAPHONG, TENPHONG
Trong báo phụ có: HOTEN, NGAYSINH, TENNN,
TDO của các nhân viên trong phòng tương ứng
210. Một số ví dụ về thiết kế báo cáo (tiếp)
3. Ví dụ 3:
Tạo báo cáo cho biết danh sách nhân viên của từng phòng và
tổng số nhân viên của phòng đó. Với mã phòng nhập từ bàn phím
hoặc chọn trên form. Như sau:
DANH SÁCH NHÂN VIÊN PHÒNG …
Tổng cộng: …. Người
Các bước tạo báo cáo này:
Tạo nguồn dữ liệu cho report là một truy vấn tham số gồm các
thông tin: Tìm mã nhân viên, họ tên, ngày sinh, giới tính của các
nhân viên thuộc phòng X, X nhập từ bàn phím (hoặc chọn trên
form).
Sau đó thiết kế báo cáo như sau:
Họ và tên Ngày sinh Giới tính
212. Một số ví dụ về thiết kế báo cáo (tiếp)
4. Ví dụ 4:
Tạo danh sách nhân viên toàn cơ quan nhận tiền theo mẫu sau:
DANH SÁCH NHÂN VIÊN TOÀN CƠ QUAN NHẬN TIỀN …
PHÒNG TỔ CHỨC
Tổng toàn phòng ……
PHÒNG TÀI VỤ
Tổng toàn phòng ……
Tổng cộng toàn cơ quan.
Trong đó, lý do nhận tiền và số tiền nhận nhập từ bàn phím.
STT Họ tên Số tiền Kí nhận
STT Họ tên Số tiền Kí nhận
213. Một số ví dụ về thiết kế báo cáo (tiếp)
Để thiết kế báo cáo trên chúng ta làm như sau:
Tạo nguồn dữ liệu là một truy vấn tham số gồm các
thông tin: tên phòng, họ tên nhân viên, số tiền nhận
(số tiền là 1 tham số được nhập từ bàn phím).
Đặt con trỏ trên báo cáo, click chuột phải -> Sorting
and Grouping, cửa sổ Sorting and Grouping xuất
hiện, trong cửa sổ này chúng ta thiết kế như sau:
214. Một số ví dụ về thiết kế báo cáo (tiếp)
Kéo rê các trường cần hiển thị trên report (các trường này lấy từ nguồn
dữ liệu của report – Field List) vào cửa sổ thiết kế, sau đó hiệu chỉnh lại
các nhãn (Lables) và thêm các nhãn, các text box mới trên report như
sau:
218. I. Khái niệm
Macro là tập hợp của một hoặc nhiều thao tác nhằm
tạo ra một hoạt động nào đó.
Macro giúp ta thực hiện một cách tự động các công
việc, chẳng hạn ta có thể chạy một macro để in một
báo biểu khi người sử dụng kích vào một nút lệnh.
Một macro có thể bao gồm một hoặc một chuỗi các
hành động hoặc cũng có thể chứa một tập hợp
macro.
Macro giống như một kiểu lập trình rất đơn giản
dùng để thực hiện tự động một số thao tác hoặc một
chuỗi hoạt động phức tạp. Hơn thế nữa, ta không
cần phải biết lập trình, Access đã cung cấp sẵn cho
ta các thứ cần thiết để tạo nên macro.
219. II. Mở cửa sổ Macro
Từ cửa sổ Database, trong mục Object, kích chọn
đối tượng Macro
Kích New, trên màn hình xuất hiện cửa sổ Macro
Design View
220. III. Thanh công cụ của Macro
Sau khi xuất hiện cửa sổ Macro Design View, ta
thấy trên màn hình có thanh công cụ sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
221. Thanh công cụ của Macro (tiếp)
1,2,3,4,5,6,7,8,9 giống như thanh Standard
10. Macro Names : Ẩn/hiện cột Macro name trong cửa
sổ Macro.
11. Conditions : Ẩn/hiện cột Conditions. Cột này dùng
để định nghĩa các điều kiện mà khi nó là True thì thao
tác kèm theo mới được thực hiện, tương đương
View/Condition
12. Insert Rows : để chèn thêm một dòng, tương đương
Insert/Row
222. Thanh công cụ của Macro (tiếp)
13. Delete Rows : để xoá một dòng, tương đương
Edit/Delete Rows
14. Run : Chạy một macro, tương đương
Tools/Macro/Run Macro
15. Single Step : dùng để thực hiện từng thao tác một
của macro và hiển thị kết quả của các bước đó,
tương đương Run/Single Step
16. Build : Hộp tạo biểu thức
17. Database Window : đặt lại cửa sổ Database
18. New Object : danh mục các đối tượng
19. Microsoft Access Help : trợ giúp
223. IV. Tạo macro và đưa hành động vào
Sau khi xuất hiện cửa sổ Macro Design View, muốn tạo
macro và đưa hành động vào ta làm như sau:
Kích vào mũi tên xuống ở cột Action, ta thấy các lệnh Macro
hiện ra,
Kích chọn một Macro mà ta muốn thực hiện.
Trong phần cuối của cửa sổ là các tham số của các hành động
Cột Comment dùng để ghi chú thích cho các hành động tương
ứng (không bắt buộc phải ghi)
Để thêm các hành động khác vào macro ta chuyển con trỏ
xuống dòng dưới và thực hiện lại các thao tác trên.
Khi chạy macro, Access sẽ thực hiện các hành động theo đúng
thứ tự đã sắp xếp trong macro.
Lưu lại Macro bằng cách chọn File/Save.
Nhập tên cho Macro
224. V. Chạy macro
1. Chạy một macro đơn:
Để chạy một macro từ cửa sổ Macro,
kích biểu tượng Run trên thanh công cụ.
Để chạy một macro từ cửa sổ Database,
kích dòng Macros và kích đúp vào tên
của macro mà ta cần thực hiện.
Trên menu Tools, trỏ chuột vào Macro,
kích Run Macro, và sau đó chọn macro
từ danh sách Macro Name.
225. Chạy Macro (tiếp)
2. Chạy macro từ một macro khác
Ta phải thêm hành động RunMacro vào
macro đã có bằng cách:
Kích chọn RunMacro trong danh sách Action ở
một dòng trống.
Đặt thông số Macro Name là tên của macro mà
ta muốn chạy.
226. VI. Sửa macro
1. Thêm hành động vào macro.
Nếu muốn chèn thêm một hành động vào giữa 2
hành động đã có thì kích vào dòng ngay bên
dưới dòng hành động ta muốn thêm.
Kích Insert Row trên thanh công cụ
Trong cột Action, kích vào mũi tên xuống để
hiển thị danh sách hành động
Kích chọn hành động mà ta muốn sử dụng
Cột Comment dùng để ghi lời chú thích cho
hành động tương ứng, không bắt buộc phải
nhập.
227. Sửa macro (tiếp)
2. Di chuyển hành động trong macro:
Kích chọn vào dòng hành động cần di
chuyển
Kéo thả đến vị trí mới
228. Sửa macro (tiếp)
3. Ẩn/hiện cột Name và Condition trong macro
Đối với một macro:
Để ẩn hoặc hiện cột Macro Name, kích biểu tượng Macro
Name trên thanh công cụ
Để ẩn hoặc hiện cột Condition, kích vào biểu tượng
Conditions trên thanh công cụ
Đặt mặc định cho mọi macro
Trên thanh công cụ, kích Tools/Options
Kích chọn trang View
Dưới mục Show In Macro Design, kích chọn hoặc bỏ chọn
vào ô Names Colummn và Conditons Column
229. VII. Macro có điều kiện
Ta có thể tạo ra các hành động có điều kiện cho Macro bằng
cách thêm vào cửa sổ Macro Design một cột Condition. Nếu
điều kiện thoả (true), Access thực hiện hành động trong dòng có
chứa điều kiện. Nếu điều kiện không thoả, Access bỏ qua hành
động trong dòng đó và di chuyển đến dòng kế tiếp để thực hiện.
Biểu thức điều kiện phải trả về giá trị True/False hoặc Yes/No.
Để đặt điều kiện cho macro, ta làm như sau:
Trong cửa sổ Macro, kích vào biểu tượng Conditions trên
thanh công cụ, xuất hiện cột Condition.
Nhập biểu thức điều kiện đơn giản vào ô Condition hoặc kích
biểu tượng Build trên thanh công cụ để xây dựng biểu thức
điều kiện phức tạp.
Trong cột Action, nhập hành động mà ta muốn Access sẽ thực
hiện khi điều kiện đúng.
230. Macro có điều kiện (tiếp)
Cách nhập biểu thức điều kiện vào đối số của
hành động
Cách gõ biểu thức: Bắt đầu bằng dấu “=”, tiếp theo là
biểu thức.
Biểu thức là sự kết hợp của các toán tử logic, toán tử
số học, các hằng, các hàm, tên trường, các điều
khiển,…
Ví dụ: nếu macro có điều kiện
[DONGIA]>1000000
tức là nếu giá trị trong trường DONGIA >1000000 thì
macro tương ứng với điều kiện sẽ chạy.
231. VIII. Áp dụng macro vào Form
Tạo nút lệnh trên Form
Kích Properties trên Toolbar
Trên hộp thoại Command Button, kích Event/On Click.
Kích vào mũi tên xổ xuống trong dòng On Click. Chọn tên macro
cần chạy
Kích vào dấu… để làm xuất hiện cửa sổ Macro Design của macro
đó.
Kích nút Condition/Build trên Toobar để làm xuất hiện hộp
thoại tạo biểu thức.
Kích nút Forms/All Forms và kích đúp vào tên mẫu biểu.
Chọn trường tham gia vào điều kiện
Tạo biểu thức
Kích OK để đóng hộp tạo biểu thức
Đóng cửa sổ Macro
232. Áp dụng macro vào Form (Tiếp)
Ví dụ 1: Tạo một biểu mẫu biểu chứa thông
tin về các phòng. Trong biểu mẫu có một nút
lệnh Xem thông tin nhân viên. Khi kích
vào nút lệnh này thì sẽ chạy macro để mở
bảng NHANVIEN.
Ví dụ 2: Tạo một biểu mẫu biểu chứa thông
tin về các nhân viên. Trong biểu mẫu có một
nút lệnh Xem thông tin về trình độ ngoại
ngữ. Những nhân viên nào ở phòng PKH thì
khi kích vào nút lệnh này thì sẽ chạy macro
để mở bảng TDNN.
234. I. Tạo thanh Toolbar
Kích chọn View trên thanh công cụ
Kích chọn Toolbars/Customize
Xuất hiện cửa sổ Customize
Kích chọn New/đặt tên cho Toolbar
Kích chọn Tên Toolbar/Properties, xuất hiện cửa sổ
Toolbar Properties với các thông số:
Toolbar name: tên của toolbar
Type: kiểu của toolbar: menu bar, toolbar, popup
Docking: Allow any, Can’t change, No vertical, No Horizontal
Show on Toolbar Menu: hiển thị trên thanh công cụ
235. Tạo thanh Toolbar (tiếp)
Allow Customizing: được phép thay đổi
theo yêu cầu
Allow Resizing: được phép thay đổi kích
thước
Allow Moving: được phép di chuyển
Allow showing/Hiding: được phép hiển
thị/ẩn
Ví dụ: Tạo Toolbar QUAN_LI_NHAN_SU
236. II. Đưa nút lệnh, menu vào Toolbar
Bước 1: Kích vào biểu tượng mũi tên xuống
trên Toolbar vừa tạo
Bước 2: Trỏ chuột vào Add or Remove
Buttons, và kích chọn Customize.
Bước 3: Thực hiện theo một trong các yêu
cầu sau:
Thêm nút vào Toolbar:
Kích chọn trang Commands
Trong hộp Categories, kích chọn loại lệnh mà ta muốn
thêm
Kéo các lệnh hoặc macro ta muốn thêm từ hộp
Commands thả vào Toolbar vừa tạo.
237. Đưa nút lệnh, menu vào Toolbar (tiếp)
Thêm menu vào Toolbar
Kích chọn trang Command
Trong hộp Categories, kích vào Built-in Menus
Kéo menu ta muốn thêm từ hộp Commands thả vào Toolbar vừa tạo.
Thêm menu tự tạo vào Toolbar
Kích chọn trang Command
Trong hộp Categories, kích vào New Menu
Kéo New Menu từ hộp Commands thả vào Toolbar
Kích phải chuột vào menu mới, đặt tên cho menu vào ô Name và ấn ENTER.
Bước 4: Trong hộp Customize, kích Close
Ví dụ:
- Thêm Menu File, Edit
- Thêm nút Open, Save
- Thêm menu tự tạo: TIM_KIEM, NHAP_LIEU, BAO_CAO
238. III. Đưa menu tự tạo vào Toolbar
Trong menu ta có thể đưa các lệnh vào bằng
cách kích vào menu đó, kéo các lệnh, macro,
… từ hộp Command và thả vào menu.
Từ cửa sổ Customize, kích vào All Queries
trong hộp Categories. Trong hộp Commands
sẽ xuất hiện tất cả các truy vấn mà ta có.
Kích chọn tên truy vấn cần thêm, kéo thả vào
menu
Ví dụ: Đưa vào menu TIM_KIEM 1 số query
239. IV. Xoá một Toolbar
Trên menu View, kích chuột vào
Toolbars/Customize.
Kích chọn trang Toolbars
Trong hộp Toolbars, chọn tên Toolbar mà ta muốn
xoá
Kích Delete.
Lưu ý: Ta không thể xoá các Toolbar dạng Built_in
Toolbar (là các Toolbar có sẵn của Access) chẳng
hạn như Toolbar Database, Form Design,…. Khi ta
kích chọn vào các Toolbar này thì nút Reset sẽ nổi
lên còn nút Delete sẽ chìm xuống không cho phép
ta thực hiện thao tác xoá.
240. V. Xoá một Menu
Trên menu Tools, kích Customize.
Xuất hiện hộp thoại Customize, kéo
menu mà ta muốn xoá thả vào hộp
Customize.
241. VI. Xoá một nút từ Toolbar
Trên toolbar, kích vào Toolbar Options .
Trỏ chuột vào mục Add or Remove Buttons, và
thực hiện theo một trong những yêu c ầu sau:
Xoá một nút dạng Built_in Button khỏi Toolbar:
Trỏ vào tên của Toolbar
Kích bỏ chọn vào hộp kiểm của nút mà ta muốn xoá.
Xoá nút từ Toolbar tự tạo
Kích Customize.
Trên toolbar, kích phải chuột vào nút mà ta muốn xoá.
Kích Delete.
Trên hộp thoại Customize, kích Close.
Editor's Notes
Chương 1: Các bài toán quản lý các khái niệm cơ bản về CSDL và Hệ QTCSDL Chương 2: Ngôn ngữ dựa trên phép toán đại số quan hệ Ngôn ngữ truy vấn SQL Chương 3: -Tổ chức tệp của CSDL Tệp chỉ mục Tệp băm Chương 4: -Giới thiệu môi trường làm việc của VFP Các kiểu dữ liệu và kiểu trường của VFP Chương 5: Ngôn ngữ con định nghĩa dữ liệu Ngôn ngữ con cập nhật CSDL Ngôn ngữ con dựa trên các phép toán ĐS Ngôn ngữ con SQL Chương 6: -Thiết kế dự án - Thiết kế khuôn dạng nhập liệu Thiết lập báo cáo Tạo các truy vấn