Trong phần này sẽ tìm hiểu chi tiết hơn về các bảng dữ liệu MS Access, các kiểu dữ liệu và sự liên kết giữa các bảng.
Một số khái niệm liên quan đến bảng (table) trong Access
Bảng (Table) là nơi lưu trữ thông tin dữ liệu các đối tượng quản lý. Bảng có cấu trúc hai chiều gồm các dòng (Record - bản ghi - hàng) và các cột (Field - trường dữ liệu)
Ví dụ, bảng HOCSINH
lưu trữ thông tin về đối tượng học sinh
gồm các trường dữ liệu (field): HOCSINHID, Ho, Ten, Ngaysinh, Dantoc, Noisinh, Diachi
Mỗi đối tượng học sinh được biểu diễn trong một bản ghi (Record, dòng) dữ liệu. Bảng có thể có nhiều, một hoặc không có record nào.
Trong một CSDL thường có nhiều bảng, mỗi bảng lưu trữ dữ liệu của một đối tượng nào đó, các đối tường này có thể có quan hệ với nhau.
Ví dụ, bảng LOP
và bảng HOCSINH
có liên hệ một - nhiều
. Mỗi lớp có nhiều học sinh, mỗi học sinh thuộc về một lớp
Khóa chính - Primary Key
Khóa chính
(primary key) là trường dữ liệu (cột) có giá trị
duy nhất giữa các hàng (record). Khóa chính để xác định chính xác Record nào đó trong bảng,
nên khi ứng dụng hãy chọn một loại dữ liệu chuyên biệt nào đó làm khóa chính,
ví dụ như bảng về sản phẩm thì chọn mã sản phẩm, bảng về nhân viên thì là mã nhân viên
(hoặc số CMT) ...
Ví dụ bảng HOCSINH
có một cột - trường dữ liệu là HOCSINHID
làm khóa chính, nó thiết kế là một con số duy nhất - dành cho mỗi học sinh - biết
khóa chính sau này sẽ nhanh chóng tìm đến Record chứa khóa chính đó.
Trong sơ đồ quan hệ ở trên, trường có ký hiệu chìa khóa
là khóa chính của
bảng. Cách thiết lập khóa chính cho bảng ở phần sau.
Khóa ngoại - Foreign key
Khóa ngoại
là trường (cột) dữ liệu chứa các giá trị tham chiếu (trỏ đến) một
khóa chính
của bảng khác. Việc tạo ra các cột (trường) là khóa ngoại sẽ
hình thành nên mối quan hệ giữa các bảng.
Như sơ đồ trên, bảng DIEM
có trường HOCSINHID
là khóa ngoại, nó tham chiếu đến khóa chính HOCSINHID
của bảng
HOCSINH
, từ đó mỗi điểm xác định được của học sinh nào, tương tự có
trường MONHOCID
là khóa ngoại tham chiếu đến bảng MONHOC
Tạo bảng trong Access
Khi đã định hướng được cần tạo một bảng, bảng gồm các trường dữ liệu gì thì bắt đầu tạo bảng
bằng cách chọn mục Create
trên Menu Ribbon.
Bạn có thể chọn Table
- để tạo bảng và vào ngày chế độ Datasheet View
để thiết kế bảng, ở chế độ này bạng đang quan sát bảng dạng như bảng tính - từ đó thêm các cột
Chọn menu Table Design
để tạo bảng mới và vào ngay chế độ
Design View - Ta sẽ sử dụng chế độ tổng quát này khi tạo, thiết kế bảng
Thiết kế bảng ta phải định nghĩa các thành phần:
Field Name
- Định nghĩa cột (trường dữ liệu trong bảng)Data Type
- Chọn kiểu dữ liệu của trường (xem các kiểu dữ liệu ở dưới)Description
- Mô tả thông tin thêm về trường, chứa các thông tin để đọc lại biết được mục đích dữ liệuFiel Properties
- Thiết lập các thuộc tính cho trường dữ liệu, nó gồm có hai nhómGeneral
- thông tin chung, tùy thuộc vào kiểu dữ liệu của trường mà thông tin chung có các mục khác nhau như định dạng hiện thị dữ liệu, kích thước dữ liệu, giá trị mặc định ...Lookup
- xác định các nguồn dữ liệu và định dạng hiện thị nếu cần thiết
Các kiểu dữ liệu
Khi tạo các trường cho bảng, chọn kiểu dữ liệu phù hợp rất quan trọng, nó đảm bảo CSDL vận hành hiểu quả:
Kiểu dữ liệu | Mô tả | Kích cỡ |
---|---|---|
Short Text |
Nó còn là Text ở bản 2007 - 2010, biểu diễn dữ liệu dạng chữ
(tên người, tên sản phẩm, tiêu đề ...)
|
Tối đa 255 ký tự. |
Long Text |
Còn là kiểu Memo (2007 - 2010). Để biểu diễn cả câu văn, đoạn văn dài.
|
Đến 1GB |
Number | Các dữ liệu dạng số | 1, 2, 4, 8, or 16 byte |
Date/Time | Biểu diễn ngày và tháng | 8 bytes. |
Currency | Dữ liệu số, dạng tiền tệ, biểu diễn số chính xác 4 số sau dấu chấm. | 8 bytes. |
AutoNumber | Dạng số duy nhất, tự động sinh ra bởi Access | 4 bytes. |
Yes/No |
Kiểu logic Boolean (true/false);
Access lưu nó dưới dạng số, 0 là false và -1 là true
|
1 byte. |
Attachment | Lưu các loại dữ liệu file như các file hình ảnh, tài liệu, bảng tính ... |
Tới 2 GB. |
Thực hành tạo các bảng dữ liệu
Phần này tiến hành tạo ra các bảng cho một ứng dụng quản lý học sinh đơn giản. Trước tiên nó gồm các bảng có mối quan hệ với sơ đồ ở phần trên.
Bảng NIENKHOA
Cấu trúc bảng
Sau khi tạo bảng, lưu lại với tên NIENKHOA
tiến hành nhập dữ liệu trực tiếp mẫu
Bảng NGANH
Bảng trình bày về các ngành học: tên ngành học, mã ngành, số năm học. Cấu trúc tạo bảng như hình dưới
Đối với trường nào cần thiết lập giá trị mặc định thì điền
giá trị mặc định ở mục Default Value
của thuộc tính trường
Sau khi tạo bảng nhập dữ liệu mẫu sau:
Bảng LOP
Bảng này quản lý danh sách các lớp học, mỗi lớp có tên lớp, và có khóa ngoại tham chiếu đến
bảng NIENKHOA
và NGANH
, phần này vẫn chưa thiết lập các liên kết bảng
nên sẽ tạo bảng này với cấu trúc như sau:
Thiết lập Lookup cho trường NGANHID
Một trường dữ liệu có thể thiết lập thuộc tính Lookup
cho nó, thuộc tính này giúp
tham chiếu đến một nguồn dữ liệu khác trong quá trình nhập liệu
(có thể thiết lập một ComboBox, ListBox để nhập liệu). Ví dụ cột NGANHID
sẽ tham chiếu đến bảng NGANH
và trường NGANHID
của bảng đó để hiện thị
một danh sách các giá trị, chọn được khi soạn thảo. Từng bước thiết lập như sau:
- Chọn
Display Control
làCombo Box
: loại này hiện thị một hộp danh sách đổ xuống để chọn - Chọn
Row Source Type
làTable/Query
- có nghĩa là nguồn dữ liệu từ bảng, hoặc các Query Row Source
là các truy vấn lấy ra dữ liệu - cách viết các truy vấn sẽ trình bày sau. Ở đây muốn tham chiếu đến bảng nào, hãy điền tên bảng đó vào. Điền làNGANH
, nó sẽ tham khảo các dòng dữ liệu của bảng ngànhBound Column
là thứ tự cột cần liên kết dữ liệu, ở đây cộtNGANHID
của bảngNGANH
là giá trị tham chiếu, cột này có vị trí số 1 - nên điền 1Column Count
là số cột - tính từ cột 1 cần lấy dữ liệu đưa vào Combo Box. Cần lấy cột 1 và 2 (tức cột NGANHID và TENGANH)
Làm tương tự cho cột NIENKHOAID
tham chiếu đến bảng NIENKHOA
Lúc này khi soạn thảo dữ liệu bảng, nó xuất hiện Combo Box có thể chọn giá trị, những giá trị này tham chiếu từ dữ liệu bảng khác.
Để ý, nếu muốn ẩn đi cột thứ nhất chỉ hiện thị cột thứ hai (tên ngành) để nhìn dữ liệu trực quan hơn.
Thì có thể thiết lập độ rộng cột cần ẩn là 0cm
vào thuộc tính Colunm Widths
.
Ví dụ 0cm;2cm
có nghĩa cột 1 0cm, cột 2 rộng 2cm (nhớ là cột trong Combo Box). Kết quả sẽ là:
Dữ liệu mẫu
Bảng HOCSINH
Bảng này quản lý danh sách học sinh các lớp, nó có các trường dữ liệu như sau:
LookUp nguồn Value List
Trong trường giới tính GT
nhận giá trị logic YES/NO
, ấn định
nếu là YES thì là NAM, và NO là Nữ. Mặc định thì dữ liệu là checkbox (hộp kiểm để lựa chọn).
Nếu muốn thay hộp kiểm này bằng Combo Box để có một danh sách đổ xuống chọn NAM/NỮ thì
dùng Lookup với thiết lập như sau:
Display Control
chọnCombo Box
Row Source Type
chọnValue List
Row Source
liệt kê các giá trị của bảng nguồn, mỗi giá trị cách nhau bởi dấu;
, chuỗi thì đặt trong dấu""
như bảng-1 NAM 0 NỮ
thì điền vào-1;"Nam";0;"Nữ"
Bound Column
chọn là1
, nghĩa là cột 1 là nguồn gán giá trịColunm Widths
chọn là0cm;2cm;
để ẩn -1, 0 giữ hiện thị Nam, Nữ
Dữ liệu mẫu:
Bảng MONHOC
Bảng này để quản lý các môn học, cấu trúc như sau
Dữ liệu mẫu:
Bảng DIEM
Bảng này lưu trữ điểm của các môn học, cấu trúc như sau:
Nạp dữ liệu vào MS Access từ file Excel
Có thể nạp dữ liệu từ một Worksheet vào một bảng của MS Access. Ví dụ file Excel, có worksheet tên
HOCSINH
như sau: có có dòng đầu tiên giống tên các cột của bảng HOCSINH trong Access.
Ví dụ, để nạp dữ liệu vào bảng HOCSINH
, nhấn phải chuột vào đối tượng bảng, chọn
import từ excel như hình dưới:
Trong cửa số hiện ra, chọn file excel đúng cấu trúc, và thiết lập như hình để nạp:
File dữ liệu mẫu Excel cho bảng HOCSINH: Download
Trên đây là tạo một số bảng mẫu, bài tiếp theo sẽ tiếp tục thiết lập các quan hệ và một số thao tác nâng cao trên các bảng này.