Upload
lylien
View
232
Download
0
Embed Size (px)
Citation preview
Quản trị Cơ sở dữ liệu với MS ACCESS
Nguyễn Văn Sáu
2012
1. Tổng quan về Cơ sở dữ liệu quan hệ
2. Giới thiệu về Microsoft Access
3. Table and Relation
4. Query
5. Form 6. Macro (đọc thêm)
7. Report 8. Page (đọc thêm)
9. Module (đọc thêm)
10. Menu (đọc thêm)
2 Quản trị Cơ sở dữ liệu với Access
• Thông tin?
• Dữ liệu?
• Cách lưu trữ và truy xuất dữ liệu
• Định nghĩa CSDL (Database): • Là một tập hợp dữ liệu có cấu trúc (1), được lưu trữ trong các thiết
bị có thể truy xuất bởi máy tính (2), đảm bảo được yêu cầu của nhiều người sử dụng (3) có chọn lọc (4) một cách kịp thời (5)
• (1): Có tổ chức và được mô tả rõ ràng
• (2): Lưu trữ trên đĩa từ, băng từ...
• (3): Dùng chung
• (4): Bảo mật
• (5): Hiệu suất cao
3 Quản trị Cơ sở dữ liệu với Access
• Hệ quản trị CSDL (DBMS-Database Management System) • Là phần mềm trung gian giữa người sử dụng và CSDL
4
Database DBMS
Quản trị Cơ sở dữ liệu với Access
• 3 chức năng của DBMS:
• Mô tả dữ liệu: • Định nghĩa dữ liệu và các mối quan hệ dữ liệu
• Thiết lập các ràng buộc toàn vẹn dữ liệu
• Tạo CSDL
• Thao tác dữ liệu: • Cập nhật dữ liệu
• Phục hồi dữ liệu
• Truy vấn dữ liệu
• Điều khiển dữ liệu: • Chia sẻ dữ liệu
• Bảo toàn dữ liệu
• Bảo mật dữ liệu
5 Quản trị Cơ sở dữ liệu với Access
• Một số DBMS phổ biến:
• Nhỏ: Paradox, DBase, Foxpro, MySQL, Access ...
• Lớn: Oracle, SQL Server, DB2 ...
6 Quản trị Cơ sở dữ liệu với Access
• Một số mô hình dữ liệu:
• Mô hình thực thể kết hợp
• Mô hình mạng
• Mô hình phân cấp
• Mô hình dữ liệu hướng đối tượng
• Mô hình dữ liệu quan hệ
7 Quản trị Cơ sở dữ liệu với Access
• Thuộc tính (Attribute)
• Là các đặc điểm của một nhóm đối tượng
• Có một tên gọi gợi ý nghĩa
• Có kiểu dữ liệu
• Có miền giá trị
• Ví dụ:
MASV (mã sinh viên), HOTENSV (họ tên sinh viên), NGAYSINH (ngày sinh), GT (giới tính)
8 Quản trị Cơ sở dữ liệu với Access
• Kiểu dữ liệu (Data type):
• Số (Numeric, Int, Float...), chuỗi (Character...), ngày tháng (Date, DateTime), logic,…
• Vd: Thuộc tính HOVATEN, MASV thuộc kiểu chuỗi; thuộc tính NGAYSINH thuộc kiểu ngày tháng,…
• Miền giá trị (domain of values):
• Mỗi thuộc tính chỉ nhận một giá trị trong một tập con của kiểu dữ liệu. Tập hợp con đó gọi là miền giá trị của thuộc tính.
• Vd: Miền giá trị của GT = {nam,nữ}
Miền giá trị của DIEMTHI = {0, 1, ..., 10}
9 Quản trị Cơ sở dữ liệu với Access
• Hệ quản trị CSDL quan hệ quản lý mô hình CSDL
quan hệ như thế nào?
• Mỗi nhóm đối tượng được thể hiện trong các bảng (Table), có các dòng và cột
• Cột tương đương với thuộc tính của đối tượng. Hệ QTCSDL gọi là Field (trường)
• Mỗi dòng cho thông tin về một đối tượng cụ thể trong
nhóm đối tượng của bảng. Hệ QTCSDL gọi là Record (bản ghi)
10 Quản trị Cơ sở dữ liệu với Access
• Khóa (Key)
• Khóa là một tập các Fields dùng làm cơ sở để phân biệt tất cả các Records trong cùng một Table (trong một Table, giá trị khóa của các Records khác nhau từng đôi một)
• Ví dụ: Table SinhVien (dùng để chứa danh sách sinh viên), có khóa là MASV
• Khóa chính (Primary key) • Trong một table có thể có nhiều khóa. Các khóa đó được gọi là
khóa dự tuyển (Candidate key) hay khóa nội. Trong đó, khóa nào ta chọn để sử dụng (làm chỉ mục) được gọi là khóa chính.
• Khóa ngoại (Foreign key) • Field không phải là khóa của Table này nhưng là khóa của Table
khác (Dùng để quản lý mối liên kết giữa 2 tables) 11 Quản trị Cơ sở dữ liệu với Access
• Giới thiệu
• Access là một hệ quản trị cơ sở dữ liệu quan hệ
• Nằm trong bộ Office của hãng Microsoft
• Phù hợp với các bài toán quản lý vừa và nhỏ
• Có thể được dùng để: • Xây dựng và quản trị cơ sở dữ liệu; và/hoặc
• Xây dựng phần mềm quản lý quy mô vừa và nhỏ.
• Có 2 chế độ làm việc: • Chế độ sử dụng công cụ có sẵn: Giúp cho 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.
12 Quản trị Cơ sở dữ liệu với Access
• Khởi động MS Access
• Tương tự như gọi các chương trình ứng dụng khác
• Menu Start All Programs Microsoft Office Microsoft Office Access 2007
• Hoặc click/double click vào các tập tin có icon là logo của Access
• ...
13 Quản trị Cơ sở dữ liệu với Access
• Một số đối tượng cơ bản của Access • Database
• Database là tập hợp các số liệu liên quan đến một chủ đề hay một mục đích nào đó
• Trong Access, Database có thể bao gồm cả các đoạn mã lệnh dùng để tạo, truy xuất hoặc điều khiển dữ liệu. Access quản lý tất cả các đối tượng của nó trong một file duy nhất có phần mở rộng là .MDB (theo format Access 2000 về trước) hoặc .ACCDB (theo format Access 2007 về sau)
14 Quản trị Cơ sở dữ liệu với Access
• Một số đối tượng cơ bản của Access • Table:
• Là Quan hệ (Relation), hay bảng quan hệ trong mô hình dữ liệu quan hệ. Tiếng Việt có thể gọi là Bảng. Trong các hệ QTCSDL gọi là Table. Ta thống nhất gọi là Table
• Table bao gồm các cột và dòng
• Cột là Thuộc tính (Attribute) trong mô hình dữ liệu quan hệ. Tiếng Việt có thể gọi là Trường. Trong các hệ QTCSDL gọi là Field. Ta thống nhất gọi là Field
• Trong mỗi Table phải có ít nhất một Field. Tên các Fields không được trùng. Thứ tự các fields không quan trọng. Các thuộc tính cơ bản của Field là Field Name, Data Type và Field Size
• Dòng là Bộ (Tuple) trong mô hình dữ liệu quan hệ. Tiếng Việt có thể gọi là Bản ghi. Trong các hệ QTCSDL gọi là Record. Ta thống nhất gọi là Record
• Khóa (Key) của Table có thể là một hoặc nhiều Fields.
15 Quản trị Cơ sở dữ liệu với Access
• Một số đối tượng cơ bản của Access • Table:
16 Quản trị Cơ sở dữ liệu với Access
Tên Table
Field
Record
Table Name
Field Name
Data Type
Key
Field’s Properties
• Một số đối tượng cơ bản của Access • Form:
• Là biểu mẫu được thiết kế cho mục đích cập nhật, xem dữ liệu hoặc để điều khiển việc thi hành ứng dụng
17 Quản trị Cơ sở dữ liệu với Access
• Một số đối tượng cơ bản của Access • Query:
• Tiếng Việt gọi là Truy vấn. Là câu lệnh SQL (Structured Query Language) hoặc QBE (Query By Example) do người dùng tạo ra để kết xuất hoặc cập nhật dữ liệu từ một hay nhiều Table
• Ví dụ muốn tìm tất cả nhân viên có tên “Trung”:
• Dùng SQL: SELECT * FROM NHANVIEN WHERE TEN=‘Trung’;
• Dùng QBE: QBE là công cụ cho phép người dùng không cần gõ lệnh SQL mà chỉ cần “Kéo và Thả”
18 Quản trị Cơ sở dữ liệu với Access
• Một số đối tượng cơ bản của Access • Report:
• Tiếng Việt gọi là Báo cáo.
• Cho phép người dùng kế xuất dữ liệu trong Database, sau đó sắp xếp, định dạng lại theo một khuôn mẫu nào đó để xem, in ra máy in hoặc xuất ra các format khác như .DOC, .PDF, .XLS...
19 Quản trị Cơ sở dữ liệu với Access
• Một số đối tượng cơ bản của Access • Macro:
• Là công cụ giúp cho người dùng tạo các lệnh thực hiện các công việc như mở Database, mở Table, in Report, thực hiện Query... mà không cần biết nhiều về ngôn ngưc VBA (Visual Basic for Applications)
• ví dụ tạo một Macro hiện câu thông báo:
20 Quản trị Cơ sở dữ liệu với Access
• Một số đối tượng cơ bản của Access • Module:
• Access cung cấp một môi trường lập trình cho những người biết sử dụng ngôn ngữ Visual Basic.
• Module là một đoạn mã
VB chứa các chương trình con
dùng để thực hiện các lệnh
phức tạp mà công cụ hoặc
tập lệnh của Access không có
(hoặc người dùng muốn
tự xây dựng theo ý riêng)
21 Quản trị Cơ sở dữ liệu với Access
• Môi trường làm việc
của Access • Office Button:
Chứa nhiều chức năng cho phép
tạo một cơ sở dữ liệu mới (New),
mở một cơ sở dữ liệu đã tồn
tại (Open), lưu (Save) và
lưu với tên (Save as),
in ấn (Print), Send hay Close.
22 Quản trị Cơ sở dữ liệu với Access
• Môi trường làm việc của Access • Ribbon:
• Vùng phía trên của màn hình.
• Có 5 tab: Home, Create, External Data, Database Tools,
và Datasheet.
• Mỗi tab có các nhóm. Các nhóm chứa các tính năng cùng loại với nhau.
• Ví dụ tab Home có các nhóm: View, Clipboard, Font, Rich Text...
23 Quản trị Cơ sở dữ liệu với Access
• Môi trường làm việc của Access • Ribbon: (tt)
• Trên vùng Ribbon chỉ chứa các tính năng phổ biến. Để thấy các
tính năng thêm trong mỗi nhóm, kích vào mũi tên phía góc dưới bên
phải mỗi nhóm.
24 Quản trị Cơ sở dữ liệu với Access
• Môi trường làm việc của Access • Quick Access Toolbar:
• Thanh công cụ chứa các lệnh thường sử dụng
25 Quản trị Cơ sở dữ liệu với Access
• Môi trường làm việc của Access • Navigation Pane:
• Mặc định nằm ở bên trái màn hình
• Hiển thị các đối tượng cơ sở dữ liệu
như các table, form,
query và report
• Click vào nút << ở góc trên
bên phải để xếp nó vào
26 Quản trị Cơ sở dữ liệu với Access
• Môi trường làm việc của Access • Tabbed Document Window Viewing
• Mở các đối tượng của Access như table, form, query và report trong cùng một cửa sổ
• Click vào các tab để chuyển đổi giữa các cửa sổ
• Click nút x ở góc trên bên phải để đóng tab tương ứng lại
27 Quản trị Cơ sở dữ liệu với Access
• Tạo một Database rỗng
• Click Office button ở góc trên bên trái New
28 Quản trị Cơ sở dữ liệu với Access
• Tạo một Database rỗng (tt)
• Chọn Blank Database ở màn hình Getting Started
• Nhập tên Database vào ô File Name và click Create
29 Quản trị Cơ sở dữ liệu với Access
• Tạo Database sử dụng Template
• Click Office button ở góc trên bên trái New
• Chọn Template mẫu ở phần Featured Online Templates (hoặc phần Local Templates)
30 Quản trị Cơ sở dữ liệu với Access
• Mở một Database đã có
• Click Office button ở góc trên bên trái Open
31 Quản trị Cơ sở dữ liệu với Access
• Mở một Database đã có (tt)
• Tìm tới thư mục chứa DB rồi nhấp chọn DB cần mở
32 Quản trị Cơ sở dữ liệu với Access
• Mở một Database đã có (tt)
• Các chế độ mở DB: Click vào mũi tên xuống ở cạnh nút Open, ta có thể chọn chế độ mở DB:
33 Quản trị Cơ sở dữ liệu với Access
• Mở một Database đã có (tt)
• Open: • Mở Database cho phép chia sẻ nhiều người dùng : Cho phép nhiều
hơn một người sử dụng có thể truy cập vào để cập nhật dữ liệu nhập liệu tại cùng một thời điểm.
• Open Read-Only: • Chỉ có thể xem dữ liệu nhưng không thể chỉnh sửa được
• Open Exclusive: • Chế độ “độc quyền’: Ngăn không cho người khác mở DB trong
khi ta đang mở ở chế độ này.
• Open Exclusive Read-Only • Người mở chỉ có thể đọc và người khác không mở được
34 Quản trị Cơ sở dữ liệu với Access
• Mở một Database đã có (tt)
35 Quản trị Cơ sở dữ liệu với Access
• Tạo table: Gồm 2 bước:
• 1) Tạo cấu trúc Table
• 2) Nhập dữ liệu cho Table
• Tạo cấu trúc Table: 1. Click Table trên tab Create:
36 Quản trị Cơ sở dữ liệu với Access
• Tạo table: (tt) 2. Click View trên tab Datasheet
và chọn Design View
37 Quản trị Cơ sở dữ liệu với Access
• Tạo table: (tt) Màn hình thiết kế cấu trúc Table:
38 Quản trị Cơ sở dữ liệu với Access
Danh sách các tên Field (bắt buộc) Kiểu dữ liệu của các Field (bắt buộc) Diễn giải các Field (tùy chọn)
• Tạo table: (tt)
• Field Name: Tên Field • Tối đa 64 ký tự, bắt đầu bằng một ký tự chữ A đến Z hoặc ký tự
số 0 đến 9. Trong tên field có thể có cả khoảng trắng nhưng không được có các dấu chấm câu, dấu ! hoặc ngoặc vuông []. Tốt nhất ta nên đặt tên field sao cho ngắn gọn, gợi nhớ và không nên bỏ dấu tiếng Việt để tiện tham chiếu tới tên field về sau này.
• Tham khảo thêm quy định về cách đặt tên:
http://office.microsoft.com/en-us/access-help/guidelines-for-naming-fields-controls-and-objects-HP005186769.aspx?CTT=1
39 Quản trị Cơ sở dữ liệu với Access
• Data Type: Kiểu dữ liệu của Field Name • Text: Kiểu ký tự, tối đa 255 ký tự
• Number: Kiểu số
• Date/time: Kiểu ngày và giờ
• Currency: Kiểu tiền tệ (mặc định theo đơn vị đồng dollar)
• Auto number: Thuộc kiểu này sẽ có số liên tục do Access tự đánh vào, ta không đổi được.
• Yes/No: Kiểu luận lý có 2 trị true hoặc false
• Memo: Kiểu ghi chú (hay kiểu ký ức), tối đa 65535 ký tự
• OLE object: Kiểu đối tượng nhúng để chứa hình ảnh, một công thức, hoặc một tài liệu Word
• Hyperlink: Để chứa đường dẫn tới 1 tập tin trên đĩa, một trang web hoặc một địa chỉ email
http://office.microsoft.com/en-us/access-help/introduction-to-data-types-and-field-properties-HA010233292.aspx?CTT=1
40 Quản trị Cơ sở dữ liệu với Access
• Tạo table: (tt) • Description:
• Để diễn giải ý nghĩa cho Field Name
• Cột này không bắt buộc (Optional)
• Đặt khóa cho Table: • Chọn các field muốn chỉ định làm khóa,
• Right click và chọn Primary Key
• Hoặc
• Click vào Primary Key trên
ribbon Design
• Các fields được chỉ định làm khóa
cho table có hình chìa khóa bên trái
41 Quản trị Cơ sở dữ liệu với Access
• Tạo table: (tt) • Field’s Properties:
• Gồm các thuộc tính chung
General và các
thuộc tính nhập liệu Lookup
42 Quản trị Cơ sở dữ liệu với Access
Các thuộc tính General
Các thuộc tính lookup
• Field’s Properties:
• Tùy thuộc vào kiểu dữ liệu (Data Type) của Field Name mà mục General sẽ có các thuộc tính khác nhau chút ít
• Với field kiểu Text: • Field size: Số ký tự nhiều nhât
• Format : Cách hiển thị số liệu (không bắt buộc)
• Input Mask: Quy định mẫu nhập liệu
• Caption: Để thay thế nhãn cho Field Name trong khi tạo Form và Report.
• Default value: Trị ngầm định nếu ta không nhập dữ liệu vào Form
• Validation Rule: Biểu thức để kiểm tra sự đúng đắn của dữ liệu nhập.
• Validation Text: Thông báo lỗi khi dữ liệu nhập không thỏa Validation Rule
• Required: = Yes thì ta bắt buộc phải nhập liệu vào field này
• Allow Zero Length: = Yes nghĩa là ta chấp nhận trị rỗng cho field này
• Indexed:
• Không sắp thứ tự theo field này
• Yes (Duplicates Ok): Sắp thứ tự theo field này và cho phép số liệu trùng
• Yes (No Duplicates): Sắp thứ tự và không cho phép số liệu trùng trên field này
Tham khảo thêm về Text Format tại địa chỉ:
http://office.microsoft.com/en-us/access-help/format-property-text-and-memo-data-types-43 Quản trị Cơ sở dữ liệu với Access
• Tạo table: (tt)
• Với field kiểu Number: • Field Size: Một số kiểu thông dụng như Byte, Integer, Long Integer,
Single, Double
• Format: Có các dạng General, Currency, Standard, Fixed, Percent,
Scientific
• Decimal Places: Số các số lẻ. Chọn Auto tự động hoặc từ 0 đến 15 số lẻ
• Input Mask: Quy định mẫu nhập liệu
• Các properties khác tương tự như đối với kiểu Text
• Tham khảo thêm về Kiểu dữ liệu và các properties tại địa chỉ:
http://office.microsoft.com/en-us/access-help/introduction-to-data-types-
and-field-properties-HA010233292.aspx?CTT=1#BM2g
44 Quản trị Cơ sở dữ liệu với Access
Kiểu Miền giá trị Số chữ số lẻ
Byte 0 .. 255 (số nguyên) None
Integer –32,768 .. 32,767 (số nguyên) None
Long Integer
–2,147,483,648 .. 2,147,483,647 (số nguyên) None
Single –3.402823E38 ..–1.401298E–45 cho số âm và 1.401298E–45 .. 3.402823E38 cho số dương.
7
Double
–1.79769313486231E308.. -4.94065645841247E–324 cho số âm và 1.79769313486231E308 .. 4.94065645841247E–324 cho số dương
15
• Tạo table: (tt)
• Với field kiểu Date/Time: • Format: General Date, Long Date, Medium Date, Short Date, Long
Time, Medium Time, Short Time. Ta nên tự gõ vào dạng dd/mm/yy
• Tham khảo thêm về Date/Time format tại địa chỉ:
http://office.microsoft.com/en-us/access-help/format-property-date-time-data-type-HA001232739.aspx?CTT=1
• Các properties khác tương tự như đối với kiểu Text
45 Quản trị Cơ sở dữ liệu với Access
• Tạo table: (tt)
• Với field kiểu Currency: • Với field kiểu Currency thì trước số do ta nhập vào đều có ký
hiệu tiền tệ (currency symbol) của quốc gia mà máy ta đang thiết lập, có thể là $, €, £, ¥...
• Muốn thay đổi currency symbol, ta phải vào mục Region and Language trong Control Panel của HĐH Windows.
• Để tránh bị lệ thuộc vào máy, ta nên chọn kiểu Number cho các field chứa giá trị tiền tệ
• Tham khảo thêm về kiểu Currency tại địa chỉ:
http://office.microsoft.com/en-us/access-help/format-property-number-and-
currency-data-types-HA001232740.aspx?CTT=1
46 Quản trị Cơ sở dữ liệu với Access
• Tạo table: (tt)
• Với field kiểu Yes/No: • Format: Yes/No, True/False, On/Off hoặc ta có thể đưa vào một mẫu
hiển thị dữ liệu theo dạng sau: ;"Trị đúng" [Màu của trị đúng];"Trị
sai" [Màu của trị sai]
• Ví dụ hiển thị chữ "Nam" màu xanh nếu field PHAI có trị Yes, True
hay On; "Nữ" màu đỏ nếu field PHAI có trị No, False hay Off:
;"Nam"[Blue];"Nữ"[Red]
(Chú ý phải đặt thuộc tính Display Control cho field PHAI là Combo Box hoặc Text Box)
• Tham khảo thêm về thuộc tính kiểu Yes/No tại địa chỉ:
http://office.microsoft.com/en-us/access-help/format-property-yes-no-data-type-HA001232749.aspx?CTT=1
• Các properties khác tương tự như đối với kiểu Text
47 Quản trị Cơ sở dữ liệu với Access
• Tạo table: (tt)
• Với field kiểu OLE Object: • Có 2 thuộc tính Caption và Required. Kiểu này thường được
dùng để chứa một đối tượng nhúng, chẳng hạn như một bức hình, một tranh vẽ, một bảng tính Excel, hay một tài liệu Word
• Kiểu OLE Object hiện còn một số hạn chế. Chính Microsoft cũng khuyên hạn chế dùng kiểu này mà nên dùng kiểu khác!
48 Quản trị Cơ sở dữ liệu với Access
• Thuộc tính Lookup • Display Control: Dạng hiển thị của field (Text Box, List Box, Combo
Box)
49 Quản trị Cơ sở dữ liệu với Access
• Thuộc tính Lookup (tt)
• Row Source Type: Kiểu của nguồn cung cấp dữ liệu cho field. • Nếu Display Control là Text Box: không có Row Source Type
• Nếu Display Control là List Box hay Combo Box: Row Source Type có thể là Table/Query, Value List, Field List.
50 Quản trị Cơ sở dữ liệu với Access
• Thuộc tính Lookup (tt)
• Row Source: Nguồn cung cấp dữ liệu cho field. • Nếu Row Source Type là Table/Query: Row Source là tên của
Table/Query hoặc là một phát biểu SQL.
• Khi đó Count Column chỉ số lượng các field hiện ra trên màn hình và Bound Column chỉ số thứ tự cột trả về cho control này.
51 Quản trị Cơ sở dữ liệu với Access
• Thuộc tính Lookup (tt) • Nếu Row Source Type là Value List: Row Source là danh sách các giá
trị cách nhau bởi dấu ‘;’ .
52 Quản trị Cơ sở dữ liệu với Access
• Thuộc tính Lookup (tt) • Nếu Row Source Type là Field List : Row Source là tên của một
Table hay Query. Khi đó:
• Column Count: Số cột hiển thị trên màn hình.
• Bound Column: Số thứ tự cột trả về.
53 Quản trị Cơ sở dữ liệu với Access
• Sửa cấu trúc Table: • Right click vào tên table Chọn Design View
54 Quản trị Cơ sở dữ liệu với Access
• Sửa cấu trúc Table: (tt) • Right click vào đầu dòng tên field sẽ xuất hiện popup menu
55 Quản trị Cơ sở dữ liệu với Access
Đặt khóa chính
Thêm field
Xóa field
• Nhập dữ liệu cho Table: Để nhập liệu cho table, ta phải chuyển sang chế độ Datasheet View
56 Quản trị Cơ sở dữ liệu với Access
• Nhập dữ liệu cho Table: (tt) • Right click vào đầu record (record selector) sẽ xuất hiện popup
menu
• Cut, Copy và Paste thường được dùng để thêm/sửa các record giống nhau ở hầu hết các fields, chỉ khác nhau ở một số ít fields.
57 Quản trị Cơ sở dữ liệu với Access
Thêm Record
hoặc đến dòng cuối cùng (có dấu *)
để nhập dữ liệu)
Xóa Record
Câu hỏi:
Chèn Record ở đâu?
• Nhập dữ liệu cho Table: (tt) • Ngoài ra giao diện nhập liệu cho table của Access cũng hỗ trợ nhiều
chức năng giống như ở bảng tính Excel như:
• Format Font
• BackColor
• ForeColor
• Text Alignment
• Sort
• Filter
• ...
58 Quản trị Cơ sở dữ liệu với Access
• BÀI TẬP TẠO TABLE (Attached Word Document)
59 Quản trị Cơ sở dữ liệu với Access
Quản trị Cơ sở dữ liệu với Access 60
• Để quản lý được một hệ thống, ta cần phải quản lý được các đối tượng trong hệ thống và mối quan hệ giữa các đối tượng đó
• Ví dụ hệ thống quản lý điểm sinh viên cần phải quản lý các đối tượng: • Sinh viên, lớp, khoa, môn học...
• Các đối tượng này có mối quan hệ với nhau như sau: • Sinh viên – Lớp: Sinh viên thuộc lớp nào/ Lớp chứa những sinh
viên nào
• Lớp – Khoa: Lớp thuộc khoa nào/ Khoa có những lớp nào
• Sinh viên – Môn học: Sinh viên thi môn học được bao nhiêu điểm
61 Quản trị Cơ sở dữ liệu với Access
• Sinh viên – Lớp: • Mỗi Lớp có thể có nhiều Sinh viên
• Mỗi Sinh viên chỉ thuộc về một Lớp
(Câu hỏi:
Nếu một người muốn học nhiều lớp thì sao?)
• Như vậy mối quan hệ giữa Sinh viên và lớp là mối quan hệ Một- Nhiều, ký hiệu 1-n
62 Quản trị Cơ sở dữ liệu với Access
Nếu một người học nhiều lớp thì người đó sẽ
được cấp nhiều mã sinh viên
khác nhau ở mỗi lớp
• Lớp - Khoa: • Mỗi Khoa có thể có nhiều Lớp
• Mỗi Lớp chỉ thuộc một Khoa
• Đây cũng là mối quan hệ Một- Nhiều
63 Quản trị Cơ sở dữ liệu với Access
• Sinh viên – Môn học: • Mỗi Sinh viên có thể học (và thi) nhiều Môn học
• Mỗi Môn học được học (và thi) bởi nhiều Sinh viên
• Đây là mối quan hệ Nhiều – Nhiều!
• Ngoài ra, trong thực tế còn có mối quan hệ Một – Một nữa • Ví dụ như mối quan hệ giữa Sinh viên với Thẻ sinh viên: Mỗi
Sinh viên có một thẻ sinh viên duy nhất và một Thẻ sinh viên là của một Sinh viên duy nhất
64 Quản trị Cơ sở dữ liệu với Access
• Làm thể nào để quản lý các mối quan hệ?
• Đối với quan hệ 1-n: • Ta thêm vào table phía n một field chứa key của table phía 1
• Field được thêm vào đó được gọi là Khóa ngoại (Foreign Key)
• Ví dụ để quản lý mối quan hệ giữa Sinh viên và Lớp, ta thêm vào table Sinhvien một field chứa MALOP
• Trong table Sinhvien, field MALOP là Khóa ngoại
• Khi đó với bất kỳ một sinh viên nào nằm trong table Sinhvien, ta hoàn toàn biết được sinh viên đó thuộc lớp nào dựa vào...
field MALOP
• Ngược lại, để biết một lớp X có chứa những sinh viên nào, ta...
lọc trong table Sinhvien tất cả những sinh viên có MALOP=X
65 Quản trị Cơ sở dữ liệu với Access
• Đối với quan hệ n-n: • Ta tạo thêm một Table mới có chứa key của các Table liên quan
• Các Key này làm khóa chính của Table mới
• Khi đó, Table mới có quan hệ 1-n với từng table tham gia mối quan hệ n-n trước đó, và mối quan hệ n-n bị loại bỏ
• Ví dụ để quản lý điểm thi là mối quan hệ giữa Sinh viên và Môn học, ta tạo thêm table Ketqua chứa MASV, MAMONHOC và DIEMTHI
• Trong table Ketqua, field MASV và MAMONHOC là khóa chính
• Khi đó ta hòan toàn có thể quản lý được điểm thi của tất cả các môn mà một sinh viên X bất kỳ đã thi bằng cách...
lọc trong table Ketqua tất cả những record có MASV=X
• Tương tự, để biết điểm thi môn Y bất kỳ của tất cả các sinh viên có thi môn đó, ta...
lọc trong table Ketqua tất cả những record có MAMONHOC=Y
66 Quản trị Cơ sở dữ liệu với Access
• Đối với quan hệ 1-1: • Ta thực hiện tương tự như đối với mối quan hệ 1-n. Trong đó
có thể xem một một phía là 1 và phía còn lại là n
67 Quản trị Cơ sở dữ liệu với Access
• Thiết lập các mối quan hệ trong Access
• Access định nghĩa các mối quan hệ như sau: • Hai Table A và B có mối quan hệ 1-1 với nhau nếu ứng với một
Record có khóa (chính/ngoại) là r trong table A có tồn tại duy nhất một Record có khóa (ngoại/chính) là r bên table B
• Hai Table A và B có mối quan hệ 1-n với nhau nếu ứng với một Record có khóa chính là r trong table A có thể có nhiều Record có khóa ngoại là r bên table B
• Câu hỏi: Access định nghĩa mối quan hệ n-n như thế nào?
68 Quản trị Cơ sở dữ liệu với Access
• Chọn tab Database Tools Relationships
69 Quản trị Cơ sở dữ liệu với Access
• Chọn tab Design Show Table • Hoặc Right-click Chọn Show Table
70 Quản trị Cơ sở dữ liệu với Access
• Chọn table tham gia vào mối quan hệ
71 Quản trị Cơ sở dữ liệu với Access
• Drag khóa của table phía 1 sang table phía n và Drop ngay vị trí khóa ngoại
72 Quản trị Cơ sở dữ liệu với Access
Drag & Drop
• Khai báo chi tiết cho mối quan hệ
73 Quản trị Cơ sở dữ liệu với Access
Field liên kết
Kiểm tra giá trị
khóa (MALOP) ở
table phía nhiều
(Sinhvien) phải
ứng với một giá
trị ở table phía 1
(Lop)
Tự động sửa lại
giá trị khóa
(MALOP) của tất
cả các records ở
đầu nhiều
(Sinhvien) nếu ta
sửa MALOP ở đầu
một (Lop)
Nếu ta xóa một
record ở đầu một
(Lop), Access sẽ
tự động xóa tất cả
các records ở đầu
nhiều (Sinhvien)
có liên kết với giá
trị khóa của record
vừa xóa
• Khai báo chi tiết cho mối quan hệ (tt) – Join Type • INNER JOIN
74 Quản trị Cơ sở dữ liệu với Access
• Khai báo chi tiết cho mối quan hệ (tt) – Join Type • LEFT OUTER JOIN
75 Quản trị Cơ sở dữ liệu với Access
• Khai báo chi tiết cho mối quan hệ (tt) – Join Type • RIGHT OUTER JOIN
76 Quản trị Cơ sở dữ liệu với Access
• Chỉnh sửa mối quan hệ:
• Mở lại Relationships Right-click vào đường thể hiện mối quan hệ Chọn Edit Relationship
77 Quản trị Cơ sở dữ liệu với Access
• BÀI TẬP RELATIONSHIP
78 Quản trị Cơ sở dữ liệu với Access
• QUERY LÀ GÌ?
• CÁC LOẠI QUERY
• CÁC CÔNG CỤ TẠO QUERY TRONG ACCESS
• MỘT SỐ TOÁN TỬ, LỆNH VÀ HÀM TRONG SQL
• TẠO QUERY
• Select Query
• Cross-tab Query
• Make-table Query
• Update Query
• Append Query
• Delete Query
• Find duplicate Query
• Find unmatched Query
• QUERY CÓ THAM SỐ 79 Quản trị Cơ sở dữ liệu với Access
• Table & Relationship: Tổ chức, sắp xếp, lưu trữ dữ liệu
• Query: Cập nhật, kiểm tra, truy xuất, tổng hợp dữ liệu
• Công cụ cho phép thực hiện các thao tác trên cơ sở dữ liệu như: • Thêm, sửa, xóa dữ liệu
• Tạo table từ các table/query khác
• Tập hợp, tính toán, tổng hợp dữ liệu từ các table/query khác
• Query là nguồn dữ liệu cung cấp cho Report, Form
80 Quản trị Cơ sở dữ liệu với Access
1. Select Query (Truy vấn Chọn số liệu):
• Chọn cho hiển thị dữ liệu trên một hoặc nhiều tables theo những điều kiện nào đó • Ví dụ: Liệt kê kết quả thi môn THCSC của sinh viên lớp
10QTKD01
• Tính toán và hiển thị dữ liệu theo nhóm • Ví dụ: Đếm số lượng sinh viên theo từng lớp
81 Quản trị Cơ sở dữ liệu với Access
2. CrossTab Query: (Truy vấn Tham chiếu chéo):
• Dùng để tính toán và hiển thị dữ liệu từ dạng dòng thành dạng cột.
• Dùng để lập bảng tổng hợp/phân tích số liệu • Tính toán cho từng nhóm, mỗi nhóm thể hiện trên 1 dòng
• Phân tích giá trị tính được của mỗi nhóm theo các cột
• Ví dụ: Lập bảng kê số lượng sinh viên thi lần 2, học kỳ một cho từng lớp. Yêu cầu thể hiện chi tiết số lượng dự thi từng môn
82 Quản trị Cơ sở dữ liệu với Access
3. Make-Table Query: (Truy vấn Tạo table):
• Cũng là một Select query nhưng sẽ có một table mới được tạo ra để lưu kết quả truy vấn.
4. Update Query: (Truy vấn Cập nhật dữ liệu):
• Dùng để cập nhật dữ liệu trong table. Có thể kèm theo điều kiện hoặc không. • Ví dụ: Cộng 1 điểm cho tất cả các sinh viên thi môn THCS3
83 Quản trị Cơ sở dữ liệu với Access
5. Append Query: (Truy vấn thêm dữ liệu):
• Dùng để thêm record từ table/query A vào table B. Nếu table B có một field F nào đó mà A không có, thì field F bên B nhận giá trị Null
6. Delete Query (Truy vấn xóa dữ liệu)
• Dùng để xóa record khỏi table • Ví dụ xóa khỏi table Sinhvien những records có MALOP =
’07QTKD01’
84 Quản trị Cơ sở dữ liệu với Access
7. Find Duplicate Query (Tìm dữ liệu trùng)
• Dùng để tìm những records có giá trị trùng nhau trên những fields nào đó. Thường dùng để làm sạch dữ liệu • Ví dụ tìm những sinh viên trùng mã sinh viên
8. Find Unmatched Query (Tìm dữ liệu không khớp)
• Dùng để tìm những records có giá trị không hợp lệ giữa hai tables trên một hoặc nhiều fields • Ví dụ tìm những sinh viên có MALOP không có trong table Lop
• Hoặc tìm những records trong table Diem mà giá trị của field MASV không có trong table Sinhvien
85 Quản trị Cơ sở dữ liệu với Access
• Access cung cấp 3 công cụ tạo query là: Query Wizard, Môi trường thiết kế với QBE (Design View) và Ngôn ngữ SQL (SQL View)
• Việc chọn công cụ nào để tạo query là tùy theo: • Phù hợp (hoặc dễ thực hiện) với loại query
• Thói quen, sở thích của người dùng
• Có khi ta dùng công cụ này để tạo trước, sau đó dùng công cụ khác để chỉnh sửa
1. Dùng Query Wizard • Query Wizard sẽ dẫn dắt ta khai báo từng bước để xây dựng một
query
• Query Wizard chỉ hỗ trợ một số loại query
• Ví dụ: Liệt kê danh sách sinh viên gồm các fields: Mã sinh viên, Họ, Tên và Tên lớp
86 Quản trị Cơ sở dữ liệu với Access
• Bước 1: Chọn tab Create sau đó click vào Query Wizard
87 Quản trị Cơ sở dữ liệu với Access
• Bước 2: Chọn loại query muốn tạo, sau đó click OK
88 Quản trị Cơ sở dữ liệu với Access
• Bước 3: Chọn dữ liệu cần truy xuất, sau đó click Next
89 Quản trị Cơ sở dữ liệu với Access
Chọn table và/hoặc query có
chứa dữ liệu cần truy xuất
Chọn fields cần truy xuất
Bạn có thể chọn nhiều hơn 1 table/query
• Bước 4: Đặt tên cho query, sau đó click Finish
90 Quản trị Cơ sở dữ liệu với Access
Đặt tên cho query
Bạn muốn mở query hay chỉnh
sửa lại thiết kế cho query
• Query vừa tạo cho kết quả như sau:
91 Quản trị Cơ sở dữ liệu với Access
• Ngoài việc hỗ trợ tạo các query đơn giản, Query Wizard còn là công cụ giúp ta học cách thiết kế query cũng như học cách viết lệnh SQL
92 Quản trị Cơ sở dữ liệu với Access
Design View
SQL View
2. Dùng Design View
• Design View là môi trường thiết kế query trực quan
• Gồm 2 phần: Phần thứ nhất chứa các tables tham gia truy vấn và phần thứ 2 có dạng khung lưới gọi là QBE (Query By Example)
93 Quản trị Cơ sở dữ liệu với Access
• Bước 1: Chọn tab Create, sau đó click vào Query Design
94 Quản trị Cơ sở dữ liệu với Access
• Bước 2: Thêm các table/query tham gia vào query
95 Quản trị Cơ sở dữ liệu với Access
• Bước 3: Khai báo các tùy chọn • Trong hầu hết các ô trong lưới QBE đều có combo box để ta lựa chọn giá
trị mà không phải gõ vào
• Các ô trên dòng Field dùng để khai báo các fields cần truy xuất
• Các ô trên dòng Table dùng để khai báo các table ứng với field ở trên nó
• Các ô trên dòng Sort có các giá trị: Ascending, Descending và (not sorted)
96 Quản trị Cơ sở dữ liệu với Access
• Bước 3: Khai báo các tùy chọn (tt)
97 Quản trị Cơ sở dữ liệu với Access
(((Sinhvien.HO) Like ('NGUYỄN*')) AND ((Diem.LAN)=1) AND
((Diem.DIEM)=0) AND ((Diem.HOCKY) In (1,2)))
OR
(((Sinhvien.HO) Like ('NGUYỄN*')) AND ((Diem.LAN)=2) AND
((Diem.DIEM)<5) AND ((Diem.HOCKY) In (1,2)))
Nguyên tắc kết hợp các ô điều kiện:
Các ô trên cùng một dòng được kết hợp nhau theo phép AND
Các ô khác dòng được kết hợp nhau theo phép OR
• Xem kết quả: Chọn chế độ xem DataSheet View để xem thử kết quả
98 Quản trị Cơ sở dữ liệu với Access
3. Dùng ngôn ngữ SQL:
• Khi ta tạo query bằng Query Wizard hay trên Design View, Access cũng tự sinh ra câu lệnh SQL tương ứng
99 Quản trị Cơ sở dữ liệu với Access
3. Dùng ngôn ngữ SQL: (tt) • SQL
(Structured Query Language –
ngôn ngữ vấn tin có cấu trúc)
là ngôn ngữ dùng để viết các
query trong Access cũng như
trong hầu hết các hệ quản trị
cơ sở dữ liệu
• Ta có thể viết trực tiếp câu
lệnh SQL thông qua cửa sổ
SQL View
100 Quản trị Cơ sở dữ liệu với Access
3. Dùng ngôn ngữ SQL: (tt)
• Trong các câu lệnh SQL trên, ta thấy có: • SELECT
• FROM
• WHERE
• INNER JOIN
• ORDER BY
• AND
• OR
• IN
• LIKE
101 Quản trị Cơ sở dữ liệu với Access
Từ khóa
Phép toán
Hàm
1. Cú pháp cơ bản cho Select Query:
SELECT <danh sách fields, biểu thức, *> [AS <Caption>]
FROM <danh sách table>
[WHERE <Điều kiện cho dữ liệu>]
[GROUP BY <ds fields>
[HAVING <ĐK cho nhóm>]]
[ORDER BY <ds fields> [ASC/DESC]]
102 Quản trị Cơ sở dữ liệu với Access
1. Cú pháp cơ bản cho Select Query: (tt)
• SELECT <danh sách fields, biểu thức, *> [AS <Caption>]
FROM <danh sách table>:
• Truy xuất những fields (hoặc biểu thức trên fields) nào
• Dấu * thể hiện tất cả các fields của table
• AS <Caption>: Hiển thị với tiêu đề là <caption> - Tùy chọn, nếu không đề cập thì tiêu đề mặc nhiên là thuộc tính Caption của field
• <danh sách table>: Các fields ở trên nằm trong các tables nào
• Vd1:
SELECT Sinhvien.MASV, Sinhvien.HO, Sinhvien.TEN FROM Sinhvien
• Vd2:
SELECT Sinhvien.HO + Sinhvien.TEN AS HoVaTen FROM Sinhvien
• Vd3: SELECT Sinhvien.*, Lop.TENLOP FROM Sinhvien, Lop
103 Quản trị Cơ sở dữ liệu với Access
1. Cú pháp cơ bản cho Select Query: (tt)
• [WHERE <Điều kiện cho dữ liệu>]: Chỉ những records thỏa điều kiện mới được truy xuất
• Vd:
SELECT Sinhvien.MASV, Sinhvien.HO, Sinhvien.TEN
FROM Sinhvien
WHERE Sinhvien.Malop = ’12QTKD01’
104 Quản trị Cơ sở dữ liệu với Access
1. Cú pháp cơ bản cho Select Query: (tt)
• [GROUP BY <ds fields>
[HAVING <ĐK cho nhóm>]]
• Gom nhóm số liệu theo field nào - Thường kèm theo cho các hàm tính toán số liệu theo nhóm như Sum (tính tổng), Average (tính trung bình cộng), Count (đếm số lượng)…)
• [HAVING <ĐK cho nhóm>]]: Đ.kiện hạn chế cho các dòng kết quả
• Vd1:
SELECT Sinhvien.MALOP, Count(*) AS [Số lượng SV] FROM Sinhvien
GROUP BY Sinhvien.MALOP
• Vd2:
SELECT Sinhvien.MALOP, Count(*) AS [Số lượng SV] FROM Sinhvien
WHERE Left(Sinhvien.MALOP,2)=‘10’ GROUP BY Sinhvien.MALOP
HAVING Count(*) >10
105 Quản trị Cơ sở dữ liệu với Access
1. Cú pháp cơ bản cho Select Query: (tt)
• [ORDER BY <ds fields> [ASC/DESC]]
• Sắp xếp dữ liệu theo fields nào.
• ASC: Sắp tăng dần (mặc định); DESC: Sắp giảm dần
• Vd:
SELECT Diem.MASV, Diem.MAMH, Count(*) AS [Số lần thi],
Avg(Diem.DIEM) AS [Trung bình]
FROM Diem
GROUP BY Diem.MASV, Diem.MAMH
ORDER BY Diem.MASV, Diem.MAMH DESC
106 Quản trị Cơ sở dữ liệu với Access
2. Một số phép toán thường dùng:
• Phép toán số học: +; -; *; /; \; ^ 1 + 1.5 = 2.5
3 - 1.5 = 1.5
2 * 5 = 10
10.5 / 3 = 3.5
10 \ 3 = 3
2 ^ 3 = 8
• Phép toán so sánh: >;>=;<;<=;=;<>
• Phép toán Logic: AND; OR; NOT
107 Quản trị Cơ sở dữ liệu với Access
2. Một số phép toán thường dùng: (tt)
• Các phép toán đặc biệt: • Toán tử nối chuỗi &: ‘Microsoft’ & ‘-Access’ = ‘Microsoft-Access’
• Toán tử so sánh tương đối Like <pattern>:
• <pattern> (mẫu so sánh) là đó là một dãy ký tự bất kỳ, trong đó có các ký tự có ý nghĩa đặc biệt sau đây:
• ? đại diện cho một ký tự bất kỳ tại vị trí có dấu chấm hỏi
• * đại diện cho một dãy ký tự bất kỳ tại vị trí đó
• # đại diện cho các ký số
• [<ký tự đầu>-<ký tự cuối>]: Biểu diễn d.sách được phép cho 1 ký tự
• Ví dụ:
• HO LIKE “Nguyễn*”
• MALOP LIKE “##?[D-T]*”
• MALOP LIKE “##?[C-T]*”
• MALOP LIKE “##Q[C-T]*”
108 Quản trị Cơ sở dữ liệu với Access
2. Một số phép toán thường dùng: (tt)
• Các phép toán đặc biệt: • Is Null/ Is Not Null: Kiểm tra giá trị của một field có phải là Null
hay không
SELECT Sinhvien .* FROM Sinhvien WHERE Sinhvien.TEN Is Not Null
• Between <giá trị 1> and <giá trị 2>: Lấy các giá trị thuộc đoạn [giá trị 1, giá trị 2]
• Ví dụ:
• 1 Between 1 And 3 cho kết quả là True
• 3 Between 1 And 3 cho kết quả là True
• 3.1 Between 1 And 3 cho kết quả là False
109 Quản trị Cơ sở dữ liệu với Access
3. Một số hàm thường dùng: • MIN: Trả về trị tối thiểu
• MAX: Trả ra trị tối đa
SELECT MAX(Diem.DIEM) AS [Điểm lớn nhất], Min(Diem.DIEM) AS
[Điểm nhỏ nhất] FROM Diem WHERE LEFT(Diem.MASV,2)='10‘
• SUM: Tính tổng
• AVG: Tính trung bình
• COUNT: Đếm số mẫu tin
110 Quản trị Cơ sở dữ liệu với Access
3. Một số hàm thường dùng: (tt) • LEFT(<Chuỗi>,<n>): Cắt n ký tự bên trái của chuỗi
• RIGHT(<Chuỗi>,<n>): Cắt n ký tự bên phải của chuỗi
• MID(<Chuỗi>,<i>,<n>): Cắt n ký tự của chuỗi, bắt đầu tại vị trí i
• TRIM(<Chuỗi>): Cắt bỏ khoảng trắng ở 2 đầu chuỗi
• IIF(<Điều kiện>,<Giá trị 1>,<Giá trị 2>): Trả về giá trị 1 nếu điều kiện đúng, ngược lại trả về giá trị 2
• Các hàm về thời gian:
SELECT now(),Date(), year(now()), month(now()), day(now()),
hour(now()), minute(now()), second(now())
111 Quản trị Cơ sở dữ liệu với Access
• TẠO QUERY
• Phần này sẽ tìm hiểu cách tạo các loại query
• Vì ta đã tìm hiểu về các loại query và cách thức sử dụng các công cụ tạo query rồi, nên ta sẽ tìm hiểu cách tạo query thông qua ví dụ
• Ta sẽ lần lượt tìm hiểu cách tạo các loại query sau:
1. Select Query
2. Cross-tab Query
3. Make-table Query
4. Update Query
5. Append Query
6. Delete Query
7. Find duplicate Query
8. Find unmatched Query
112 Quản trị Cơ sở dữ liệu với Access
• Ví dụ 1: In bảng điểm thi lần 2, học kỳ 1 của tất cả các sinh viên. Bảng điểm có dạng:
MÃ SV | HỌ | TÊN | MÃ MÔN HỌC | ĐIỂM
• Danh sách được sắp theo thứ tự tăng dần của Mã sinh viên. Trong cùng một mã sinh viên, thứ tự các môn học cũng được sắp tăng dần
113 Quản trị Cơ sở dữ liệu với Access
• 1. Phân tích yêu cầu: • Các tables và fields cần truy xuất:
Diem.LAN, Diem.HOCKY, Diem.MASV, Sinhvien.HO, Sinhvien.TEN,
Diem.MAMH, Diem.DIEM
• Điều kiện trên dữ liệu:
• Diem.LAN = 2
• Diem.HOCKY = 1
• Yêu cầu khác:
• Sắp thứ tự theo MASV, MAMH
114 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE: • Bước 1: Chọn tab Create, click vào Query Design
115 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE: • Bước 2: Add vào 2 table Diem và Sinhvien
116 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE: • Bước 3: Thiết kế trên lưới QBE
• Các table.fields theo yêu cầu
• Sort: Diem.MASV ASC; Diem.MAMH ASC
• Show: Không hiển thị diem.LAN và Diem.HOCKY
• Criteria: Diem.LAN=1 AND Diem.HOCKY=1
• Không thêm điều kiện OR
117 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE: • Bước 4: Xem kết quả:
118 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE: • Câu lệnh SQL do Access sinh ra cho query trên như sau: (Xem ở cửa
sổ SQL View)
119 Quản trị Cơ sở dữ liệu với Access
Câu hỏi: Tại sao trong câu lệnh SQL này:
- Không có 2 fields Diem.LAN và Diem.HOCKY sau SELECT?
- Biểu thức INNER JOIN... sau FROM do đâu mà có?
• Select Query có kết nhóm (có GROUP BY)
• Ví dụ 2: Hãy thống kê số lượng sinh viên theo từng lớp tham gia thi lần 2 học kỳ 1. Chỉ lấy những lớp có số lượng tham gia thi ít hơn 5. Bảng in ra có dạng:
MÃ LỚP | TÊN LỚP | SỐ LƯỢNG SV THI
• Danh sách được sắp theo thứ tự giảm dần của SỐ LƯỢNG SV THI, sau đó là thứ tự tăng dần của Mã lớp.
120 Quản trị Cơ sở dữ liệu với Access
• 1. Phân tích yêu cầu: • Các tables và fields cần truy xuất:
Lop.MALOP, Lop.TENLOP, Diem.LANTHI, Diem.HOCKY
• Gom nhóm theo: Lop.MALOP
• Điều kiện trên dữ liệu:
• Diem.LAN = 2
• Diem.HOCKY = 1
• Điều kiện cho nhóm: Số lượng SV thi <5
• Yêu cầu khác:
• Sắp thứ tự theo [Số lượng SV thi] giảm dần, sau đó đến Mã lớp tăng dần
121 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE: • Bước 1: Chọn tab Create, click vào Query Design
122 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE: • Bước 2: Add vào 3 tables Lop, Sinhvien và Diem
123 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE: • Bước 3: Click vào nút Total trên tab Design để tạo lưới QBE có
dòng Total
124 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE:
• Bước 4: Thiết kế trên lưới QBE
• Các table.fields theo yêu cầu
• Sort: Diem.MASV ASC; Diem.MAMH ASC
• Show: Chỉ hiển thị Lop.MALOP, Lop.TENLOP và [Số lượng SV thi]
• Criteria:
• WHERE: Diem.LAN=1 AND Diem.HOCKY=1
• HAVING: [Số lượng SV thi]
125 Quản trị Cơ sở dữ liệu với Access
- Khi tạo query kết nhóm ta cần đặt cột nhóm dữ liệu đứng ở
đầu các cột của lệnh Select.
• 2. Thực hiện bằng QBE: • Bước 5: Xem kết quả:
126 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE: • Câu lệnh SQL do Access sinh ra cho query trên như sau: (Xem ở cửa
sổ SQL View)
127 Quản trị Cơ sở dữ liệu với Access
- Thứ tự các cột được chỉ định trong mệnh đề SELECT phải
như thứ tự các cột chỉ định trong mệnh đề GROUP BY
• Ví dụ: Lập bảng kê số lượng sinh viên thi lần 2, học kỳ một cho từng lớp. Yêu cầu thể hiện chi tiết số lượng dự thi từng môn từng môn theo dạng:
Mã Lớp | Tên Lớp | SLSV thi | Môn 1 | Môn 2 | ...
128 Quản trị Cơ sở dữ liệu với Access
• Thực hiện bằng QBE: • Bước 1: Chọn tab Create, click vào Query Design
129 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE: • Bước 2: Add vào 3 tables Lop, Sinhvien và Diem
130 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE: • Bước 3: Click vào nút Crosstab trên tab Design để tạo lưới QBE có
dòng Total
131 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE:
• Bước 4: Thiết kế trên lưới QBE
132 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE: • Bước 5: Xem kết quả:
133 Quản trị Cơ sở dữ liệu với Access
• 2. Thực hiện bằng QBE: • Câu lệnh SQL do Access sinh ra cho query trên như sau: (Xem ở cửa
sổ SQL View)
134 Quản trị Cơ sở dữ liệu với Access
• Ví dụ: Lập danh sách các sinh viên họ Nguyễn, thi học kỳ 1 hoặc học kỳ 2, lần 1 được 0 điểm hoặc thi lần 2 <5 điểm. Lưu danh sách vào table mới với tên là New-Table
• Cách thực hiện: • 1. Tạo Select Query lấy dữ liệu theo yêu cầu (tham khảo cách tạo Select
Query ở phần trước)
• 2. Trong chế độ Design View, click nút lệnh Make Table
135 Quản trị Cơ sở dữ liệu với Access
• 3. Nhập tên table mới để chứa kết quả • Nếu Table mới nằm ở một Database khác thì chọn Another
Database
• Nhập tên table mới xong bấm OK
136 Quản trị Cơ sở dữ liệu với Access
• 4. Click nút lệnh Run để chạy query
137 Quản trị Cơ sở dữ liệu với Access
• Xem nội dung của table mới tạo ra:
138 Quản trị Cơ sở dữ liệu với Access
• Câu lệnh SQL của query:
139 Quản trị Cơ sở dữ liệu với Access
• Ví dụ: Nâng lên thành 5 điểm cho những sinh viên thi lần 2, học kỳ 2 mà kết quả được 4 điểm
• Cách thực hiện:
• 1. Tạo Select Query lấy dữ liệu thỏa yêu cầu (tham khảo cách tạo Select Query ở phần trước)
• Xem thử kết quả của Select Query:
140 Quản trị Cơ sở dữ liệu với Access
• 2. Trên màn hình Design View, click vào nút lệnh Update
141 Quản trị Cơ sở dữ liệu với Access
• 3. Trên lưới QBE, tại dòng Update To của cột DIEM, ta nhập số 5 là giá trị mới cần update
• Lúc này nếu ta xem ở chế độ DataSheet View, ta vẫn thấy giá trị cũ. Muốn giá trị mới được update, ta phải click nút Run
142 Quản trị Cơ sở dữ liệu với Access
• 4. Click nút lệnh Run để chạy query. Click Yes để update • Nếu xem lại ở chế độ DataSheet View, ta không còn thấy những
records thỏa điều kiện nữa
143 Quản trị Cơ sở dữ liệu với Access
• Câu lệnh SQL tương ứng với query trên như sau:
144 Quản trị Cơ sở dữ liệu với Access
• Ví dụ: Lập danh sách các sinh viên họ Lê, thi học kỳ 1 hoặc học kỳ 2, lần 1 0 điểm hoặc thi lần 2 <5 điểm. Ghép danh sách vào table New-Table đã có
• Cách thực hiện: • 1. Tạo Select Query lấy dữ liệu theo yêu cầu (tham khảo cách tạo Select
Query ở phần trước)
• 2. Trong chế độ Design View, click nút lệnh Append
145 Quản trị Cơ sở dữ liệu với Access
• 3. Chọn table đã có để ghép kết quả vào • Nếu Table đã có nằm ở một Database khác thì chọn Another
Database
• Xong bấm OK
146 Quản trị Cơ sở dữ liệu với Access
• 4. Chọn fields cần append trên dòng Append To ở lưới QBE
147 Quản trị Cơ sở dữ liệu với Access
• 5. Click nút lệnh Run để chạy query. Click Yes để đồng ý
148 Quản trị Cơ sở dữ liệu với Access
• Xem nội dung của table New-Table:
149 Quản trị Cơ sở dữ liệu với Access
3 records mới được thêm vào
• Câu lệnh SQL của query:
150 Quản trị Cơ sở dữ liệu với Access
• Ví dụ: Xóa khỏi table New-Table những sinh viên đạt 4 điểm ở lần thi thứ 2
• Cách thực hiện: • 1. Tạo Select Query lấy dữ liệu thỏa yêu cầu (tham khảo cách tạo Select
Query ở phần trước)
• Xem thử kết quả của Select Query:
151 Quản trị Cơ sở dữ liệu với Access
• 2. Trong chế độ Design View, click nút lệnh Delete
152 Quản trị Cơ sở dữ liệu với Access
• 3. Click nút lệnh Run để chạy query: • Thông báo: Bạn sắp xóa 4 dòng từ Table đã chỉ định – Một khi bạn
click Yes, bạn không thể dùng lệnh Undo... Bạn có chắc chắn không?
• Nếu chắn chắn xóa click Yes để đồng ý
153 Quản trị Cơ sở dữ liệu với Access
• Xem nội dung của table New-Table:
154 Quản trị Cơ sở dữ liệu với Access
Không còn những records như
điều kiện
• Câu lệnh SQL của query:
155 Quản trị Cơ sở dữ liệu với Access
• Với Find Duplicate Query, ta dùng Query Wizard để thực hiện sẽ thuận lợi hơn
• Ví dụ: Tìm những sinh viên có trùng mã sinh viên
• 1. Click nút lệnh Query Wizard
156 Quản trị Cơ sở dữ liệu với Access
• 2. Chọn loại wizard là Find Duplicate Query Wizard. Xong click OK
157 Quản trị Cơ sở dữ liệu với Access
• 3. Chọn Table cần lấy dữ liệu. Click Next
158 Quản trị Cơ sở dữ liệu với Access
• 4. Chọn fields cần xem xét (click >). Click Next
159 Quản trị Cơ sở dữ liệu với Access
• 5. Chọn fields cần hiển thị. Click Next
160 Quản trị Cơ sở dữ liệu với Access
• 6. Đặt tên cho Query – Chọn xem kết quả hay mở query lên để chỉnh sửa. Click Finish
161 Quản trị Cơ sở dữ liệu với Access
• 7. Xem kết quả • Vì dữ liệu của ta không có sinh viên trùng mã sinh viên nên kết quả
là rỗng.
162 Quản trị Cơ sở dữ liệu với Access
• Câu lênh SQL tương ứng: • Ta thấy bản chất của query dạng này là so sánh field dữ liệu trong table
với một table tạm
163 Quản trị Cơ sở dữ liệu với Access
• Ví dụ 1: Ví dụ tìm những sinh viên có MALOP không có trong table Lop
• Bước 1: Chọn tab Create Chọn Query Wizard. Sau đó chọn Find Unmatched Query Wizard. Xong click OK
164 Quản trị Cơ sở dữ liệu với Access
• Bước 2: Chọn table chứa những records cần tìm (Có MALOP không nằm trong table Lop). Ở đây là table Sinhvien. Click Next để tiếp tục.
165 Quản trị Cơ sở dữ liệu với Access
• Bước 3: Chọn table chứa những records có liên quan. Ở đây là table Lop. Click Next để tiếp tục.
166 Quản trị Cơ sở dữ liệu với Access
• Bước 4: Chọn các fields cần tìm giá trị không khớp. Ở đây là field MALOP. Click Next để tiếp tục.
167 Quản trị Cơ sở dữ liệu với Access
Sau khi chọn field cần đối chiếu giữa
2 table, click vào đây để xác nhận
• Bước 6: Đặt tên cho Query . Click Finish.
168 Quản trị Cơ sở dữ liệu với Access
• Kết quả:
169 Quản trị Cơ sở dữ liệu với Access
• Lệnh SQL cho query:
170 Quản trị Cơ sở dữ liệu với Access
• QUERY CÓ THAM SỐ • Nếu phải thường xuyên thực hiện cùng một query nhưng mỗi lần
chạy với điều kiện (Criteria) khác nhau, thay vì phải thiết kế lại query cho mỗi lần thực hiện, Access hỗ trợ ta thiết kế query với tham số. Mỗi lần thực hiện query, Access sẽ hiện hộp thoại nhận tham số để ta nhập vào.
• Ví dụ, thiết kế query liệt kê danh sách sinh viên theo lớp, với mã lớp được nhập vào mỗi khi thực hiện query
171 Quản trị Cơ sở dữ liệu với Access
Tham số nhập vào có
thể là số, text, ngày
nhưng không được là
biểu thức
• Cách đưa tham số vào query: • Tạo select query như bình thường nhưng trong ô chứa điều kiện
ta nhập vào câu thông báo nằm trong cặp dấu []
• Ví dụ: Thiết kế query liệt kê danh sách sinh viên theo lớp, với mã lớp được nhập vào mỗi khi thực hiện query
172 Quản trị Cơ sở dữ liệu với Access
Câu thông báo nhập tham số
• Cách đưa tham số vào query: (tt) • Khi thức hiện query, một bảng thông báo nhập tham số sẽ hiện ra
với lới nhắc như ta đã thiết kế.
• Ta nhập giá trị của tham số vào và nhấn OK
173 Quản trị Cơ sở dữ liệu với Access
• Cách đưa tham số vào query: (tt) • Kết quả:
174 Quản trị Cơ sở dữ liệu với Access
• Cách đưa tham số vào query: (tt) • Câu lênh SQL tương ứng:
175 Quản trị Cơ sở dữ liệu với Access
• GIỚI THIỆU
• CÁC THÀNH PHẦN TRONG FORM
• MỘT SỐ KHÁI NIỆM TRONG FORM
• CÁC LOẠI FORM THÔNG DỤNG
• CÁC DẠNG FORM DỮ LIỆU
• TẠO FORM
• MỘT SỐ THUỘC TÍNH CƠ BẢN CỦA FORM
176 Quản trị Cơ sở dữ liệu với Access
• Form (Biểu mẫu) dùng để nhập/xem dữ liệu
• Nhập/xem nội dung table bằng Datasheet View: • Khó hiểu
• Không an toàn
• Ngoài ra Form còn được dùng để trao đổi giữa người dùng và hệ thống
177 Quản trị Cơ sở dữ liệu với Access
178 Quản trị Cơ sở dữ liệu với Access
Đầu Form
Chi tiết Form
Cuối Form
• FORM DỮ LIỆU: • Là loại form thể hiện dữ liệu của một hoặc nhiều tables.
• Loại form này có thể cho phép người dùng xem/cập nhật dữ liệu vào table.
• Ví dụ: Để cho phép người dùng nhập điểm thi cho sinh viên, ta thiết kế form có dạng như sau:
179 Quản trị Cơ sở dữ liệu với Access
...
Tiêu đề form
Dữ liệu nguồn lấy từ table
Các nút điều
khiển cập nhật
dữ liệu
Các nút dùng để di chuyển giữa các records trong table
• Thực hiện:
1. Click chọn table Diem, sau đó chọn tab Create --> Form
180 Quản trị Cơ sở dữ liệu với Access
2. Tại màn hình Layout View,
ta điều chỉnh lại nhãn, kích
thước và vị trí các đối tượng:
181 Quản trị Cơ sở dữ liệu với Access
Rê chuột vào đây. Khi
thấy xuất hiện mũi tên 2
đầu Đông-Tây thì click
giữ chuột và kéo để thay
đổi kích thước.
2. Tại màn hình Layout View, ta điều chỉnh lại nhãn, kích thước và vị trí các đối tượng:
182 Quản trị Cơ sở dữ liệu với Access
Chọn đối tượng muốn di chuyển.
Nhấn các phím mũi tên lên hoặc
xuống để thay đổi vị trí
• CHÚ Ý:
Các đối tượng trên form như Label, Combo Box, Text Box cho từng field sẽ được Access tự động sinh ra, tùy theo thuộc tính Display Control của field trong table.
183 Quản trị Cơ sở dữ liệu với Access
3. Chuyển sang chế độ Design View để thêm một số đối tượng và khai báo các Properties:
184 Quản trị Cơ sở dữ liệu với Access
Rê chuột vào đây. Khi thấy
xuất hiện mũi tên 2 đầu Bắc-
Nam thì click giữ chuột và
kéo để thay đổi kích thước
vùng detail
• 3. Thêm nút <Thêm>:
• Click biểu tượng Button trên tab Design
185 Quản trị Cơ sở dữ liệu với Access
• Nhấn giữ chuột trái và kéo trên form để vẽ button lên đó. Xong thả chuột ra.
186 Quản trị Cơ sở dữ liệu với Access
• Đặt Caption cho button là &Thêm (Sẽ được kết quả là Thêm). Click Next
187 Quản trị Cơ sở dữ liệu với Access
• Đặt tên cho button. Click Finish
188 Quản trị Cơ sở dữ liệu với Access
• Thêm các nút khác cũng tương tự. Nhưng chú ý:
• Nút <Ghi>: Ta chọn Categories là Record Operations và Actions là Save Record.
• Nút <Xóa>: Ta chọn Categories là Record Operations và Actions là Delete Record.
• Nút <Thoát>: Ta chọn Categories là Form Operations và Actions là Close Form.
189 Quản trị Cơ sở dữ liệu với Access
4. Khai báo một số Properties cho form:
• Click vào vùng màu xanh ở ngoài để cửa số Properties hiện lên các thuộc tính cho form. Ta chú ý một số thuộc tính sau: (Nằm ở tab Format và tab Other của cửa số Properties) • Caption = Nhập điểm thi
• Border Style = Thin
• Record Selectors = No
• Navigation Button = Yes
• Moveable = Yes
• Pop Up = Yes
• (Sinh viên tìm hiểu thêm bằng cách thay đổi giá trị các thuộc và chạy thử để xem sự khác biệt).
190 Quản trị Cơ sở dữ liệu với Access
5. Lưu form:
• Click nút Save (Hoặc Save as...). Sau đó nhập tên form và click OK
191 Quản trị Cơ sở dữ liệu với Access
6. Chạy thử form:
192 Quản trị Cơ sở dữ liệu với Access
• FORM HỘP THOẠI: • Là loại form dùng để trao đổi giữa người dùng với hệ thống như
nhập tham số hoặc để xác nhận một yêu cầu nào đó của người dùng.
• Ví dụ: Khi người dùng click <Tìm...>, hệ thống sẽ mở một hộp thoại để người dùng khai báo một số thông tin cần thiết cho việc tìm kiếm như mã sinh viên, họ tên...
193 Quản trị Cơ sở dữ liệu với Access
• Ví dụ tạo Report ” Danh sách Sinh viên” như sau:
194 Quản trị Cơ sở dữ liệu với Access
1. Click chọn table Sinhvien, sau đó chọn tab Create --> Report
195 Quản trị Cơ sở dữ liệu với Access
2. Chuyển sang chế độ Design để chỉnh sửa kích thước và vị trí các đối tượng
• Ta cũng có thể xóa đi những cột không cần hiển thị trong report
196 Quản trị Cơ sở dữ liệu với Access
3. Save report: Click Save hoặc Save as. Nhập tên report và click OK
4. Chuyển sang chế độ Report View hoặc Print Preview để xem Report.
197 Quản trị Cơ sở dữ liệu với Access
3. Save report: Click Save hoặc Save as. Nhập tên report và click OK
198 Quản trị Cơ sở dữ liệu với Access