Bài 1 : THIẾT KẾ BẢNG – TABLE

1. Tổng quan về Table

  • Công dụng: Bảng là đối tượng duy nhất trong Access dùng để lưu trữ dữ liệu. Các đối tượng khác như Query (truy vấn), Form (biểu mẫu), Report (báo cáo) chỉ là công cụ để khai thác, hiển thị hoặc in ấn dữ liệu từ các bảng.

  • Cấu trúc: Bảng được tổ chức thành các hàng (row) và cột (column).

    • Cột (Field/Trường): Lưu trữ một thuộc tính riêng lẻ của đối tượng. Ví dụ: Trường HoTenNgaySinhDiaChi. Mỗi trường có một tên duy nhất trong bảng và một kiểu dữ liệu xác định.

    • Hàng (Record/Bản ghi): Lưu trữ thông tin về một đối tượng cụ thể. Ví dụ: Một hàng là tất cả thông tin của nhân viên “Nguyễn Văn A”.

  • Quy tắc đặt tên trong Access:

    • Tên (của Table, Field, Query, Form,…) có độ dài tối đa 64 ký tự.

    • Không được trùng lặp trong cùng một phạm vi (ví dụ: hai Field trong một Table không thể trùng tên).

    • Không được sử dụng các ký tự đặc biệt như dấu chấm (.), dấu chấm than (!), dấu móc vuông ([ ]), dấu nháy đơn (')…

    • Nên đặt tên không dấu, viết liền hoặc sử dụng dấu gạch dưới (_) để phân cách. Ví dụ: MaNVHoTenNgaySinh.

2. Thiết kế Bảng bằng chế độ Design View

Đây là cách tạo bảng “thủ công”, cho phép người dùng tự do khai báo và định nghĩa chi tiết các trường.

Các bước thực hiện:

B1: Khởi tạo CSDL mới (nếu chưa có).

    • Mở Access 2016, chọn Blank desktop database.

    • Đặt tên file cho CSDL tại mục File Name (ví dụ: QLNhanVien.accdb).

    • Chọn thư mục lưu trữ và nhấn Create.

B2: Chuyển sang chế độ Design View.

  • Sau khi tạo CSDL, Access sẽ tự động tạo một bảng mới và mở ở chế độ Datasheet View (hiển thị dạng lưới).

  • Trên thanh Ribbon, chọn tab Home -> nhóm Views -> chọn Design View.

  • Một hộp thoại yêu cầu đặt tên cho bảng hiện ra, nhập tên (ví dụ: NHANVIEN) và nhấn OK.

B3: Khai báo các trường (Field).

  • Cửa sổ thiết kế bảng hiện ra với 3 cột chính:

    • Field Name: Nhập tên trường (ví dụ: MaNVHoTen).

    • Data Type: Chọn kiểu dữ liệu cho trường (xem bảng chi tiết bên dưới).

    • Description: (Tùy chọn) Nhập chú thích, mô tả cho trường để dễ quản lý sau này.

B4: Thiết lập khóa chính (Primary Key).

  • Chọn trường (hoặc nhiều trường bằng cách giữ phím Ctrl) muốn làm khóa chính. Khóa chính dùng để xác định duy nhất mỗi bản ghi, không được trùng và không được để trống.

  • Trên thanh Ribbon (tab Design), nhấn vào biểu tượng Primary Key. Một biểu tượng chìa khóa sẽ xuất hiện bên cạnh trường đã chọn.

  • Ví dụ: Chọn trường MaNV làm khóa chính.

B5: Khai báo các thuộc tính cho trường (Field Properties).

    • Ở nửa dưới của cửa sổ Design View, chọn từng trường để khai báo các thuộc tính chi tiết cho trường đó (xem phần 3).

B6: Lưu Table.

    • Nhấn Ctrl + S hoặc nhấn vào biểu tượng đĩa mềm ở góc trên bên trái (Quick Access Toolbar) để lưu lại cấu trúc bảng.

3. Các kiểu dữ liệu (Data Types) trong Access

Kiểu dữ liệuÝ nghĩa và Mô tảKích thước lưu trữ
Short Text Dùng cho văn bản ngắn, như tên, địa chỉ, số điện thoại.Tối đa 255 ký tự.
Long Text Dùng cho văn bản dài, ghi chú, mô tả. (Thay thế cho kiểu Memo trước đây).Tối đa 65.535 ký tự.
Number Lưu trữ các giá trị số dùng để tính toán. Có nhiều kích thước (Field Size) khác nhau như Byte, Integer, Long Integer, Single, Double.Tùy thuộc vào Field Size.
Date/TimeLưu trữ ngày tháng và giờ.8 byte.
Currency Lưu trữ giá trị tiền tệ, tránh làm tròn số trong tính toán.8 byte.
AutoNumber Tự động tạo một số duy nhất cho mỗi bản ghi mới. Thường được dùng làm khóa chính.4 byte (16 byte cho Replication ID).
Yes/NoLưu trữ giá trị Boolean (Đúng/Sai, Có/Không).1 bit.
OLE Object Lưu trữ các đối tượng được nhúng hoặc liên kết như hình ảnh, tài liệu Word, bảng Excel.Lên tới 2 GB.
Hyperlink Lưu trữ đường dẫn đến một trang web, một file, hoặc một địa chỉ email.Mỗi phần của liên kết có thể chứa tối đa 2048 ký tự.
Attachment Cho phép đính kèm nhiều loại file khác nhau (hình ảnh, tài liệu) vào một bản ghi, tương tự như file đính kèm trong email.Nén hiệu quả, không giới hạn dung lượng (tùy vào không gian CSDL).
Calculated Lưu trữ kết quả của một biểu thức tính toán dựa trên các trường khác trong cùng một bảng.Phụ thuộc vào kiểu dữ liệu của kết quả.
Lookup Wizard… Không phải là một kiểu dữ liệu. Nó tạo một trường cho phép chọn giá trị từ một bảng khác hoặc từ một danh sách có sẵn.Tùy thuộc vào kiểu dữ liệu thực tế của trường.

Lưu ý đặc biệt cho kiểu Number: Tùy theo nhu cầu mà chọn Field Size phù hợp để tiết kiệm bộ nhớ.

Field SizeMiền giá trịSố lẻ tối đa
Byte0 đến 2550
Integer-32.768 đến 32.7670
Long Integer-2.147.483.648 đến 2.147.483.6470
Single-3.4×10³⁸ đến 3.4×10³⁸7
Double-1.79×10³⁰⁸ đến 1.79×10³⁰⁸15
4. Các thuộc tính quan trọng của trường (Field Properties)

Khi chọn một trường trong Design View, bảng Field Properties phía dưới sẽ cho phép bạn tinh chỉnh hành vi và cách hiển thị của trường đó.

Thuộc tính Ý nghĩa và Cách sử dụng
Field Size Với kiểu Text: Xác định số ký tự tối đa có thể nhập. Với kiểu Number: Xác định kiểu con (Byte, Integer,…).
Format Xác định cách hiển thị dữ liệu (ví dụ: định dạng ngày tháng dd/mm/yyyy, định dạng số có dấu phân cách hàng nghìn, tiền tệ…).
Input Mask Tạo một “khuôn” để định dạng dữ liệu khi nhập, giúp việc nhập liệu nhất quán và dễ dàng hơn (ví dụ: nhập số điện thoại (___) ___-____).
Caption Đặt một tên hiển thị thay thế cho tên trường khi xuất hiện trong các cột của bảng, trên Form hoặc Report. Nếu bỏ trống, tên trường sẽ được dùng làm tiêu đề.
Default Value Gán một giá trị mặc định sẽ tự động xuất hiện mỗi khi tạo một bản ghi mới. Ví dụ: Date() cho ngày hiện tại, 0 cho điểm số.
Validation Rule Viết một biểu thức để ràng buộc dữ liệu nhập vào (ví dụ: >0 And <=10 để điểm từ 0 đến 10; >=#01/01/1900# để ngày sinh không thể trước năm 1900).
Validation Text Nhập nội dung thông báo lỗi sẽ hiện ra khi dữ liệu nhập vào không thỏa mãn Validation Rule.
Required Chọn Yes nếu bắt buộc phải nhập dữ liệu cho trường này. Chọn No nếu có thể để trống.
Allow Zero Length Chỉ áp dụng cho kiểu Text/Long Text. Cho phép (Yes) hoặc không cho phép (No) nhập một chuỗi rỗng ("") vào trường.
Indexed Tạo chỉ mục để tăng tốc độ tìm kiếm và sắp xếp trên trường này. Có ba lựa chọn: No (không tạo), Yes (Duplicates OK) (cho phép giá trị trùng), Yes (No Duplicates) (không cho phép giá trị trùng, thường dùng cho khóa chính).

5. Hướng dẫn sử dụng Input Mask (Mặt nạ nhập liệu)

Input Mask sử dụng các ký tự đặc biệt để định nghĩa khuôn nhập liệu. Bạn có thể tự nhập hoặc sử dụng Input Mask Wizard (biểu tượng có dấu ... khi nhấp vào ô Input Mask).

Bảng các ký tự thường dùng:

Ký tựCông dụng
0Bắt buộc phải nhập một chữ số (0-9).
9Có thể nhập một chữ số (0-9) hoặc để trống.
#Có thể nhập một chữ số, dấu cộng (+), dấu trừ (-) hoặc để trống.
LBắt buộc phải nhập một chữ cái (A-Z, a-z).
?Có thể nhập một chữ cái (A-Z, a-z) hoặc để trống.
ABắt buộc phải nhập một chữ cái hoặc chữ số.
aCó thể nhập một chữ cái hoặc chữ số hoặc để trống.
&Bắt buộc phải nhập một ký tự bất kỳ hoặc dấu cách.
CCó thể nhập một ký tự bất kỳ hoặc dấu cách hoặc để trống.
>Chuyển tất cả các ký tự theo sau thành chữ in hoa.
<Chuyển tất cả các ký tự theo sau thành chữ thường.
!Cho biết dữ liệu sẽ được nhập từ phải sang trái (thường dùng cho các mask tùy biến).
\Ký tự theo sau sẽ được hiểu là ký tự văn bản thông thường (ví dụ: \A sẽ hiện chữ A).

Ví dụ:

  • Mã nhân viên dạng “NV001”: Nhập >L<L000 hoặc "NV"000 (ký tự NV sẽ hiện sẵn).
  • Số điện thoại: !\(999") "000\-0000 (sẽ hiển thị ( ) ___ -____)

6. Khai báo các thuộc tính trong bảng Format

Format là thuộc tính dùng để định dạng cách hiển thị của dữ liệu trong bảng, form, report,… mà không làm thay đổi giá trị thực tế của dữ liệu được lưu trữ trong CSDL. Việc định dạng này giúp dữ liệu trở nên trực quan, dễ đọc và chuyên nghiệp hơn.

Tùy theo từng kiểu dữ liệu (Data Type) mà thuộc tính Format sẽ có các tùy chọn và ký tự định dạng khác nhau.

A. Định dạng cho kiểu dữ liệu Number và Currency

1. Các kiểu định dạng có sẵn (Predefined Formats)

Access cung cấp sẵn một số định dạng phổ biến mà bạn có thể chọn từ danh sách thả xuống:

Kiểu định dạngTác dụngVí dụ (với dữ liệu nhập 1234.5)
General NumberHiển thị số đúng như dữ liệu nhập vào, không có dấu phân cách hàng nghìn.1234.5
CurrencyThêm ký hiệu tiền tệ (theo Regional Settings, VD: ₫, $), dấu phân cách hàng nghìn và hai chữ số thập phân.₫1,234.50
FixedHiển thị ít nhất một chữ số, phần thập phân phụ thuộc vào thiết lập Decimal Places.1234.5
StandardGiống Fixed, nhưng có thêm dấu phân cách hàng nghìn.1,234.5
PercentNhân giá trị với 100 và thêm dấu phần trăm (%).12.30%
ScientificHiển thị số dưới dạng ký hiệu khoa học.1.23E+03

2. Sử dụng ký tự để tự tạo định dạng (Custom Formats)

Bạn có thể tự tạo định dạng riêng bằng cách sử dụng các ký tự đặc biệt. Một định dạng có thể gồm tối đa 4 phần, cách nhau bởi dấu chấm phẩy (;):

  • Phần 1: Định dạng cho số dương.

  • Phần 2: Định dạng cho số âm.

  • Phần 3: Định dạng cho số 0.

  • Phần 4: Định dạng cho giá trị Null.

Bảng các ký tự định dạng:

Ký tựÝ nghĩa
. (dấu chấm)Dùng làm dấu phân cách thập phân (phụ thuộc Regional Settings).
, (dấu phẩy)Dùng làm dấu phân cách hàng nghìn.
0Placeholder số: Nếu có chữ số tại vị trí này thì hiển thị, nếu không hiển thị số 0.
#Placeholder số: Nếu có chữ số tại vị trí này thì hiển thị, nếu không không hiển thị gì.
$Hiển thị ký tự đô la (hoặc ký tự tiền tệ khác tùy hệ thống).
%Nhân giá trị với 100 và thêm dấu % vào cuối.
E- / E+Hiển thị số dưới dạng ký hiệu khoa học.
ColorQui định màu sắc cho chữ, có thể là: [Black][Blue][Green][Cyan][Red][Magenta][Yellow][White].

Ví dụ minh họa:

  • Định dạng: #,##0.00

    • Dữ liệu 1234.5 sẽ hiển thị: 1,234.50

  • Định dạng: $#,##0.00;[Red]$-#,##0.00;"Zero";"Null"

    • Phần 1 (số dương): $#,##0.00 → Dương: $1,234.50

    • Phần 2 (số âm): [Red]$-#,##0.00 → Âm: $-1,234.50 (màu đỏ)

    • Phần 3 (số 0): "Zero" → Hiển thị chữ Zero

    • Phần 4 (Null): "Null" → Hiển thị chữ Null

B. Định dạng cho kiểu dữ liệu Date/Time

1. Các kiểu định dạng có sẵn (Predefined Formats)

Kiểu định dạngCách hiển thịVí dụ (với ngày 12/09/2002, giờ 07:30:45 PM)
General DateNgày và Giờ (nếu có).12/09/2002 07:30:45 PM
Long DateThứ, Ngày tháng, Năm (dạng chữ).Friday, 12 September, 2002
Medium DateNgày-Tháng-Năm (dạng số).12-09-02
Short DateNgày/Tháng/Năm (dạng số).12/09/02
Long TimeGiờ: Phút: Giây kèm AM/PM.07:56:53 AM
Medium TimeGiờ: Phút kèm AM/PM.07:59 AM
Short TimeGiờ: Phút (dạng 24h).08:03

2. Sử dụng ký tự để tự tạo định dạng (Custom Formats)

Bạn có thể kết hợp các ký tự dưới đây để tạo định dạng ngày tháng tùy ý.

Ký tựÝ nghĩa
: (colon)Dấu phân cách giờ, phút, giây.
/Dấu phân cách ngày, tháng, năm.
dNgày trong tháng (1 – 31), không có số 0 ở đầu.
ddNgày trong tháng (01 – 31), có số 0 ở đầu.
dddTên viết tắt của ngày trong tuần (Sun – Sat).
ddddTên đầy đủ của ngày trong tuần (Sunday – Saturday).
wThứ tự ngày trong tuần (1 – 7).
wwThứ tự tuần trong năm (1 – 54).
mTháng (1 – 12), không có số 0 ở đầu.
mmTháng (01 – 12), có số 0 ở đầu.
mmmTên viết tắt của tháng (Jan – Dec).
mmmmTên đầy đủ của tháng (January – December).
qQuý trong năm (1 – 4).
yNgày thứ bao nhiêu trong năm (1 – 366).
yyNăm (2 chữ số cuối).
yyyyNăm (4 chữ số).
hGiờ (0 – 23), không có số 0 ở đầu.
nPhút (0 – 59), không có số 0 ở đầu.
nnPhút (00 – 59), có số 0 ở đầu.
sGiây (0 – 59), không có số 0 ở đầu.
ssGiây (00 – 59), có số 0 ở đầu.
AM/PMHiển thị AM hoặc PM (12 giờ).

Ví dụ minh họa:

  • Định dạng: dddd, mmm d, yyyy

    • Dữ liệu 02/06/1996 sẽ hiển thị: Monday, Jun 2, 1996

  • Định dạng: "Ngày" dd "tháng" mm "năm" yyyy

    • Dữ liệu 02/06/1996 sẽ hiển thị: Ngày 02 tháng 06 năm 1996

C. Định dạng cho kiểu dữ liệu Yes/No

Kiểu Yes/No có 3 định dạng có sẵn:

Định dạngHiển thị khi giá trị là YesHiển thị khi giá trị là No
True/FalseTrueFalse
Yes/NoYesNo
On/OffOnOff

Bạn cũng có thể tự tạo định dạng với 3 phần cách nhau dấu ;:

  • Phần 1: (Thường để trống)

  • Phần 2: Chuỗi hiển thị cho giá trị Yes/True/On

  • Phần 3: Chuỗi hiển thị cho giá trị No/False/Off

Ví dụ: ;"Đúng";"Sai" → Giá trị Yes sẽ hiển thị là “Đúng”, No sẽ hiển thị là “Sai”.

D. Định dạng cho kiểu dữ liệu Text và Memo

Bạn có thể sử dụng các ký hiệu để tạo khuôn hiển thị cho văn bản.

Ký tựÝ nghĩa
@Placeholder ký tự: Yêu cầu phải có một ký tự hoặc khoảng trống tại vị trí này.
&Placeholder ký tự: Không bắt buộc, có thể có ký tự hoặc không.
<Chuyển tất cả các ký tự sang chữ thường.
>Chuyển tất cả các ký tự sang chữ in hoa.

Ví dụ minh họa:

  • Định dạng: >

    • Dữ liệu nhập "Nguyen Van A" sẽ hiển thị: "NGUYEN VAN A"

  • Định dạng: @@@@@

    • Dữ liệu nhập "ABC" sẽ hiển thị: "ABC " (thêm 2 khoảng trống cho đủ 5 ký tự)

  • Định dạng: (&) @@@-@@@@

    • Dữ liệu nhập "1234567890" sẽ hiển thị: (1) 234-567890

Kết luận

Thuộc tính Format là một công cụ mạnh mẽ để trình bày dữ liệu. Việc nắm vững các ký tự và quy tắc định dạng sẽ giúp bạn tạo ra các bảng, biểu mẫu và báo cáo chuyên nghiệp, dễ nhìn và phù hợp với nhu cầu thực tế. Hãy luôn nhớ rằng Format chỉ thay đổi cách hiển thị, dữ liệu gốc trong bảng vẫn được giữ nguyên.

7. Thiết kế các mối quan hệ (Relationships)

Sau khi tạo các bảng, chúng ta cần thiết lập mối liên kết giữa chúng để đảm bảo tính nhất quán và toàn vẹn dữ liệu.

7.1. Mục đích:

  • Kết nối thông tin từ nhiều bảng với nhau.

  • Tránh dư thừa dữ liệu.

  • Đảm bảo tính toàn vẹn dữ liệu (ví dụ: không thể nhập một nhân viên vào phòng ban không tồn tại).

7.2. Các loại quan hệ:

  • Quan hệ 1 – 1 (Một – Một): Mỗi bản ghi trong bảng A chỉ tương ứng với duy nhất một bản ghi trong bảng B và ngược lại. (Ít dùng).

  • Quan hệ 1 – N (Một – Nhiều): Phổ biến nhất. Mỗi bản ghi trong bảng A có thể tương ứng với nhiều bản ghi trong bảng B. Ví dụ: Một phòng ban (PHONGBAN) có nhiều nhân viên (NHANVIEN). Bảng PHONGBAN là bảng “một”, bảng NHANVIEN là bảng “nhiều”.

  • Quan hệ N – N (Nhiều – Nhiều): Một bản ghi trong bảng A có thể tương ứng với nhiều bản ghi trong bảng B và ngược lại. Để thực hiện quan hệ này trong Access, cần có một bảng trung gian. Ví dụ: Một hóa đơn có nhiều sản phẩm, và một sản phẩm có thể nằm trong nhiều hóa đơn. Bảng trung gian CHITIET_HOADON sẽ chứa các khóa chính của cả hai bảng kia.

7.3. Các bước tạo quan hệ:

B1: Trên thanh Ribbon, chọn tab Database Tools -> nhóm Relationships -> nhấn Relationships.

B2: Hộp thoại Show Table xuất hiện. Chọn các bảng cần tạo quan hệ (giữ phím Ctrl để chọn nhiều bảng) và nhấn Add. Sau đó nhấn Close.

B3: Trong cửa sổ Relationships, thực hiện kéo thả:

    • Tìm trường khóa chính (bảng “một”) – Ví dụ: MaPhong trong bảng PHONGBAN.

    • Kéo nó và thả lên trường khóa ngoại tương ứng (bảng “nhiều”) – Ví dụ: MaPhong trong bảng NHANVIEN.

B4: Hộp thoại Edit Relationships hiện ra. Tại đây, bạn có thể thiết lập các tùy chọn quan trọng:

    • Enforce Referential Integrity (Thực thi toàn vẹn dữ liệu): Nên chọn. Nó đảm bảo không thể có bản ghi ở bảng “nhiều” mà không tồn tại bản ghi cha tương ứng ở bảng “một”. Ví dụ: không thể nhập MaPhong = "P005" cho nhân viên nếu trong bảng PHONGBAN không có phòng “P005”.

    • Cascade Update Related Fields (Cập nhật dữ liệu liên quan): Nếu chọn, khi bạn thay đổi giá trị khóa chính ở bảng “một” (ví dụ: sửa MaPhong từ "P01" thành "PB01"), Access sẽ tự động cập nhật giá trị đó ở tất cả các bản ghi liên quan ở bảng “nhiều”.

    • Cascade Delete Related Records (Xóa dữ liệu liên quan): Nếu chọn, khi bạn xóa một bản ghi ở bảng “một” (ví dụ: xóa phòng ban "P01"), Access sẽ tự động xóa tất cả các bản ghi liên quan ở bảng “nhiều” (ví dụ: xóa tất cả nhân viên thuộc phòng "P01"). Cần thận trọng với tùy chọn này.

B5: Nhấn Create để tạo liên kết. Một đường nối sẽ xuất hiện giữa hai bảng, với ký hiệu 1 và  (vô cực) thể hiện quan hệ một-nhiều.

7.4. Sửa/Xóa quan hệ:

  • Sửa: Nhấp đúp chuột vào đường nối quan hệ.

  • Xóa: Nhấp chuột phải vào đường nối quan hệ, chọn Delete.

Bài tập Tạo bảng

Bài tập 1

Câu 1: Tạo CSDL và các bảng

Yêu cầu: Tạo CSDL QLNV.accdb (Quản lý nhân viên) lưu trên ổ đĩa D: với tên thư mục là Họ tên học viên. Trong CSDL này, tạo các bảng sau:

a. Bảng NHANVIEN

Field nameField typeField sizeDescription
MasoText5Mã số nhân viên
HodemText20Họ đệm nhân viên
TenText10Tên nhân viên
NsinhDate/time Ngày sinh nhân viên
NuYes/No Giới tính nhân viên
QueText30Quê nhân viên
HesoNumberDoubleHệ số lương
LCBNumberDoubleLương cơ bản
PhucapNumberDoubleLương phụ cấp
TongcongNumberDoubleTổng lương
MadvText5Mã đơn vị
MacvText5Mã chức vụ
MavhText5Mã văn hóa

b. Bảng DMDV (Danh mục đơn vị)

Field nameField typeField sizeDescription
MadvText5Mã đơn vị
TendonviText30Tên đơn vị

Dữ liệu mẫu cho bảng DMDV:

MADVTENDV
01Ban giám đốc
02Phòng hành chánh
03Phòng tài vụ
04Phòng kinh doanh
05Phân xưởng 1
06Phân xưởng 2

c. Bảng DMCV (Danh mục chức vụ)

Field nameField typeField sizeDescription
MacvText5Mã chức vụ
ChucvuText30Chức vụ

Dữ liệu mẫu cho bảng DMCV:

MACVCHUCVU
01Giám Đốc
02Phó Giám Đốc
03Trưởng Phòng
04Phó Phòng
05Kế Toán Trưởng
06Kế Toán
07Thủ Quỹ
08Quản Đốc
09Nhân Viên
10Lái Xe
11Bảo Vệ

d. Bảng DMVH (Danh mục văn hóa)

Field nameField typeField sizeDescription
MavhText5Mã văn hóa
TdoText30Trình độ

Dữ liệu mẫu cho bảng DMVH:

MAVHTDO
01Tiến sĩ
02Thạc sĩ
03Kỹ sư
04Cử nhân
05Trung cấp
06Chưa qua đào tạo

Câu 2: Sao chép Table

Yêu cầu: Sao chép Table NHANVIEN thành Table mới là DANHSACHNV.

Hướng dẫn thực hiện:

  • B1: Kích chuột phải vào Table NHANVIEN → Chọn lệnh Copy

  • B2: Kích chuột phải vào cửa sổ Table → Chọn lệnh Paste

  • B3: Xuất hiện cửa sổ, nhập tên mới cho Table là: DANHSACHNV

  • B4: Chọn mục: Structure and Data (sao chép cấu trúc và dữ liệu)

  • B5: Chọn OK

Câu 3: Thao tác sắp xếp dữ liệu

Yêu cầu: Mở Table DANHSACHNV ở chế độ Datasheet View và thực hiện các sắp xếp sau:

 
 
STTYêu cầuCách thực hiện
1Sắp xếp cột Ten tăng dần (A→Z)Chọn cột Ten → Home → Sort & Filter → Sort Ascending
2Sắp xếp cột Nsinh giảm dần (mới nhất lên đầu)Chọn cột Nsinh → Home → Sort & Filter → Sort Descending
3Sắp xếp cột Hodem giảm dần (Z→A)Chọn cột Hodem → Home → Sort & Filter → Sort Descending

Lưu ý: Sau mỗi lần sắp xếp, quan sát sự thay đổi thứ tự các dòng dữ liệu.

Câu 4: Tìm kiếm và thay thế dữ liệu

Yêu cầu: Thực hành các thao tác tìm kiếm trên Table NHANVIEN:

STTYêu cầuGiá trị tìmPhạm vi tìm
1Tìm nhân viên có mã số “A05”A05Cột Maso
2Tìm các nhân viên quê ở “BẠC LIÊU”BẠC LIÊUCột Que
3Tìm các nhân viên có tên bắt đầu bằng chữ “T”T*Cột Ten
4Tìm các nhân viên sinh năm 1968/*/1968Cột Nsinh

Hướng dẫn thực hiện:

  • B1: Mở Table ở chế độ Datasheet View

  • B2: Chọn cột muốn tìm kiếm

  • B3: Nhấn Ctrl + F hoặc Home → Find → Find

  • B4: Trong hộp thoại Find and Replace:

    • Find What: Nhập giá trị cần tìm

    • Match: Chọn kiểu so sánh phù hợp (Any Part of Field, Whole Field, Start of Field)

    • Look In: Chọn cột hiện tại hoặc toàn bảng

  • B5: Nhấn Find Next để tìm tuần tự

Câu 5: Thiết lập khóa chính và liên kết

a. Thiết lập khóa chính (Primary Key)

Yêu cầu: Thiết lập khóa chính cho các bảng:

 
 
BảngTrường khóa chínhGhi chú
NHANVIENMasoMỗi nhân viên có mã duy nhất
DMDVMadvMỗi đơn vị có mã duy nhất
DMCVMacvMỗi chức vụ có mã duy nhất
DMVHMavhMỗi trình độ có mã duy nhất

Hướng dẫn thực hiện:

  • B1: Mở bảng ở chế độ Design View

  • B2: Chọn trường làm khóa chính

  • B3: Trên thanh Ribbon (tab Design), nhấn Primary Key

  • B4: Lưu bảng

b. Thiết lập liên kết giữa các bảng

Yêu cầu: Tạo các mối quan hệ sau:

Quan hệBảng 1 (một)Bảng 2 (nhiều)Trường liên kết
1-NDMDV (Madv)NHANVIEN (Madv)Madv
1-NDMCV (Macv)NHANVIEN (Macv)Macv
1-NDMVH (Mavh)NHANVIEN (Mavh)Mavh

Hướng dẫn thực hiện:

  1. Mở cửa sổ Relationships:

    • Chọn tab Database Tools → Nhóm Relationships → Relationships

  2. Thêm các bảng:

    • Trong hộp thoại Show Table, chọn tất cả các bảng: NHANVIEN, DMDV, DMCV, DMVH

    • Nhấn Add → Close

  3. Tạo từng quan hệ:

    • Quan hệ DMDV – NHANVIEN:

      • Kéo trường Madv từ bảng DMDV thả lên trường Madv của bảng NHANVIEN

      • Trong hộp thoại Edit Relationships, đánh dấu chọn Enforce Referential Integrity

      • Chọn Create

    • Quan hệ DMCV – NHANVIEN:

      • Kéo trường Macv từ bảng DMCV thả lên trường Macv của bảng NHANVIEN

      • Đánh dấu chọn Enforce Referential Integrity

      • Chọn Create

    • Quan hệ DMVH – NHANVIEN:

      • Kéo trường Mavh từ bảng DMVH thả lên trường Mavh của bảng NHANVIEN

      • Đánh dấu chọn Enforce Referential Integrity

      • Chọn Create

  4. Quan sát kết quả:

    • Các đường nối xuất hiện giữa các bảng

    • Ký hiệu 1 và  thể hiện quan hệ một-nhiều

  5. Lưu và đóng:

    • Nhấn Ctrl + S để lưu bố trí Relationships

    • Đóng cửa sổ Relationships

Bài tập 2

Câu 1: Tạo CSDL mới

Yêu cầu: Tạo CSDL QLNX.accdb (Quản lý Nhập Xuất) lưu trên ổ đĩa D:

Hướng dẫn :Câu 1: Tạo CSDL mới

Các bước thực hiện:

BướcThao tácHình ảnh minh họaGiải thích
1Mở Microsoft Access 2016[Access 2016] 
2Chọn Blank desktop database[Blank database]Tạo CSDL trống
3Tại mục File Name, nhập: QLNX.accdb[File Name: QLNX.accdb]Đặt tên cho CSDL
4Nhấn nút Browse (biểu tượng thư mục)[📁]Chọn nơi lưu trữ
5Chọn ổ đĩa D: và tạo thư mục theo tên mìnhD:\TEN_HOC_VIEN\Lưu theo yêu cầu
6Nhấn Create[Create]Tạo CSDL

Kết quả: CSDL QLNX.accdb được tạo và mở ra với một bảng trống mặc định Table1.

Câu 2: Tạo các bảng với cấu trúc chi tiết

a. Bảng DMKHO (Danh mục kho)

Tên trườngKiểu dữ liệuThuộc tính
[MAKHO]TextDài 2, format: chữ hoa, Input mask: 2 chữ, bắt buộc nhập, Primary Key
TENKHOTextDài 20, bắt buộc nhập
DCKHOTextDài 40

Yêu cầu nhập liệu: Nhập ít nhất 6 kho hàng.

Hướng dẫn : Câu 2a: Tạo bảng DMKHO (Danh mục kho)

Bước 1: Tạo bảng mới và chuyển sang Design View

BướcThao tácGiải thích
1.1Đóng bảng Table1 mặc định (không lưu) 
1.2Chọn tab Create → nhấn Table DesignMở cửa sổ thiết kế bảng

Bước 2: Khai báo các trường

Field NameData TypeDescription (tùy chọn)
MAKHOTextMã kho
TENKHOTextTên kho
DCKHOTextĐịa chỉ kho

Thao tác chi tiết:

  • Nhập lần lượt tên trường vào cột Field Name

  • Chọn kiểu dữ liệu phù hợp trong cột Data Type

Bước 3: Thiết lập thuộc tính cho từng trường

Trường MAKHO:

  • Chọn trường MAKHO ở phần trên

  • Phần Field Properties phía dưới, khai báo:

Thuộc tínhGiá trịGiải thích
Field Size2Độ dài tối đa 2 ký tự
Format>Chuyển sang chữ hoa khi hiển thị
Input Mask>LL2 chữ cái, tự động in hoa
RequiredYesBắt buộc nhập
Allow Zero LengthNoKhông cho phép chuỗi rỗng

Trường TENKHO:

Thuộc tínhGiá trịGiải thích
Field Size20Độ dài tối đa 20 ký tự
RequiredYesBắt buộc nhập

Trường DCKHO:

Thuộc tínhGiá trị
Field Size40

Bước 4: Thiết lập khóa chính

  • Chọn trường MAKHO

  • Trên tab Design, nhấn Primary Key

  • Xuất hiện biểu tượng chìa khóa bên cạnh trường MAKHO

Bước 5: Lưu bảng

  • Nhấn Ctrl + S

  • Nhập tên bảng: DMKHO

  • Nhấn OK

Bước 6: Nhập dữ liệu mẫu

  • Chuyển sang Datasheet View (View → Datasheet View)

  • Nhập dữ liệu mẫu, ít nhất 6 kho:

MAKHOTENKHODCKHO
LBLong Bình123 Đường A
TDThủ Đức456 Đường B
CHChánh Hưng789 Đường C
PXPhú Xuân321 Đường D

b. Bảng DMVT (Danh mục vật tư)

Tên trườngKiểu dữ liệuThuộc tính
[MAVT]TextDài 4, format: chữ hoa, Input mask: 2 chữ + 2 số, bắt buộc nhập, Primary Key
TENVTTextDài 30, bắt buộc nhập
QCACHTextDài 15
DVTINHTextDài 10

Yêu cầu nhập liệu: Nhập ít nhất 6 loại vật tư.

Hướng dẫn :Câu 2b: Tạo bảng DMVT (Danh mục vật tư)

Bước 1: Tạo bảng mới trong Design View

  • Tab Create → Table Design

Bước 2: Khai báo các trường

Field NameData Type
MAVTText
TENVTText
QCACHText
DVTINHText

Bước 3: Thiết lập thuộc tính

Trường MAVT:

Thuộc tínhGiá trịGiải thích
Field Size4Độ dài 4 ký tự
Format>Chữ hoa
Input Mask>LL002 chữ + 2 số, tự động in hoa
RequiredYesBắt buộc nhập

Trường TENVT:

Thuộc tínhGiá trị
Field Size30
RequiredYes

Trường QCACH:

Thuộc tínhGiá trị
Field Size15

Trường DVTINH:

Thuộc tínhGiá trị
Field Size10

Bước 4: Thiết lập khóa chính

  • Chọn trường MAVT → Primary Key

Bước 5: Lưu bảng

  • Ctrl + S → Tên: DMVT → OK

Bước 6: Nhập dữ liệu mẫu (ít nhất 6 vật tư)

MAVTTENVTQCACHDVTINH
VE03Ván ép 3 lyLoại 1Tấm
VE05Ván ép 5 lyLoại 2Tấm
TS03Tôn sóng 3 lyMạ màuTấm
TS05Tôn sóng 5 lyMạ màuTấm

c. Bảng NHANVIEN (Nhân viên). Đây là dữ liệu cho Bảng NHANVIEN

Tên trườngKiểu dữ liệuThuộc tính chi tiết
[MANV]TextDài 4, format chữ hoa, Input mask: 2 chữ + 2 số, bắt buộc nhập, Primary Key
HOTENNVTextDài 30, bắt buộc nhập
NGSINHDate/TimeFormat dd/mm/yyyy
NUYes/NoYes: Nữ, No: Nam
DCHITextDài 50
BCHEYes/NoBiên chế hay không
NGAYVLDate/TimeFormat dd/mm/yyyy, Input mask nhập không cần dấu /
LGCBNumberField size: Integer, Format: Standard, Decimal places: 0
GHICHUMemoGhi chú
HINHOLE ObjectLưu ảnh nhân viên

Hướng dẫn Câu 2c: Tạo bảng NHANVIEN

Bước 1: Tạo bảng mới trong Design View

Bước 2: Khai báo và thiết lập thuộc tính từng trường

Field NameData TypeThuộc tính chi tiết
MANVTextField Size: 4, Format: >, Input Mask: >LL00, Required: Yes
HOTENNVTextField Size: 30, Required: Yes
NGSINHDate/TimeFormat: dd/mm/yyyy
NUYes/NoFormat: Yes/No
DCHITextField Size: 50
BCHEYes/No 
NGAYVLDate/TimeFormat: dd/mm/yyyy, Input Mask: 00/00/0000
LGCBNumberField Size: Long Integer, Format: Standard, Decimal Places: 0
GHICHULong Text(Memo)
HINHOLE Object 

Bước 3: Thiết lập khóa chính

  • Chọn trường MANV → Primary Key

Bước 4: Lưu bảng

  • Ctrl + S → Tên: NHANVIEN → OK

Bước 5: Nhập dữ liệu theo mẫu (xem bảng trong đề bài)

d. Bảng NHAPXUAT (Nhập xuất). Đây là dữ liệu cho Bảng NHAPXUAT

Tên trườngKiểu dữ liệuThuộc tính chi tiết
STTAutoNumberĐánh số tự động
NGAYDate/TimeFormat dd/mm/yyyy, Input mask, bắt buộc nhập, Default = Date()
LOAITextDài 1, format chữ hoa, bắt buộc nhập (N: Nhập, X: Xuất)
PHIEUTextDài 4, format chữ hoa, bắt buộc nhập
KHACHTextDài 30, bắt buộc nhập
LYDOTextDài 50
MAKHOTextDài 2, format chữ hoa, bắt buộc nhập, Lookup từ DMKHO
MAVTTextDài 4, format chữ hoa, bắt buộc nhập, Lookup từ DMVT
SOLGNumberInteger, Format Standard, 0 số lẻ, bắt buộc nhập, >0 (có báo lỗi)
DONGIANumberDouble, Format Standard, 0 số lẻ, bắt buộc nhập, >0 (có báo lỗi)
MANVTextDài 4, format chữ hoa, bắt buộc nhập, Lookup từ bảng NHANVIEN

Hướng dẫn Câu 2d: Tạo bảng NHAPXUAT

Bước 1: Tạo bảng mới trong Design View

Bước 2: Khai báo các trường (theo thứ tự)

Field NameData Type
STTAutoNumber
NGAYDate/Time
LOAIText
PHIEUText
KHACHText
LYDOText
MAKHOText
MAVTText
SOLGNumber
DONGIANumber
MANVText

Bước 3: Thiết lập thuộc tính chi tiết

Trường STT:

  • Data Type: AutoNumber

  • New Values: Increment

Trường NGAY:

Thuộc tínhGiá trị
Formatdd/mm/yyyy
Input Mask00/00/0000
RequiredYes
Default ValueDate()

Trường LOAI:

Thuộc tínhGiá trị
Field Size1
Format>
RequiredYes

Trường PHIEU:

Thuộc tínhGiá trị
Field Size4
Format>
RequiredYes

Trường KHACH:

Thuộc tínhGiá trị
Field Size30
RequiredYes

Trường LYDO:

Thuộc tínhGiá trị
Field Size50

Trường MAKHO:

Thuộc tínhGiá trị
Field Size2
Format>
RequiredYes

Đặc biệt – Lookup Wizard cho MAKHO:

  • Tại dòng Data Type của trường MAKHO, chọn Lookup Wizard

  • Chọn “I want the lookup column to look up the values in a table or query” → Next

  • Chọn bảng DMKHO → Next

  • Đưa các trường MAKHOTENKHO vào Selected Fields → Next

  • Điều chỉnh độ rộng cột nếu cần → Next

  • Chọn MAKHO làm trường lưu trữ → Next

  • Nhấn Finish

Trường MAVT:

Thuộc tínhGiá trị
Field Size4
Format>
RequiredYes

Tạo Lookup Wizard cho MAVT (tương tự MAKHO, chọn bảng DMVT)

Trường SOLG:

Thuộc tínhGiá trị
Data TypeNumber
Field SizeInteger
FormatStandard
Decimal Places0
RequiredYes
Validation Rule>0
Validation Text“Số lượng phải lớn hơn 0”

Trường DONGIA:

Thuộc tínhGiá trị
Data TypeNumber
Field SizeDouble
FormatStandard
Decimal Places0
RequiredYes
Validation Rule>0
Validation Text“Đơn giá phải lớn hơn 0”

Trường MANV:

Thuộc tínhGiá trị
Field Size4
Format>
RequiredYes

Tạo Lookup Wizard cho MANV (tương tự, chọn bảng NHANVIEN, hiển thị MANV và HOTENNV)

Bước 4: Thiết lập khóa chính

  • Chọn trường STT → Primary Key

Bước 5: Lưu bảng

  • Ctrl + S → Tên: NHAPXUAT → OK

Bước 6: Nhập dữ liệu mẫu

  • Chuyển sang Datasheet View

  • Nhập dữ liệu theo bảng đã cho (chú ý nhập đúng mã kho, mã vật tư, mã NV đã có)

Câu 3: Thao tác trên Design View

Yêu cầu: Mở bảng NHAPXUAT ở chế độ Design View và thực hiện:

  1. Chèn field:

    • Chèn thêm 1 field tên GHICHU2 (Text, dài 50) vào sau field LYDO

    • Quan sát sự thay đổi

  2. Xóa field:

    • Xóa field GHICHU2 vừa tạo

  3. Di chuyển field:

    • Di chuyển field MANV lên sau field NGAY

    • Sau đó di chuyển trở lại vị trí ban đầu

  4. Chuyển đổi chế độ xem:

    • Chuyển từ Design View sang Datasheet View và ngược lại nhiều lần để làm quen

Câu 4: Thao tác trên bảng NHANVIEN

Yêu cầu: Thực hành thêm, chèn, sửa, xóa field trên bảng NHANVIEN:

  1. Thêm một field tạm thời

  2. Chèn một field vào giữa

  3. Sửa tên một field

  4. Xóa field vừa thêm

Lưu ý quan trọng: Sau khi thực hành, phải trả lại tên, thứ tự và kiểu dữ liệu của các field giống như ban đầu.

Câu 5: Thiết lập liên kết

Yêu cầu: Thiết lập các mối quan hệ giữa các bảng trong CSDL QLNX:

Quan hệBảng 1 (một)Bảng 2 (nhiều)Trường liên kết
1-NDMKHO (MAKHO)NHAPXUAT (MAKHO)MAKHO
1-NDMVT (MAVT)NHAPXUAT (MAVT)MAVT
1-NNHANVIEN (MANV)NHAPXUAT (MANV)MANV

Yêu cầu bổ sung: Đánh dấu chọn Enforce Referential Integrity cho tất cả các quan hệ.

Câu 6: Nhập liệu

Yêu cầu: Chuyển sang chế độ Datasheet View và nhập đầy đủ dữ liệu cho các bảng theo dữ liệu mẫu đã cho.

Câu 7: Bổ sung dữ liệu

Yêu cầu: Bổ sung thêm 3-5 nhân viên mới với các độ tuổi khác nhau (trẻ, trung niên, lớn tuổi) vào bảng NHANVIEN.

Câu 8: Thao tác trên dữ liệu

Thực hiện các yêu cầu sau trên CSDL QLNX.mdb:

STTYêu cầuHướng dẫn
1Tìm phiếu mang số X013Mở bảng NHAPXUAT, dùng Find (Ctrl+F) tìm “X013” ở cột PHIEU
2Tìm người khách mang tên HuyềnTìm trong cột KHACH với từ khóa “Huyền”
3Sắp xếp bảng NHAPXUAT theo Mã kho và Mã vật tưDùng Sort Ascending trên cột MAKHO, sau đó MAVT
4Thực hành Freeze cộtChọn cột → Home → Freeze Fields
5Thực hành Hide cộtChọn cột → chuột phải → Hide Fields
6Xem trước khi inFile → Print → Print Preview
7Sao chép TableCopy → Paste → đặt tên mới
8Đổi tên TableChuột phải → Rename
9Xóa TableChuột phải → Delete

Lưu ý quan trọng: Sau khi thực hành các thao tác copy, đổi tên, xóa, phải trả lại tên và số lượng Table như ban đầu.

Kiểm tra thực hành

Thời gian 90 phút

Hãy thiết kế cơ sở dữ liệu sau đây. Không cần nhập dữ liệu