+ Reports báo cáo: Là kết quả của quá trình khai thác dữ liệu, dùng để in ấn hoặc thể hiện các báo cáo có nguồn gốc từ bản hoặc truy vấn + Pages trang: cho phép chúng ta tạo ra trang Web
Trang 1GIỚI THIỆU
iáo trình này là sự đúc kết kinh nghiệm của tác giả trong giảng dạy các khoá đào tạo về Access cũng như kinh nghiệm sử dụng Access làm hệ quản trị cơ sở dữ liệu và công cụ phát triển phần mềm Hầu hết nội dung trình bày trong giáo trình đều bám theo những bài tập thực hành cụ thể Do vậy, sau khi đọc xong và thực hành theo trình tự cuốn sách này, bạn đọc gần như có thể thiết kế và xây dựng được những ứng dụng về quản lý thông tin Cụ thể ở đây là: Quản lý lương cán bộ một cơ quan và Quản lý bán hàng tại một cửa hàng
Đối tượng chính của giáo trình là sinh viên, viên các trung tâm đào tạo CNTT có học môn Access Tất nhiên cũng hoàn toàn phù hợp cho những ai quan tâm học hỏi môn học này bởi lẽ các nội dung đều được trình bày rất trực quan, có thứ tự và kết quả rõ ràng
Chúc các bạn có một kết quả học tập thật tốt tại HueITC
Trang 2HỆ QUẢN TRỊ CSDL MS ACCESS 2003
BÀI 1 TỔNG QUAN VỀ MS ACCESS
Mục đích
Giúp học viên nắm được mô hình CSDL quan hệ
Giúp học viên hiểu được khái niệm HQT CSDL quan hệ và các chức năng của một HQT CSDL
Học viên biết được khả năng ứng dụng của Microsoft Access đối với các bài toán quản lý vừa và nhỏ
Giúp cho học viên có cái nhìn tổng quan về môi trường làm việc của Microsoft Access
Giúp sinh viên biết cách thao tác đối với một CSDL
Nội dung
Một số khái niệm cơ bản
Giới thiệu về HQT CSDL Microsoft Access
Sơ lược về cách phân tích để chuẩn bị xây dựng một cơ sở dữ liệu
Các thao tác cơ bản đối với CSDL
Trang 31 Các khái niệm cơ bản
a Cơ sở dữ liệu Database CSDL (database) là một tập hợp có cấu trúc các dữ liệu có liên quan với nhau theo một hay nhiều thành phần
Ví dụ: Danh bạ điện thoại
b Cơ sở dữ liệu quan hệ Relational database CSDL quan hệ là một CSDL dựa trên nền tảng là các bảng (table) có quan
hệ với nhau
c Hệ quản trị CSDL Database management system
Hệ quản trị CSDL là một phần mềm dùng để quản lý CSDL trong đó có chứa các chức năng như: tạo, chỉnh sửa, xoá, truy vấn, thống kê, lập biểu mẫu và báo cáo dữ liệu…
Ví dụ: CSDL Ms Access, My SQL…
d Trường dữ liệu và bản ghi
Trường dữ liệu Field
Một trường (Field) chứa một loại thông tin về một khoản mục của một khái niệm nào đó và mỗi trường sẽ có một tên riêng khác nhau
Bản ghi Record
Một bản ghi (record) là một tập hợp các thông tin có liên quan đến một khoản mục nào đó trong bảng cơ sở dữ liệu, có thể xem bảng ghi là một hàng trong bảng
e Khoá chính Primary key
- Khóa chính (Primary key) dùng để xác định tính duy nhất của một bản ghi trong bảng, dùng để phân biệt bản ghi này với bản ghi khác
- Đặc điểm của khoá chính:
+ Khoá chính dùng để thiết lập quan hệ giữa các bảng + Nếu trường nào đó được thiết lập khoá chính thì:
Dữ liệu trên trường đó không được trùng nhau
Giá trị bên trong phải khác rỗng (null)
- Trong một bảng có thể có một trường hay nhiều trường là khoá chính
Trang 4b Các tính năng của HQT CSDL quan hệ
- Khả năng lưu trữ dữ liệu lâu dài
- Truy nhập số lượng lớn thông tin một cách hiệu quả
- Được xây dựng trên mô hình dữ liệu (quan hệ)
- Ngôn ngữ cấp cao để định nghĩa và thao tác dữ liệu
- Đồng bộ các truy nhập cạnh tranh
- Kiểm tra tính đúng đắn của dữ liệu và thẩm quyền truy nhập
- Phục hồi
c Khả năng và ứng dụng của Access
- Access là HQTCSDL quan hệ, phù hợp với các bài toán quản lý vừa và nhỏ
- Access cung cấp hệ thống công cụ phát triển (Development tools) khá mạnh giúp các nhà phát triển phần mềm đơn giản trong việc xây dựng trọn gói các dự án phần mềm quản lý qui mô vừa và nhỏ
- Access được dùng để:
+ Xây dựng hệ cơ sở dữ liệu (phần cơ sở dữ liệu, còn phần phát triển phần mềm có thể sử dụng các công cụ khác để làm như: Visual Basic, Visual C, Delphi, Net, …)
+ Xây dựng chọn gói các phần mềm quản lý quy mô vừa và nhỏ
d Chế độ làm việc của Access
- 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
e Ngôn ngữ định nghĩa và thao tác dữ liệu
- Ngôn ngữ QBE (Query By Example): cho phép bạn xây dựng các truy vấn dữ liệu bằng cửa sổ thiết kế và bằng các công cụ có sẵn
Trang 5- Ngôn ngữ SQL (Structure Query Language): Cho phép bạn truy vấn dữ liệu bằng các câu lệnh có cấu trúc
3 Các thao tác cơ bản đối với chương trình MS Access
b Khởi động chương trình
C1: Double_Click vào biểu tượng MS Access trên nền Desktop
C2: Start/Programs/Microsoft office/Microsoft office Access
3 Các bước phân tích để xây dựng một CSDL
Bước 1: Xác định mục tiêu khai thác CSDL của chúng ta Điều này quyết định các loại sự kiện chúng ta sẽ đưa vào MS Access
Bước 2: Xác định các bảng dữ liệu cần thiết Mỗi đối tượng thông tin sẽ hình thành một bảng trong CSDL của chúng ta
Trang 6Bước 3: Sau khi đã xác định xong các bảng cần thiết, tiếp đến ta phải chỉ
rõ thông tin nào cần quản lý trong mỗi bảng, đó là xác định các trường Mỗi loại thông tin trong bảng gọi là trường Mọi mẫu in trong cùng một bảng đều có chung cấu trúc các trường Ví dụ: Trong lý lịch khoa học cán bộ, những trường (thông tin) cần quản lý là: “HỌ VÀ TÊN”, “CHUYÊN MÔN”, “HỌC VỊ”,
“HỌC HÀM”,
Bước 4: Xác định các mối quan hệ giữa các bảng Nhìn vào mỗi bảng dữ liệu và xem xét dữ liệu trong bảng này liên hệ thế nào với dữ liệu trong bảng khác Thêm trướng hoặc tạo bảng mới để làm rõ mối quan hệ này Đây là vấn đề hết sức quan trọng, tạo được quan hệ tốt sẽ giúp chúng ta nhanh chóng truy tìm tìm và kết xuất dữ liệu
Bước 5: Tinh chế, hiệu chỉnh lại thiết kế Phân tích lại thiết kế ban đầu để tim lỗi, tạo bảng dữ liệu và nhập vào vài bản ghi, thử xem CSDL đó phản ánh thế nào với những yêu cầu truy xuất của chúng ta, có rút được kết quả đúng từ những bảng dữ liệu đó không Thực hiện các chỉnh sửa thiết kế nếu thấy cần thiết
4 Các thao tác cơ bản đối với CSDL
a Tạo CSDL
Nhấn vào Menu File, chọn New hoặc kích chọn vào biểu tượng New trên thanh Standard xuất hiện hộp thoại New File
Tại hộp thoại này ta chọn Blank Database
Xuất hiện hộp thoại File new database
Trang 7Hình3: Tạo mới một CSDL
Tại hộp thoại File new database ta thực hiện:
+ Xác định vị trí chứa CSDL cần tạo mới trong mục: Save in
+ Nhập vào tên của CSDL cần tạo vào mục: File name
Nhấn Create để khởi tạo một CSDL xuất hiện một cửa sổ Database
Hình4: Cửa sổ của một CSDL
Trang 8Đây là một cửa sổ quan trọng của MS Access, gồm:
Hệ thống Menu với các menu: File, Edit View,…
Tiêu đề Database: Cho biết tên của CSDL
Các đối tượng công cụ trong Objects: Tables, Queries, Fróm, Reports, Pages, Macros, Modules dùng để xây dựng các đối tượng trong chương trình MS Access
Tại hộp thoại Open ta thực hiện:
+ Xác định vị trí chứa CSDL cần mở trong mục: Look in
+ Chọn CSDL cần mở
Nhấn Open
c Đóng CSDL
C1: File/Close
C2: Kích vào biểu tượng Close trên hệ thống Menu lệnh
5 Các thành phần trong cửa sổ MS Access
Trang 9Một CSDL Access bao gồm 7 thành phần sau:
Hình 6: Các thành phần của một CSDL
+ Tables (bảng): Nơi trực tiếp chứa dữ liệu Access có thể gộp tới 32768 đối tượng (tổ hợp các bảng, biểu mẫu, báo biểu, …), và có thể mở cùng một lúc tới 1024 bảng nếu như có đủ sẵn tài nguyên 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, …
+ Query (truy vấn): Là thành phần truy xuất vào CSDL, thực hiện các thao tác liên quan đến: thêm mới, chỉnh sửa, cập nhật và dữ liệu ra để hiển thị
+ Froms (biểu mẫu): 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
+ Reports (báo cáo): Là kết quả của quá trình khai thác dữ liệu, dùng để in
ấn hoặc thể hiện các báo cáo có nguồn gốc từ bản hoặc truy vấn
+ Pages (trang): cho phép chúng ta tạo ra trang Web có chứa CSDL động được lấy từ một CSDL nào đó, người dùng có thể truy cập CSDL thông qua trang Web
+ Macros (Tập lệnh): Là công cụ cung cấp cho người sử dụng tạo ra hành động đơn giản trong CSDL MS Access như mở, báo cáo, thực hiện truy vấn mà không cần phải nắm về ngôn ngữ lập trình Visual Basic
+ Modules (Đoạn chương trình): Với ngôn ngữ Visual Basic cho phép người xây dựng một đoạn chương trình riêng của mình để thực thi một hành động nào đó
Trang 10BÀI 2 BẢNG DỮ LIỆU TABLE
Mục đích
Giúp học viên nắm được khái niệm về bảng dữ liệu Tables
Giúp sinh viên biết cách xây dựng và thao tác cơ bản trên các bảng trong CSDL
Nội dụng
Khái niệm về Tables
Các thao tác cơ bản đối với bảng Tables
o Xây dựng cấu trúc của bảng
o Lưu bảng, sửa cấu trúc bảng
o Nhập dữ liệu cho bảng
o Đổi tên, xoá bảng
Trang 111 Khái niệm Table:
Bảng là nơi chứa dữ liệu về một đối tượng thông tin nào đó như SINH VIÊN, HÓA ĐƠN, Mỗi hàng trong bảng gọi là một bản ghi (record) chứa các nội dung riêng của đối tượng đó Mỗi bản ghi của một bảng đều có chung cấu trúc, tức là các trường (field) Ví dụ: Cho bảng dưới đây để quản lý lý lịch khoa học cán bộ trong trường đại học, có các trường MACB (Mã cán bộ), TRINHDOVH (Trình độ văn hóa), CHUYENMON (Chuyên môn),
Trong một CSDL có thể chứa nhiều bảng, thường mỗi bảng lưu trữ nhiều thông tin (dữ liệu) về một đối tượng thông tin nào đó, mỗi một thông tin đều có những kiểu đặc trưng riêng, mà với Access nó sẽ cụ thể thành những kiểu dữ liệu của các trường
2 Các thao tác với Table
a Tạo bảng (Table)
table in design view: xuất hiện vùng làm việc Table sau:
Hình7: Cửa sổ thiết kế bảng Design View
Cửa sổ Table được phân làm 2 vùng chính:
Phần phía trên dùng để khai báo các trường của bảng:
+ Field name: Xác định tên trường cần đặt (thông tin dùng để quản lý)
Lưu ý: Tên trường là một dãy không quá 64 ký tự bao gồm chữ cái, chữ
số và ký tự trống
Trang 12+ Data type: Xác định kiểu dữ liệu của trường + Desciption: mô tả cho trường, nó chỉ mang ý nghĩa làm rõ thông tin quản lý, có thể bỏ qua trường này khi thiết kế
Phần phía dưới dùng để quy định các thuộc tính cho trường:
+ Field properies: Các thuộc tính của trường
Thẻ General: Cần xác lập một số thuộc tính sau
- Field size: Độ rộng của trường dữ liệu, chỉ thiết lập cho kiểu dữ liệu Number và Text
- Format: Để thiết lập định dạng dữ liệu khi hiển thị, trường này áp dụng cho các kiểu dữ liệu Memo, OLE, Yes/No
- Input Mark: Thiết lập mặt nạ nhập dữ liệu cho các trường, trường này áp dụng cho các kiểu dữ liệu Text, Number, Datetime, Currency
- Default value: Ngầm thiết lập giá trị mặc định cho trường khi ra lệnh thêm vào một bản ghi
- Caption: thiết lập tiêu đề cột mà trường đó hiển thị, có thể sử dụng tiếng việt để gõ
- Validation Rule: Thiết lập điều kiện tính đúng đắn của dữ liệu khi nhập vào
Ví dụ:
<> Giá trị nhập vào phải khác 0
0 or >100 Giá trị nhập vào phải bằng 0 hoặc lớn hơn 100
Like “K???” Phải nhập vào 4 ký tự, ký tự đầu phải là K
Like “CTY*” Nhập 3 ký tự đầu phải là CTY
<#01/01/1992# Ngày nhập trước năm 1992
>#01/01/1991# and <#01/01/1992# Ngày nhập phải năm trong năm 1991 Nếu đối với trường Ngày sinh: Nếu thiết lập >=#1/1/1990# thì khi nhập
dữ liệu vào trong bảng nếu không phù hợp máy tính sẽ báo lỗi
- Validation Text: Thiết lập thông báo khi nhập sai ràng buộc của trường dữ liệu
- Required: Để thiết lập thuộc tính bắt buộc phải nhập vào trường này
- AllowZeroLength: Chấp nhận chuỗi rỗng trong các trường Text, Memo
- Indexed: Tạo chỉ mục để tăng tốc độ tìm kiếm trên trường này
Trang 13Thuộc tính này có thể nhận các giá trị:
Yes (Dupticates OK) Tạo chỉ mục
Yes (No Dupticates) Tạo chỉ mục kiểu Unique (các giá trị cần khác nhau như thể khoá chính)
Thẻ Lookup: thiết lập chức năng tìm kiếm truờng dữ liệu
b Kiểu dữ liệu trong bảng:
+ Text: Dùng để lưu trữ dữ liệu dạng văn bản Có thể thay đổi kích thước của trường từ 1 đến 255 ký tự và mặc định là 50 ký tự
+ Memo: Dùng để lưu trữ dữ liệu dạng văn bản Kích thước tối đa của trượng này là 64000 ký tự
+ Number: dùng để lưu trữ dữ liệu dạng số
Trong đó:
- Byte: phạm vi giá trị từ 0 đến 255
- Integer: phạm vi giá trị từ -32768 đến 32767
- Long Integer: phạm vi giá trị từ -2147483648 đến 2147483647
- Single: phạm vi giá trị từ -3.4E+38 đến 3.4E+38
- Double: phạm vi giá trị từ -1.79E+308 đến 1.7E+308 + Date/time: Kiểu ngày tháng/thời gian có độ lớn 8 byte
+ Currency: Kiểu tiền tệ có độ lớn 8 byte
+ Auto number: Kiểu số tăng tự động có độ lớn 8 byte
+ Yes/No: Kiểu luận lý có độ lớn 1 bit
+ OLE Objiect: Cho phép nhúng vào CSDL một đối tượng khác (ví dụ như hình ảnh) có độ lớn 1 Giga byte
+ Lookup winzard: Trường cho phép lựa chọn tên trường từ một bảng khác trong cùng CSDL
+ Hyperlink: cho phép tạo ra liên kết trên trường này
c Lưu bảng
Khi khi thiết kế bảng xong để lưu lại bảng dữ liệu ta tiến hành chọn Menu File, chọn Save hoặc chọn biểu tượng trên thanh Standard: xuất hiện hộp thoại Save As
Trang 14Hình8: Hộp thoại Save as
Tại hộp thoại Save as ta thực hiện: Nhập tên của bảng cần lưu vào mục Table Name, nhấn OK
Hình9: Nhập tên vào mục Table Name
Nếu trong quá trình thiết kết chưa đặt khoá chính thì Access xuất hiện một hộp thoại hỏi người sử dụng có muốn Access tự động đặt khoá chính (bằng trường ID có kiểu dữ liệu AutoNumber)
Hinh10: Thêm thuộc tính khoá cho bảng
+ Nhấn Yes: Để đồng ý tạo khoá cho bảng
+ Nhấn No: Không đồng ý tạo khoá (bảng dữ liệu tạo tạo không chứa thuộc tính khoá)
d Sửa cấu trúc của bảng
Trong ngăn Table:
+ Chọn bảng cần sửa + Tiến hành sửa bằng 1 trong 2 cách sau:
C1: Kích vào biểu tượng C2: Right_Click/chọn Design View
Trang 15 Xuất hiện hộp thoại Table
Hình11: Trạng thái Design View của bảng cần chỉnh sửa
Thực hiện sửa cấu trúc và nhấn Save để lưu lại sự thay đổi
Xuất hiện hộp thoại Table ở dưới dạng Data sheet
Hình12: Trạng thái nhập dữ liệu của bảng
Tiến hành nhập dữ liệu thích hợp vào bảng
Trang 16 Chú ý: Khi nhập dữ liệu vào bảng ta phải chú ý một số điểm sau:
- Dữ liệu phải được nhập trên từng hàng
- Dữ liệu ở trường khoá chính phải đảm bảo tính duy nhất và không được bằng giá trị rỗng (Null)
- Dữ liệu được nhập phải đúng với kiểu dữ liệu đã được thiết kế ở mỗi trường
g Đổi tên và xoá bảng:
Đổi tên bảng: Trong ngăn Table
- Chọn bảng cần đổi tên
- Đổi tên: C1: Edit/Rename (Nhấn phím F2)
C2: Right_Click/chọn Rename
Nhập vào tên cần đổi
Xoá bảng: Trong ngăn Table
- Chọn bảng cần xoá
- Xoá: C1: Edit/Delete (nhấn phím Del)
C2: Right_Click/chọn Delete C3: Kích chọn biểu tượng
3 Đặt khoá chính cho trường dữ liệu
a Đặt khoá chính
- Trong ngăn Table:
- Mở bảng ở chế độ Design View:
- Chọn các trường muốn thiết lập khoá chính
- Vào Edit chọn Primary Key hoặc kích chuột vào biểu tượng Primary Key
Các trường được chọn làm khoá thì có biểu tượng khoá ở đầu
Hình13: Trường được thiêt lập khoá
b Xoá khoá chính
Nhấn vào View, chọn Indexes: xuất hiện hộp thoại Indexes chứa các trường khoá chính
Trang 17Hình14: Xoá khoá chính
Tại hộp thoại Indexes ta chọn trường khoá cần xoá và nhấn phím Delete
4 Một số lưu ý khi thiết kế bảng
Trang 18+ Đối với trường dữ liệu Yes/No
< Các ký tự bên phải được đổi thành chữ thường
> Các ký tự bên phải được đổi thành chữ hoa
! Dữ liệu được ghi từ phải sang trái
\<Ký tự> Ký tự theo sau \ sẽ được đưa thẳng vào
Ví dụ
Input mask Dữ liệu nhập vào (000)000-0000 (054)828-8282
Trang 19c Thiết lập giá trị Lookup cho 1 trường dữ liệu
Cách 1
- Trong ngăn Table:
- Mở bảng ở trạng thái Design View
- Chọn trường cần thiết lập giá trị Lookup
- Tại trường Data Type, Chọn thuộc tính Lookup Wizard… xuất hiện hộp thoại Lookup Wizard với 6 bước
Hình15: Bước 1 khi tạo trường Lookup
Hình16: Bước 2 khi tạo trường Lookup
Trang 20Bước 2: Chọn bảng chứa trường cần Lookup đến, Nhấn Next
Hình17: Bước 3 khi tạo trường Lookup
Bước 3: Chọn trường cần Lookup đến ở mục Available Fields, nhấn biểu tượng để đưa sang mục Selected Fields, Nhấn Next
Hình18: Bước 4 khi tạo trường Lookup
Bước 4: Chọn tên trường cần sắp xếp nếu cần, Nhấn Next
Trang 21Hình19: Bước 5 khi tạo trường Lookup
Bước 5: Nhấn Next
Hình20: Bước 6 khi tạo trường Lookup
Bước 6: Nhấn Finish để hoàn tất việc thiết lập Lookup
Cách 2:
- Trong ngăn Tables
- Mở bảng ở trạng thái Design View
- Chọn trường cần thiết lập giá trị Lookup
- Tại vùng Fields Properties, chọn thẻ Lookup
+ Trong mục Display control: Ta chọn thuộc tính: Combo box
Trang 22+ Trong mục Row Source: kích vào biểu tượng : Xuất hiện hộp thoại: Show Table
Hình 21: Hộp thoại chọn bảng chứa trường cần lookup đến
Tại hộp thoại Show table, Chọn bảng chứa trường mà ta cần Lookup tới, Nhấn Add, Nhấn Close: Xuất hiện SQL Statement
Hình 22: Hộp thoại chọn chọn trường cần lookup đến
+ Tại hộp thoại SQL Statement: Query Builder
Trong trường Field: ta chọn trường cần Lookup Kích chọn biểu tượng Close: xuất hiện hộp thoại nhấn YES
Hình 23: Hộp thoại lưu cách chọn với câu lệnh SQL
Trang 23BÀI 3 QUAN HỆ, SẮP XẾP VÀ LỌC DỮ LIỆU TRÊN BẢNG
Khái niệm về quan hệ (Relationship l)
Các thao tác cơ bản đối với dữ liệu trong bảng (Tables)
o Sắp xếp dữ liệu trên bảng:
Sắp xếp dữ liệu trên một trường (Sort)
Sắp xếp dữ liệu trên nhiều trường (Advanced filter/sort)
o Lọc dữ liệu trong bảng:
Lọc tại bảng(Filter by form)
Lọc theo giá trị được chọn (Filter by selection)
Lọc không theo giá trị được chọn hay lọc ngoài điều kiện được chọn (Filter excluding selection)
Lọc nâng cao (Advanced Filter)
Trang 241 Quan hệ Relationship:
Khái niệm: Access là hệ quản trị CSDL nên có thể sử dụng dữ kiện lấy
từ nhiều Table khác nhau nếu các Table này có mốI quan hệ với nhau, muốn vậy phải khai báo các mối quan hệ giữa các Table liên quan
Quy định: Những Field đối chiếu trong các Table có quan hệ thường có tên giống nhau, có cùng kiểu dữ liệu muốn định nghĩa QH phải đóng các Table đang mở, và mở cửa sổ Relationship
a Các loại quan hệ
Quan hệ 1- 1 (One ton One): Trong quan hệ 1-1, một bản ghi trên bảng
dữ liệu A chỉ có 1 bản ghi tương ứng trên bảng dữ liệu B và ngược lại một bản ghi trên bảng dữ liệu B chỉ có duy nhất 1 bản ghi tường ứng ở bảng dữ liệu A
Quan hệ 1- ∞ (One to Many): Trong quan hệ 1 - ∞, một bản ghi trên bảng dữ liệu A có thể có nhiều bản ghi tương ứng trên bảng dữ liệu B và ngược lại một bản ghi trên bảng dữ liệu B chỉ có duy nhất một bản ghi tương tứng trên bảng dữ liệu A
Quan hệ ∞ - ∞ (Many to Many): Trong quan hệ ∞ - ∞, một bản ghi trên bảng dữ liệu A có thể có hoặc không có một bản ghi tương ứng nào trên bảng dữ liệu B và ngược lại
Đối với loại quan hệ này thì người ta thường tách nó ra làm 2 quan
hệ 1 - ∞
b Cách tạo quan hệ
Bước 1: Trong cửa sổ Database, từ Menu Tools chọn Relationships hoặc chọn vào biểu tượng Relationship trên thanh Standard
Xuất hiện hộp thoại: Show Table
Hình 24: Hộp thoại Show Table chọn nguồn dữ liệu để tạo quan hệ
Trang 25- Chức năng của các thẻ trong hộp thoại:
+ Thẻ Tables: Cho phép hiển thị các bảng có trong CSDL + Thẻ Queries: Cho phéo hiển thị các truy vấn có trong CSDL + Thẻ Both: Cho phép hiển thị các bảng và các truy vấn
- Trong hộp thoại Show Table ta tiến hành chọn bảng đưa vào tạo quan hệ sau đó nhấn Add
Lưu ý: Khi chọn các bảng ta có thể sử dụng thêm phím Shift hoặc phím
Ctrl kết hợp với thao tác kích đơn chuột vào các bảng để chọn
- Sau khi chọn xong các bảng đưa vào quan hệ ta nhấn Close để đóng hộp thoại Show Table: Xuất hiện hộp thoại Relationships
Hình 25: Hộp thoại Relationships để tạo quan hệ
Bước 2: Trong hộp thoại Relationship ta thực hiện tạo quan hệ:
Kích chuột vào trường khoá chính ở bảng dữ liệu A và kéo thả vào trường có quan hệ tương ứng ở bảng dữ liệu B: Xuất hiện hộp thoại Edit Relationship
Hình 26: Hộp thoại Edit Relationships để tạo quan hệ
Trang 26+ Enforce Referential Integrity: Xác nhận lại quan hệ đang có để đảm bảo rằng tất cả những thay đổi ở trường dữ liệu trong bảng A thì cũng phải thay đổi như vậy đối với trường dữ liệu trong bảng B
+ Cascade Update Related Fields: Nếu thay đổi dữ liệu trên trường khoá chính của bảng A thì cũng làm cho trường có quan hệ tương ứng ở bảng B thay đổi theo
+ Cascade Delete Related Fields: Nếu như dữ liệu trên trường khoá chính của bảng A bị xoá thì cũng làm cho trường có quan hệ tương ứng ở bảng B bị xoá theo
Ta chọn thuộc tính: Enforce Referential Integrity, sau đó nhấn Create
để khởi tạo quan hệ
Hình 27: Các kiểu quan hệ được tạo
Chú ý:
Quan hệ có tính tham chiếu toàn vẹn sẽ đảm bảo các vấn đề sau:
+ Khi nhập dữ liệu cho trường tham gia quan hệ ở bên nhiều thì phải tồn tại bên một
+ Không thể xoá một bản ghi của bảng bên một nếu trong quan hệ
đã tồn tại những bản ghi bên nhiều có quan hệ với bản ghi bên một đó
+ Trường hợp vi phạm các quy tắc trên thì sẽ nhận được thông báo lỗi
c Xoá quan hệ:
- Trong hộp thoại Relationships
- Chọn quan hệ cần xoá
- Right_Click/chọn Delete
Trang 27d Sửa quan hệ:
- Trong hộp thoại Relationships
- Chọn quan hệ cần chỉnh sửa
- Right_Click/Edit Relationships xuất hiện hộp thoại Edit Relationships
Hình 28: Hộp thoại Edit Relationships để tạo quan hệ
Tại hộp thoại Edit Relationships ta tiến hành chỉnh sửa và lưu lại
2 Sắp xếp dữ liệu trên bảng
a Sắp xếp dữ liệu trên 1 trường:
- Trong ngăn Tables
- Mở bảng dữ liệu cần sắp xếp ở dạng Datasheet
- Đặt con trỏ ở trường cần sắp xếp
- Vào Records / Chọn Sort: + Sort Ascending: sắp xếp tăng dần
+ Sort Descending: sắp xếp giảm dần
b Sắp xếp dữ liệu trên nhiều trường
- Trong ngăn Tables
- Mở bảng dữ liệu cần sắp xếp ở dạng Datasheet
- Vào Records/Filter/Advance Filter Sort: Xuất hiện hộp thoại Filter
Hình 29: Hộp thoại Filter lọc dữ liệu
Trang 28- Tại hộp thoại Filter ta thực hiện các thao tác sau:
+ Trong hàng Field: Chọn các trường cần sắp xếp (Thứ tự ưu tiên
từ trái sang phải)
+ Trong hàng Sort: Chọn tiêu chuẩn sắp xếp
+ Trong hàng Criteria: Chọn điều kiện sắp xếp (nếu có)
+ Trong hàng Or: Chọn điều kiện hoặc (nếu có)
Xem kết quả.: Chọn Filter/Apply filter
3 Lọc dữ liệu
a Lọc tại bảng (Filter by form)
- Trong ngăn Tables
- Mở bảng cần lọc ở chế độ Datasheet
- Vào Record/Filter/Filter by form: xuất hiện hộp thoại Filter by form
Hình 30: Hộp thoại lọc dữ liệu Filter by Form
- Tại hộp thoại Filter by Form ta thực hiện:
+ Kích chọn vào trường chứa điều kiện lọc, sau đó chọn điều kiện lọc
+ Để xem kết quả: C1: Vào Filter/Apply filter/Sort
C2: Kích chọn biểu tượng Apply filter + Để huỷ bỏ: C1: Vào Record/Remove filter/Sort
C2: Kích chọn biểu tượng Remove filter
b Lọc theo giá trị được chọn (Filter by selection)
- Trong ngăn Tables
- Mở bảng cần lọc ở chế độ Datasheet
- Lựa chọn đối tượng cần lọc dữ liệu
- Vào Record/Filter/Filter by selection: Xuất hiện bảng dữ liệu chứa các bản ghi thoả mãn điều kiện được chọn
Để huỷ bỏ: C1: Vào Record/Remove filter/Sort
C2: Kích chuột chọn biểu tượng Remove filter
Trang 29c Lọc không theo giá trị được chọn (Filter excluding selection)
- Trong ngăn Tables
- Mở bảng cần lọc ở chế độ Datasheet
- Lựa chọn đối tượng cần lọc dữ liệu
- Vào Record/Filter/Filter excluding selection: Xuất hiện bảng dữ liệu chứa các bản ghi không thoả mãn điều kiện được chọn
Để huỷ bỏ: C1: Vào Record/Remove filter/Sort
C2: Kích chuột chọn biểu tượng Remove filter
d Lọc nâng cao (Advanced Filter)
Một số toán tử được dùng trong Access:
- Toán tử tính toán: +, -, *, /, ^, &
- Toán tử so sánh: >, <, =, >=, <=, <>, like
- Toán tử luận lý: and, or, not
- Ngoài ra còn sử dụng một số phép toán như:
+ Dấu (?): đại diện cho 1 ký tự bất kỳ + Dấu (*): đại diện cho 1 dãy các ký tự + In: Kiểm tra một giá trị có thuộc một tập các giá trị hay không?
+ Is Null: Giá trị của một trường là Null
+ Is not Null: Giá trị của một trường là không Null
+ Between and: Kiểm tra xem một giá trị có thuộc một
"khoảng" nào đó hay không?
Một số hàm được dùng trong Access:
- Hàm Left(<Chuỗi>,<n>): Trích bên trái chuỗi n ký tự
- Hàm Right(<Chuỗi>,<n>): Trích bên phải chuỗi n ký tự
- Hàm Ucase(<Chuỗi>): Trả lại một chuỗi in hoa
- Hàm Lcase(<Chuỗi>): Trả lại một chuỗi in thường
- Hàm IIF(<Điều kiện>,<Giá trị 1>,< Giá trị 2>): Nếu <Điều kiện> nhận giá trị true thì hàm trả lại <Giá trị 1>, ngược lại hàm trả lại <Giá trị 2>
Cách xây dựng lọc nâng cao;
- Trong ngăn Tables
- Mở bảng dữ liệu cần sắp xếp ở dạng Datasheet
- Vào Records/Filter/Advance Filter Sort: Xuất hiện hộp thoại Filter
Trang 30Hình 31: Hộp thoại lọc dữ liệu Filter
- Tại hộp thoại Filter, ta thực hiện như sau:
+ Trong hàng Field: Chọn các trường cần lọc (Thứ tự ưu tiên từ trái sang phải)
+ Trong hàng Sort: Chọn tiêu chuẩn sắp xếp
+ Trong hàng Criteria: Chọn điều kiện để lọc (nếu có)
+ Trong hàng Or: chọn điều kiện hoặc (nếu có)
Xem kết quả.: Chọn Filter/Apply filter
Chú ý:
Khi ta thiết lập xong điều kiện ta tiến hành Right_Click: xuất hiện Menu ngữ cảnh:
Hình 32: Menu ngữ cảnh được sử dụng trong lọc dữ liệu Filter
Ý nghĩa của các thuộc tính:
- Apply Filter/Sort: Xem kết quả của lọc/sắp xếp
- Clear Grid: Xoá đi toàn bộ các trường tham gia vào lọc/sắp xếp
- Load From Query…: Cho phép xem kết quả của các truy vấn đã tồn tại
- Save as Query: cho phép lưu lại kết quả thực hiện với Query
Khi tiến hành xây dựng điều kiện, để thuận tiện hơn ta sử dụng hộp Expression Builder bằng cách:
Đặt con trỏ tại vị trí cần xây dựng điều kiện, thực hiện thao tác Right_Click/chọn Buiter…: xuất hiện hộp thoại Expression Builder
Trang 31Hình 33: Hộp thoại xây dựng điều kiện Expression Builder
Tiến hành xây dựng điều kiện
Khi tiến hành xây dựng điều kiện có thể có những điều kiện phức tạp khó xây dựng trên cùng một trường thì để đơn giản hoá điều kiện đó ta có thể tiến hành tách điều kiện đó ra làm các điều kiện nhỏ hơn sau đó tiến hành xây dựng trường phụ cho từng điều kiện nhỏ đó
Cách xây dựng trường phụ:
- Đặt con trỏ tại hàng Field: sau đó thực hiện thao tác Right_Click/Build: xuất hiện hộp thoại: Expression Builder
- Tiến hành xây dựng trường phụ với cú pháp trường phụ như sau:
<tên trường phụ>: nội dung mà trường này chứa (có thể là hàm hoặc toán tử)
Ví dụ: để tạo ra trường năm trong ngày sinh trong ngày sinh ta tiến hành như sau:
- Tại hàng Field: Right_Click
Trong hộp thoại Expression Builder ta nhập vào biểu thức:
Năm:year(Ngaysinh)
- Tại hàng Criteria: Chọn điều kiện tương ứng của trường đó
Trang 32BÀI 4 TRUY VẤN DỮ LIỆU (QUERY)
Mục đích
Giúp học viên nắm được khái niệm về truy vấn
Giúp sinh viên biết cách lọc và tìm kiếm thông tin trong cơ sở dữ liệu bằng cách thực hiện truy vấn chọn Select Query
Nội dụng
Khái niệm về truy vấn dữ liệu Query
Các thao tác cơ bản đối với truy vấn (Query)
o Tạo mới một truy vấn
o Lưu một truy vấn
o Chỉnh sửa một truy vấn
o Đổi tên và xoá một truy vấn
o Thực thi truy vấn
Ý nghĩa và cách xây dựng các loại truy vấn:
o Truy vấn chọn Select Query
o Truy vấn thống kê Totals Query
Trang 331 Khái niệm về Query
- Truy vấn là một công cụ cho phép đặt câu hỏi với dữ liệu trong bảng dữ liệu trong CSDL
- Loại truy vấn thông dụng nhất là truy vấn chọn (Select Query) Với kiểu truy vấn này chúng ta có thể xem xét dữ liệu trong các bảng, thực hiện phân tích
và chỉnh sửa trên dữ liệu đó, có thể xem thông tin từ 1 bảng hoặc có thể thêm nhiều trường từ nhiều bảng khác nhau
2 Các loại truy vấn Query được sử dụng trong Access
Truy vấn chọn lựa:
+ Truy vấn chọn Select Query
+ Truy vấn tham số Parammeter Query
+ Truy vấn thống kê Totals Query
+ Truy vấn thống kê tham khảo chéo Crosstab Query
Truy vấn hành động Action Query:
+ Truy vấn tạo bảng Make Table Query
+ Truy vấn nối bảng Append Query
+ Truy vấn cập nhật Update Query
+ Truy vấn xoá Delete Query
3 Các thao tác cơ bản đối với truy vấn Query:
a Tạo mới một truy vấn:
- Trong ngăn Queries của thanh Database
- Kích chọn thuộc tính Create query in Design view: Xuất hiện hộp thoại Show table
Hình 34: Hộp thoại Show table để chọn bảng tham gia truy vấn
Trang 34- Tại hộp thoại Show Table, ta thực hiện chọn các bảng trong thẻ (Table) hoặc truy vấn trong thẻ (Query) chứa các trường tham gia vào quá trình truy vấn, nhấn Add, sau khi chọn xong các bảng hoặc các truy vấn ta nhấn Close để đóng hộp thoại Show Table
- Sau khi đóng hộp thoại Show Table lại thì xuất hiện Query:
Hình 35: Hộp thoại Query để tạo truy vấn
Hộp thoại Query này gồm 2 vùng làm việc chính
+ Vùng phía trên: Chứa toàn bộ các bảng (Table) hoặc truy vấn (Query) tham gia vào quá trình tạo truy vấn
+ Vùng phía dưới: Chứa lưới QBE cho phép thiết kế truy vấn (Query) với các thành phần sau:
Tại hàng Field: Cho phép chúng ta lựa chọn trường để tham gia vào truy vấn
Lưu ý: Trường ở đây có thể là trường chính được chọn trực tiếp từ các
bảng hay truy vấn và các trường phụ do chúng ta xây dựng
Tại hàng Table: Cho phép hiển thị tên của bảng chứa trường tham gia vào truy vấn
Tại hàng Sort: Chọn kiểu sắp xếp cho trường đó
Tại hàng Show: Quy định thuộc tính cho phép xuất hiện hay không cho phép xuất hiện trường này khi thực thi truy vấn
Tại hàng Criteria: Chứa điều kiện để thực thi truy vấn
Tại hàng Or: Chứa điều kiện hoặc của điều kiện khi thực thi truy vấn
Các bước tiến hành tạo một truy vấn:
- Chọn trường tham gia vào truy vấn
- Thiết lập trường phụ nếu cần
Trang 35- Thiết lập điều kiện nếu có
- Thiết lập thuộc tính hiển thị hoặc không hiển thị cho trường đó
- Lưu lại
- Xem kết quả thực thi
Chú ý: Trong quá trình chọn bảng (Table) hoặc truy vấn (Query)
Nếu thiếu thì ta có thể thêm vào bằng cách:
- Đặt con trỏ tại vùng phía trên của hộp thoại Query
- Thực hiện: C1: Kích chuột vào Menu Query chọn Show Table
C2: Right_Click, chọn Show Table
Xuất hiện hộp thoại Show Table:
Hình 36: Hộp thoại Show table để chọn thêm bảng/truy vấn
Tại hộp thoại này ta tiến hành chọn thêm bảng hoặc truy vấn, sau đó nhần Add, nhấn Close để đóng hộp thoại lại
Nếu dư thì ta có thể xoá đi bằng cách:
- Tại vùng phía trên của hộp thoại Query
- Ta tiến hàng chọn bảng hoặc truy vấn cần xoá
- Thực hiện:
C1: Kích chuột vào Menu Query chọn Remove Table
C2: Right_Click, chọn Remove Table
b Lưu truy vấn:
-Sau khi tiến hành tạo xong truy vấn thì ta thực hiện lưu lại truy vấn bằng cách:
Trang 36- Nhấn vào Menu File, chọn Save hay kích chọn vào biểu tượng (Save) trên thanh công cụ chuẩn Standard
Xuất hiện hộp thoại Save as
Hình 37: Hộp thoại Save as để lưu truy vấn
- Tại hộp thoại Save As ta thực hiện: Nhập tên của Query cần lưu vào mục Query Name, sau đó nhấn OK để kết thúc việc lưu
c Chỉnh sửa một truy vấn
Sau khi xây dựng xong một truy vấn thì để chỉnh sửa cấu trúc của nó ta tiến hành như sau:
- Trong ngăn Queries
- Chỉnh sửa: Cách 1: Kích chuột vào biểu tượng trên Database
Cách 2: Tiến hành Right_Click, chọn Design View
Xuất hiện hộp thoại Query ở trạng thái Design View
Hình 38: Hộp thoại Query ở trạng thái Design View
Tại hộp thoại này ta tiến hành chỉnh sửa cấu trúc và lưu lại
d Đổi tên một truy vấn
- Trong ngăn Queries
- Chọn Query cần đổi tên
- Đổi tên: Cách 1: Nhấp chuột vào Menu Edit, chọn Rename hay nhấn F2
Trang 37Cách 2: Tiến hành Right_Click, chọn Rename
Nhập vào tên cần đổi
- Trong ngăn Queries
- Mở Query cần thực thi truy vấn ở trạng thái Design View
- Thực thi truy vấn bằng cách: Nhấp chuột vào Menu Query, chọn Run
Kích chuột vào biểu tượng Run hoặc biểu tượng View
4 Ý nghĩa và cách xây dựng từng loại truy vấn cụ thể
a Truy vấn chọn Select query
Ý nghĩa: Truy vấn chọn là loại truy vấn được chọn lựa, trích rút dữ liệu
từ các bảng dữ liệu thoả mãn một hoặc nhiều điều kiện nào đó Khi thực hiện truy vấn Select query, Access tác động lên dữ liệu và thể hiện các bản ghi thoả mãn các điều kiện đặt ra trong một bảng kết quả gọi là Recordset
Cách xây dựng
- Trong ngăn Queries của thanh Database
- Kích chọn thuộc tính Create query in Design view: Xuất hiện Show table
Hình 39: Hộp thoại Show table để chọn bảng tham gia truy vấn
Trang 38- Tại hộp thoại Show Table, ta thực hiện chọn các bảng trong thẻ (Table) hoặc truy vấn trong thẻ (Query) chứa các trường tham gia vào quá trình truy vấn, nhấn Add, sau khi chọn xong các bảng hoặc các truy vấn ta nhấn Close để đóng hộp thoại Show Table
- Sau khi đóng hộp thoại Show Table lại thì xuất hiện Query:
Hình 40: Hộp thoại Query để tạo truy vấn
Hộp thoại Query này gồm 2 vùng làm việc chính
+ Vùng phía trên: Chứa toàn bộ các bảng (Table) hoặc truy vấn (Query) tham gia vào quá trình tạo truy vấn
+ Vùng phía dưới: Chứa lưới QBE cho phép thiết kế truy vấn (Query) với các thành phần sau:
Tại hàng Field: Cho phép chúng ta lựa chọn trường để tham gia vào truy vấn
Lưu ý: Trường ở đây có thể là trường chính được chọn trực tiếp từ các bảng hay truy vấn và các trường phụ do chúng ta xây dựng
Tại hàng Table: Cho phép hiển thị tên của bảng chứa trường tham gia vào truy vấn
Tại hàng Sort: Chọn kiểu sắp xếp cho trường đó
Tại hàng Show: Quy định thuộc tính cho phép xuất hiện hay không cho phép xuất hiện trường này khi thực thi truy vấn
Tại hàng Criteria: Chứa điều kiện để thực thi truy vấn
Tại hàng Or: Chứa điều kiện hoặc của điều kiện khi thực thi truy vấn
Lưu và thực thi truy vấn
Ví dụ: Tạo một truy vấn có tên HD_Quy1_Nam_2008 để hiển thị các hoá đơn được lập trong Quý1 năm 2008 bao gồm các trường sau: MaHD (lấy từ
Trang 39bảng (HOA_DON), TenCTy, DiaChi (lấy từ bảng KHACH_HANG), NguoiLap_HD (nối từ 2 trường HoLot và Ten trong bảng NHAN_VIEN), NgayLap_HD, NgayGiaoHang (lấy từ bảng HOA_DON)
Tiến hành:
- Trong ngăn Queries của thanh Database
- Kích chọn thuộc tính Create query in Design view: Xuất hiện Show table
Hình 41: Hộp thoại Show table để chọn bảng tham gia truy vấn
- Tại hộp thoại Show Table, ta thực hiện chọn 3 bảng HOA_DON, KHACH_HANG, NHAN_VIEN trong thẻ (Table) nhấn Add, sau khi chọn xong các bảng hoặc các truy vấn ta nhấn Close để đóng hộp thoại Show Table
- Sau khi đóng hộp thoại Show Table lại thì xuất hiện Query:
Hình 42: Hộp thoại Query để thiết lập truy vấn
- Tại hàng Field: Tiến hành xây dựng các trường lần lược như sau:
+ Double_Click vào trường MaHD ở bảng HOA_DON
Trang 40+ Double_Click vào trường TenCty, DiaChi ở bảng KHACH_HANG
+ Xây dựng trường NguoiLapHD với cú pháp:
NguoiLapHD:[HoLot]&” ”&[Ten]
+ Double_Click vào trường NgayLapHD, NgayGiaoHang ở bảng HOA_DON
Sau khi chọn xong các trường xuất hiện hộp thoại sau:
Hình 43: Chọn các trường tham gia vào truy vấn
- Tại hàng Criteria: Ta thiết lập điều kiện như sau
+ Để có điều kiện là Quý 1 thì ta tiến hành xây dựng như sau:
Tại hàng Field: Ta xây dựng một trường phụ có tên Quý với
cú pháp: Quy:Month([NgayLapHD])
Tại hàng Criteria: Ta thiệt lập điều kiện với cú pháp: Between 1 and 3
+ Để có điều kiện là Năm 2008 thì ta tiến hành xây dựng như sau:
Tại hàng Field: Ta xây dựng một trường phụ có tên Năm với cú pháp: Nam:Year([NgayLapHD])
Tại hàng Criteria: Ta thiệt lập điều kiện với cú pháp: 2008
Sau khi thiết lập xong điều kiện thì hiển thị hộp thoại như sau: