Nhập môn Access

Yukino Ichikawa

Thành viên
Chào các bạn.
Ngày nay, kiến thức được trình bày trên tuhocvba.net (THVBA) đã trở thành một thương hiệu. Cái gì trình bày trên THVBA thì đều đáng đọc, dễ đọc và dễ hiểu.
Đáp ứng nguyện vọng của các bạn, muốn tìm hiểu thêm về Access, THVBA cung cấp bài học này.
Tôi nhận được yêu cầu từ Admin tuhocvba, cố gắng tìm hiểu thực trạng Access ở Việt Nam ra sao, đã có những tài liệu nào, khó khăn của các bạn khi tiếp cận Access là gì, môi trường thảo luận Access trên các diễn đàn ở Việt Nam đã tốt chưa?
Sau khi tìm hiểu thực trạng, tôi bắt tay vào loạt bài dịch này, hi vọng sẽ cung cấp cho các bạn những kiến thức bổ ích theo tiêu chí:
Ngắn gọn, cô đọng, dễ hiểu-dễ thực hành theo.

1. File database access
1.1 Tạo file database access
1.2 Mở file database access
1.3 Đóng file database access

2. Table
2.1 Tạo table
2.2 Mở table
2.3 Thiết kế table

3. Thiết định Field
3.1 Size Field
3.2 Format
3.3 Định dạng kiểu dữ liệu nhập vào

4. Mối quan hệ (Relationship)
4.1 Relationship là gì?
4.2 Table mẫu
4.3 Thiết lập mối quan hệ

5. Truy vấn (Query)
5.1 Tạo và lưu Query
5.2 Hiển thị Query
...
 

vanthanhVBA

Thành viên
1. File database access

1.1 Tạo file database access

Bạn mở ứng dụng Access lên.
Bạn cần đăng nhập để thấy hình ảnh


Click vào Blank database để tạo file access.
Bạn cần đăng nhập để thấy hình ảnh

Bạn nhìn thấy biểu tượng thư mục, click vào đó để chọn đường dẫn lưu file.
Tại đây có một chú ý:
Bạn cần đăng nhập để thấy hình ảnh

Nếu bạn chọn Acces 2007-2016 thì định dạng file sẽ có đuôi là .accdb
Nếu bạn chọn Access 2000 hoặc 2002-2003 thì định dạng file sẽ có đuôi là .mdb
đã có một topic trình bày về sự khác biệt giữa hai định dạng nếu dùng Excel kết nối với Access thông qua VBA Excel.

1.2 Mở file database access
Mở ứng dụng Access, bạn ấn phím tắt Ctr+O.
Bạn cần đăng nhập để thấy hình ảnh

Đối với các bản Office gần đây (2016), có một điều khá phiền phức khi có sự xuất hiện OneDrive mà thực tế các bạn không dùng.
Đầu tiên, bạn click vào This PC. Sau đó click vào Browse và chọn đường dẫn tới file access cần mở.

1.3 Đóng file database access
Trên ứng dụng Access, bạn vào File => Close.
 

Yukino Ichikawa

Thành viên
2. Table
2.1 Tạo table

Vì các bạn đều đã tiếp cận với Excel, nên tôi sẽ cố gắng dùng các từ ngữ Excel để mô tả về Access, dù điều đó có vẻ không thỏa đáng cho lắm.
Với Excell các bạn có các sheet, thì Access có các Table có ý nghĩa tương đương. Các bạn sẽ lưu trữ dữ liệu ở trên Table.

Ngay khi bạn tạo ra file Access thì trong đó đã có Table1.
Tuy nhiên, nếu muốn tạo Table mới thì làm thế nào?
Bạn vào thẻ Create , sau đó click vào Table.
Bạn cần đăng nhập để thấy hình ảnh

Lúc này bạn sẽ thấy có một Table mới được tạo ra là Table2.
Bạn cần đăng nhập để thấy hình ảnh


Table như vậy thì chưa có thông tin gì cả, bạn click chuột phải vào Table1 và chọn Design View.
Bạn cần đăng nhập để thấy hình ảnh

Hộp thoại dưới đây sẽ hiển thị ra, hỏi bạn có muốn lưu Table1 hay không?
Bạn cần đăng nhập để thấy hình ảnh

Bạn giữ nguyên tên hoặc thay đổi theo tên mà bạn muốn (nên gõ bằng ký tự không dấu, viết liền). Sau đó ấn OK.

2.2 Mở Table
Thao tác rất đơn giản. Ban đầu file Access của bạn mở lên được hiển thị như sau:
Bạn cần đăng nhập để thấy hình ảnh

Bạn double click vào Table1 để mở nó ra.
Bạn cần đăng nhập để thấy hình ảnh

Tương tự như vậy, bạn hãy double click vào Table2 để mở cả Table2.
Bạn cần đăng nhập để thấy hình ảnh

Bạn có thể đổi tên Table2 nhưng trước hết bạn phải Close Table2.
Click chuột phải trên Table2 và chọn Close.
Bạn cần đăng nhập để thấy hình ảnh

Click chuột phải vào Table2 và chọn Rename.
Bạn cần đăng nhập để thấy hình ảnh

Lúc này bạn có thể nhập lại tên cho Table2.
Bạn cần đăng nhập để thấy hình ảnh

Kết quả:
Bạn cần đăng nhập để thấy hình ảnh
 

vanthanhVBA

Thành viên
2.3 Thiết kế Table
Table là nơi lưu trữ dữ liệu trong Database Vì vậy, việc chỉ định lưu trữ loại dữ liệu như thế nào là điều cần thiết. Với mỗi cột dữ liệu, nó là loại dữ liệu gì-điều đó cần phải được chỉ định rõ ràng, ta sẽ thấy điều này khi chọn chế độ Design View.
Bạn cần đăng nhập để thấy hình ảnh

Bạn click chuột phải vào Table1, chọn Design View, khi đó một cửa sổ mới sẽ hiện ra để bạn thiết kế dữ liệu cho Table 1.
Bạn cần đăng nhập để thấy hình ảnh


Tiếng việt ta gọi là cột dữ liệu, nhưng các bạn cũng cần làm quen với tên gọi tiếng anh, gọi là Field-trường thông tin.
Một Table có thể chứa nhiều trường thông tin, cũng giống như một sheet dữ liệu của Excel chứa nhiều cột thông tin.

Mỗi trường thông tin có thể có định dạng dữ liệu khác nhau do chúng ta định nghĩa cho chúng.

Về Field-Trường thông tin

Ta hãy xem xét thông tin 3 vị khách hàng dưới đây:
Mã:
KHNo        1
KHName        Lam Tam Nhu
KHDiaChi    Q1 HCM
NguoiBanHang    Dam Vinh Hoan
SoTien    3000
  
  
KHNo        2
KHName        Ly Hung
KHDiaChi    Q2 HCM
NguoiBanHang    Hong Nhong
SoTien        5000
  
  
KHNo        3
KHName        Diem Huong
KHDiaChi    Q3 HCM
NguoiBanHang    Tam Cong
SoTien        1200
Như vậy ở đây có các trường thông tin là [KHNo],[KHName],[KHDiaChi],[NguoiBanHang],[SoTien] .
Tiếp theo, ta xem xét kiểu dữ liệu cho các trường thôn tin.
[KHNo], [SoTien] là các trường thông tin chứa dữ liệu là SỐ.
[KHName],[KHDiaChi],[NguoiBanHang] là các trường thông tin chứa dữ liệu là CHUỖI KÝ TỰ.

Tương quan với Excel:
Bạn cần đăng nhập để thấy hình ảnh

Trên Excel bạn có thể biểu diễn thông tin như trên, cũng không cần phải định nghĩa cột A, E là SỐ; cột B,C,D là CHUỖI KÝ TỰ.
Việc như thế thật phiền phức. Nhưng khi làm việc với Access, chúng ta phải qua bước thiết kế Table, trong đó định nghĩa trường dữ liệu này là kiểu dữ liệu gì là việc bắt buộc phải tiến hành.
 

Yukino Ichikawa

Thành viên
2.4 Các kiểu dữ liệu
Ở chế độ Design View, với mỗi Field bạn cần thiết định kiểu dữ liệu cho nó.
Bạn cần đăng nhập để thấy hình ảnh

Khi đặt chuột vào vùng Data Type, nó sẽ sổ ra danh sách các kiểu dữ liệu cho bạn lựa chọn.
Dưới đây là bảng thuyết minh các kiểu dữ liệu chính mà chúng ta hay dùng:
Loại dữ liệuThuyết minhKích thước
Short TextChuỗi ký tự, thậm chí có thể là số. Những ký tự mà không nhằm mục đích tính toán như số điện thoại, địa chỉ,… thì bạn có thể sử dụng loại dữ liệu này.Tối đa 255 ký tự
Long TextCác chú ý, thuyết minh,… sử dụng nhiều ký tự thì bạn có thể sử dụng loại dữ liệu này.Tối đa 65536 ký tự
NumberSố liệu dùng để tính toán thì bạn có thể dùng loại dữ liệu này. Tuy nhiên với tiền tệ thì không dùng loại dữ liệu này.1,2,4,8,16 bytes
Date/TimeNgày giờ8 bytes
CurrencyĐược sử dụng cho các giá trị tiền tệ. Dữ liệu số được lưu trữ. Tránh sai số làm tròn trong quá trình tính toán.8 bytes
AutoNumberKhi một bản ghi được thêm vào, một số sê-ri hoặc số ngẫu nhiên (tăng dần) sẽ tự động được chèn vào. Số thứ tự được đánh số từ 1.4 bytes hoặc 16 bytes
Yes/NoYes/No、True/False、On/Off . Không lưu dữ liệu là Null1 bit
OLE ObjectLưu trữ dữ liệu là word, excel, file ảnh, nhạc,…Tối đa 1Gb, phụ thuộc vào dung lượng ổ đĩa
HyperLinkLưu trữ dữ liệu là đường link URLTối đa 64000 ký tự
Đối với số, chúng ta cần chú ý.
Bạn cần đăng nhập để thấy hình ảnh

Khi ta thiết định là số (Number), tuy nhiên cần phải chỉ định rõ là kiểu số nào. Ví dụ ta có số nguyên, số thực.
Đối với số nguyên chúng ta có integer với phạm vi tới tầm 30.000, với Long thì phạm vi tới tầm 2 triệu.
Do đó ở phần Field Size ta cần chỉ định thêm.
Cụ thể:
Kiểu dữ liệuThuyết minhĐộ chính xác thập phân (sau dấu phẩy)Kích thước
ByteSố nguyên trong phạm vi 0 ~ 255.Không1 byte
Decimal/Hệ thập phân-10^38-1 ~ 10^38-1(Access Project),
-10^28-1 ~ 10^28-1(Access Database)
28​
12 bytes
Integer/Số nguyên-32,768 ~ 32,767Không2 bytes
Long Integer/Số nguyên-2,147,483,648 ~ 2,147,483,647Không4 bytes
Single/Loại dấu phẩy động chính xác đơn3.402823E38 ~ -1.401298E-45、1.401298E-45 ~ 3.402823E38
7​
4 bytes
Double/Số thực1.79769313486231E308 ~ -4.94065645841247E-324、1.79769313486231E308 ~4.94065645841247E-324
15​
8 bytes
GUIDGUID (Globally Unique Identifier)N/A16 bytes
 

tuhocvba

Administrator
Thành viên BQT
2.5 Định nghĩa kiểu dữ liệu cho các Field bằng Design View
Chúng ta hãy xem xét dữ liệu sau trên Excel.
Bạn cần đăng nhập để thấy hình ảnh

Bây giờ chúng ta thiết kế dữ liệu trên Access.

Bạn click chuột phải vào Table1 và chọn Design View.
Tại đây bạn nhập tên các trường dữ liệu và định nghĩa kiểu dữ liệu cho chúng.
Bạn cần đăng nhập để thấy hình ảnh

Chúng ta có thiết kế như sau:
FieldData Type
KHNoAutoNumber
KHNameShortText
KHDiaChiShortText
NguoiBanHangShortText
SoTienNumber (Double)
Ở đây, SoTien ta đáng ra nên dùng Currency nhưng chúng ta sẽ dùng kiểu Double.
Bạn cần đăng nhập để thấy hình ảnh

Cụ thể:
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Có một chú ý là, ShortText có kích cỡ mặc định là 255 ký tự nhưng như ở trên các bạn thấy, tôi đã sửa lại là 50 (Field Size = 50). Các bạn cũng có thể tùy ý chỉnh sửa lại số ký tự cho phù hợp nhưng không vượt quá 255.
 

vanthanhVBA

Thành viên
2.6 Từ khóa chính
Ngay khi bạn tạo Table mới, thông thường thì Field (trường thông tin) đầu tiên sẽ mặc định là trường thông tin từ khóa chính.
Từ khóa thường mang nghĩa duy nhất. Về khái niệm này trong VBA Excel, bạn đã gặp trong Dictionary. Trong đó key (từ khóa) yêu cầu phải mang tính duy nhất.
Đối với thiết kế cơ sở dữ liệu, từ khóa chính bao hàm nghĩa như vậy. Khi xây dựng cơ sở dữ liệu, hãy đảm bảo luôn có tối thiểu một trường thông tin là duy nhất. Ví dụ: Trường thông tin mã sinh viên, mã khách hàng, mã sản phẩm,...
Bạn cần đăng nhập để thấy hình ảnh

Ví dụ đối với cơ sở dữ liệu Table1 ở trên, tôi sẽ lựa chọn KHNO (mã khách hàng) làm trường dữ liệu mang từ khóa chính.
Step 1: Click vào dòng chứa KHNO.
Step 2: Click vào Primary Key.
Bạn cần đăng nhập để thấy hình ảnh

Kết quả: Bạn sẽ thấy biểu tượng hình chìa khóa :
Bạn cần đăng nhập để thấy hình ảnh

Hãy nhớ nguyên tắc này trong thiết kế cơ sở dữ liệu, Table luôn có trường thông tin là từ khóa chính-là trường thông tin mã mỗi thông tin ở đó luôn là duy nhất, không trùng nhau.
 

Euler

Mod
Thành viên BQT
2.7 Nhập bản ghi (Record)
Bản ghi giống như một dòng dữ liệu trên bảng tính Excel của các bạn.
Bây giờ chúng ta sẽ nhập dữ liệu sau vào Access nhé.
Bạn cần đăng nhập để thấy hình ảnh

Ở bài trước các bạn đã thiết kế xong các cột dữ liệu (trường dữ liệu-Field). Hiện tại các bạn đang ở giao diện Design View.
Để quay về giao diện cho phép nhập dữ liệu bản ghi, các bạn double click vào Table 1.
Bạn cần đăng nhập để thấy hình ảnh

Tại đây, các bạn chú ý:
Bạn cần đăng nhập để thấy hình ảnh

Phần dữ liệu KHNo các bạn không cần nhập, nó sẽ được điền tự động.
Các bạn điền thông tin cho các trường KHName~SoTien.
Điền xong các bạn được như thế này:
Bạn cần đăng nhập để thấy hình ảnh

Tương tự như thế các bạn hãy điền các bản ghi khác vào Table1 nhé.
Cuối cùng các bạn được như sau:
Bạn cần đăng nhập để thấy hình ảnh


Vậy là xong rồi đấy. Các bạn Save trước khi đóng file nhé.
 

vanthanhVBA

Thành viên
2.8 Sửa nội dung bản ghi (Record)
Bạn có thể sửa cập nhật nội dung một bản ghi. Việc sửa chữa này cũng giống như thao tác trên Excel, không có gì đặc biệt.
Chú ý khi sửa xong, bạn nhớ Save nhé.
Bạn cần đăng nhập để thấy hình ảnh

2.9 Copy một bản ghi (Record)
Bạn click chuột phải lên bản ghi mà bạ muốn copy.
Bạn cần đăng nhập để thấy hình ảnh

Click vào Copy.
Bạn cần đăng nhập để thấy hình ảnh
Và đặt chuột vào dòng trống, chọn Paste.
Bạn cần đăng nhập để thấy hình ảnh
Kết quả:
Bạn cần đăng nhập để thấy hình ảnh
Chú ý: Mặc dù là copy nhưng KHNo lúc này là 4 chứ không phải là 2. Bởi vì KHNo là trường dữ liệu từ khóa chính, không được phép có dữ liệu trùng nhau, Access tự động tăng lên là 4.
 

Yukino Ichikawa

Thành viên
2.9 Xóa nội dung bản ghi (Record)
Giống như thao tác copy, bạn click chuột phải lên bản ghi cần xóa.
Bạn cần đăng nhập để thấy hình ảnh

Chọn Delete Record:
Bạn cần đăng nhập để thấy hình ảnh
Bản ghi lúc này không còn nữa.
Bây giờ ta sẽ thêm một bản ghi mới:
Bạn cần đăng nhập để thấy hình ảnh
Các bạn để ý KHno không phải là 4 hay 5 mà là 6. Lý do là vì định dạng KHNo chúng ta để là Auto Number, có nghĩa là nó không sử dụng các số đã từng tồn tại dù cho bạn đã xóa đi rồi.
 

vanthanhVBA

Thành viên
2.10 Hiển thị Index
Bây giờ chúng ta sẽ làm quen với khái niệm Index. Đầu tiên, ta sẽ xem cách hiển thị Index.
Index là một trong các trường thông (Field) tin trong Table. Một Table có thể có nhiều cột Index. Index có mục đích để tăng tốc đô tìm kiếm dữ liệu.

Ví dụ, ta có 10.000 bản ghi (10.000 dòng dữ liệu) trong Table. Ta cần tìm dòng dữ liệu mà cột dữ liệu A có giá trị là X. Như vậy, máy tính sẽ tìm kiếm lần lượt từng dòng dữ liệu trong cột dữ liệu A từ dòng đầu tới dòng cuối. Việc như vậy thật là không hiệu quả chút nào.
Nếu xây dựng Index, mỗi lần thêm một bản ghi (thêm dòng dữ liệu mới) vào Table, bằng cách tìm kiếm dựa vào Index, sẽ tăng tốc độ tìm kiếm bởi vì lúc này dữ liệu được thêm vào Table nhưng thứ tự sắp xếp trong Table sẽ dựa vào Index để sắp xếp. Việc tìm kiếm vì thế sẽ dễ dàng hơn và tốc độ cũng sẽ nhanh hơn.

Trên Table 1, bạn chọn chế độ Design View.
Bạn cần đăng nhập để thấy hình ảnh
Sau đó bạn vào thẻ Design, click vào Indexes.
Lúc này ta thấy các trường thông tin Index là KHNoKHName.
Lưu ý, KHNo là trường thông tin từ khóa chính (Primary Key), do đó nó mặc định là trường thôn tin Index.
Trường thông tin KHName là Index vì tôi đã gán nó là Index.
Vậy, bài học sau chúng ta sẽ học cách tạo Index.
 

Yukino Ichikawa

Thành viên
2.11 Tạo Index
Bạn click chuột phải vào Table 1, chọn chế độ Design View.
Bạn cần đăng nhập để thấy hình ảnh
Giả sử tôi muốn trường thông tin KHName là Index. Bạn click vào Data Type ứng với trường thông tin KHName.
Sau đó click vào phần Indexed. Ở đây có các lựa chọn No -Không phải Index; Yes (Duplicates OK)-là Index, cho phép dữ liệu trùng lặp; Yes (No Duplicates)-là index, không cho phép dữ liệu trùng lặp.
Bạn cần đăng nhập để thấy hình ảnh
Bạn chọn là Yes (chú ý có hai chế độ Yes, tạm thời chọn mục nào cũng được), thì trường thông tin đó sẽ trở thành Index.
Bạn chú ý, việc tạo Index sẽ giúp tăng tốc độ tìm kiếm, nhưng có nhược điểm là khi thêm bản ghi (thêm dòng dữ liệu) thì tốc độ sẽ bị chậm do máy tính phải sắp xếp lại thông tin theo các trường thông tin được thiết định là Index. Vì vậy, khi tạo Index, hãy thực sự cân nhắc là có cần thiết hay không.
 

vanthanhVBA

Thành viên
2.12 Index của nhiều trường thông tin (Field)
Ở các phần trước chúng ta thấy rằng từ khóa chính hay Index thường được thiết định cho một cột (một trường) thông tin. Tuy nhiên ta có thể kết hợp nhiều trường thông tin gán cho một Index hay từ khóa chính. Việc này được giải thích là sẽ giúp tăng tốc độ tìm kiếm nhanh hơn.

Bạn click chuột phải vào Table1 và chọn Design View.
Sau đó click vào Indexes.
Bạn cần đăng nhập để thấy hình ảnh
Ở phần IndexName, ta nhập tên Index, ở đây tôi nhập là KHNoAndNguoiBanHang (có ý nghĩa là kết hợp hai trường thông tin là KHName và NguoiBanHang). Bạn có thể đặt tên tùy ý.
Ở phần Field bạn click chọn các trường thông tin là KHName và NguoiBanHang. Bạn có thể tùy ý chọn các trường dữ liệu mà bạn muốn.

Chú ý: Ascending nghĩa là sắp xếp từ thấp tới cao, từ A tới Z.
Descending nghĩa là sắp xếp từ cao tới thấp, từ Z tới A.
 

Euler

Mod
Thành viên BQT
2.13 Chuyển chế độ xem thiết kế và xem dữ liệu
Chúng ta có hai chế độ View thường xuyên được sử dụng.
Bạn cần đăng nhập để thấy hình ảnh

Chế độ Datasheet View: Muốn xem dữ liệu của cả Table thì ta chọn chế độ này.
Chế độ Design View: Muốn xem thiết kế của Table thì ta chọn chế độ này.
 
Top