Tổng quan về giáo trình

Giáo trình Hướng Dẫn Sử Dụng Đối Tượng Trong VBA Access 2000 (mã hiệu tài liệu: T-GTACCE&UD) là tài liệu học tập chuyên khảo thuộc khối kiến thức cơ sở ngành và chuyên ngành trong chương trình đào tạo Cử nhân Công nghệ Thông tin, Hệ thống Thông tin Quản lý và Tin học Ứng dụng. Tài liệu được biên soạn nhằm trang bị cho người học kiến thức và kỹ năng phát triển ứng dụng cơ sở dữ liệu trên môi trường Microsoft Access 2000 thông qua ngôn ngữ lập trình Visual Basic for Applications (VBA).

Về chuẩn đầu ra (learning outcomes), giáo trình giúp sinh viên nắm vững nguyên lý lập trình hướng đối tượng trong VBA; hiểu rõ cấu trúc phân cấp đối tượng ứng dụng Access; làm chủ kỹ thuật thao tác dữ liệu qua hai mô hình truy xuất DAO (Data Access Objects) 3.6 và ADO (ActiveX Data Objects) 2.1; cũng như phát triển khả năng xây dựng các thủ tục xử lý sự kiện form, điều khiển và thực thi truy vấn tự động.

Cấu trúc giáo trình được thiết kế theo tiến trình sư phạm từ trực quan đến trừu tượng: bắt đầu từ khái niệm đối tượng vật lý tương đương trong đời sống, ánh xạ sang các cấu trúc lập trình trong Access (Form, Report, Control, DoCmd), sau đó tiến sâu vào cơ chế kết nối và điều khiển cơ sở dữ liệu ở tầng hệ thống (DBEngine, Connection, Command, Recordset, Field). Điểm đặc sắc của tài liệu là phương pháp tiếp cận trực tiếp vào mã nguồn, minh họa rõ ràng thông qua hệ cơ sở dữ liệu mẫu Northwind.mdb và các bảng dữ liệu thử nghiệm, giúp người học dễ dàng đối chiếu giữa lý thuyết và kết quả thực thi trong môi trường Visual Basic Editor (VBE).


Nội dung kiến thức cốt lõi

Các chương và chủ đề chính

Nội dung trọng tâm trong phần khảo sát đối tượng của giáo trình (tiêu biểu tại Chương V: Sử dụng đối tượng trong VBA) bao gồm các mạch chủ đề liên kết chặt chẽ:

  1. Khái niệm đối tượng và tập hợp (Objects & Collections): Định nghĩa đối tượng, thuộc tính (Properties), phương thức (Methods) và tập hợp (Collections). Giải thích các thuộc tính chuẩn của tập hợp như Count, Item và cú pháp truy cập thành phần qua toán tử chấm (.) hoặc chấm than (!).
  2. Mô hình đối tượng giao diện Access: Khảo sát cây phân cấp từ đối tượng gốc Application đến các đối tượng điều khiển: Forms, Reports, Controls, Module, Reference, DoCmd, và Screen. Phân tích chi tiết chuỗi sự kiện khi tải form (Open $\rightarrow$ Load $\rightarrow$ Resize $\rightarrow$ Current) và cách thức gắn kết mã lệnh qua Code Builder.
  3. Mô hình truy cập dữ liệu DAO (Data Access Objects 3.6): Phân tích kiến trúc dựa trên Microsoft Jet Database Engine với đối tượng mức cao nhất là DBEngine, quản lý các đối tượng con: Workspace, Database, TableDef, QueryDef, Recordset, Relation, và Container.
  4. Mô hình dữ liệu ADO (ActiveX Data Objects 2.1): Trình bày 3 phân nhánh thư viện chuyên biệt (ADODB, ADOX, JRO) cùng mối liên kết với các nhà cung cấp OLE DB Providers (Jet 4.0, SQL Server, Oracle, ODBC).
  5. Khảo sát chuyên sâu thư viện ADODB:
    • Đối tượng Connection: Quản lý kết nối tường minh và ẩn, thiết lập thuộc tính Mode (từ adModeRead đến adModeShareDenyNone), khai thác cấu trúc siêu dữ liệu qua phương thức OpenSchema.
    • Đối tượng Recordset: Phân loại 4 kiểu con trỏ (Dynamic, Keyset, Static, Forward-only), 4 mức độ khóa (adLockReadOnly, adLockPessimistic, adLockOptimistic, adLockBatchOptimistic), các phương thức điều hướng (MoveFirst, MoveLast, MoveNext, MovePrevious, Move), tối ưu hóa bộ nhớ đệm qua CacheSize, cùng các thao tác tìm kiếm (Find), lọc (Filter), trích xuất (GetString), thêm mới (AddNew), cập nhật (Update) và xóa (Delete).
    • Đối tượng Field: Quản lý thuộc tính Name, Value, kiểu dữ liệu (DataTypeEnum như adVarWChar, adCurrency, adInteger, adDate), kích thước (DefinedSize và ActualSize trong chuẩn Unicode Jet 4), cùng phương thức xử lý nhị phân/văn bản lớn (GetChunk, AppendChunk).
    • Đối tượng Command và Parameter: Thực thi truy vấn hành động (INSERT, UPDATE, DELETE), tối ưu hóa câu lệnh qua thuộc tính Prepared, thiết lập CommandTimeout, CommandType (adCmdText, adCmdTable, adCmdStoredProc), và truyền tham số động vào câu truy vấn thông qua phương thức CreateParameter và tập hợp Parameters.
                    Application
 References    Forms          Reports     Modules      DoCmd
             Controls        Controls

Kiến thức nền tảng được xây dựng

Giáo trình thiết lập hệ thống lý thuyết nền tảng vững chắc về:

  • Nguyên lý đóng gói và phân cấp: Cơ chế quản lý tài nguyên bộ nhớ 4 bytes (32-bit) của biến đối tượng thông qua từ khóa Dim ... As và lệnh cấp phát tham chiếu Set ... = {Expression | Nothing}.
  • Quy ước định danh và định tuyến cú pháp: Sử dụng dấu chấm than (!) để tham chiếu đối tượng do người dùng định nghĩa (User-defined) và dấu chấm (.) cho các thuộc tính/phương thức nội tại do Access/VBA cung cấp.
  • Cơ chế tương tác con trỏ và khóa dữ liệu: Sự phụ thuộc lẫn nhau giữa CursorType và LockType, quy tắc chuyển đổi tự động của ADO (ví dụ: tự động đổi từ con trỏ Forward-only sang Keyset nếu chọn khóa Optimistic).

Kỹ năng phát triển

Qua các nội dung trên, người học được rèn luyện:

  • Kỹ năng phân tích và thiết kế mô hình dữ liệu ứng dụng.
  • Kỹ năng viết mã xử lý nghiệp vụ tự động hóa, kiểm soát toàn vẹn dữ liệu qua sự kiện BeforeUpdate, Click, LostFocus.
  • Kỹ năng tối ưu hóa hiệu năng truy vấn, giải phóng tài nguyên bộ nhớ và xử lý lỗi thời gian chạy (Run-time errors) trong quá trình thao tác cơ sở dữ liệu.

Phương pháp giảng dạy và học tập

Giáo trình áp dụng phương pháp sư phạm tiếp cận theo vấn đề kết hợp thực hành mẫu (code-driven approach). Mỗi đơn vị bài học đều tuân thủ cấu trúc 4 bước: Định nghĩa khái niệm $\rightarrow$ Cú pháp chuẩn $\rightarrow$ Đoạn mã mẫu thực thi $\rightarrow$ Phân tích lỗi thường gặp và phương án tối ưu.

Hệ thống bài tập và thực hành được xây dựng trực tiếp trên các tình huống quản trị dữ liệu thực tế:

  • Nghiên cứu điển hình (Case Studies): Khảo sát CSDL mẫu Northwind.mdb qua các bảng Customers, Orders, Shippers để thực hành các thao tác duyệt dữ liệu bằng vòng lặp lồng nhau (EasyLoop, EasyLoop2), trích xuất dòng dữ liệu nhanh bằng GetString (NoEasyLoop), và tìm kiếm khách hàng theo mẫu ký tự đại diện (FindAMatch, FilterRecordset).
  • Bài tập thao tác dữ liệu: Xây dựng các thủ tục thêm bản ghi (AddARecord, InsertRecords), xóa bản ghi có điều kiện (DeleteARecord, DeleteAllRecords), và cập nhật giá trị trường dữ liệu theo quy luật (OddToEven, EvenToOdd) trên bảng MyTable.
  • Hướng dẫn tự học và kiểm thử: Tài liệu hướng dẫn chi tiết cách sử dụng các công cụ tích hợp trong Visual Basic Editor như cửa sổ đối tượng Object Browser để tra cứu các hằng số enum (CursorOptionEnum, DataTypeEnum), cửa sổ Immediate kết hợp câu lệnh Debug.Print để kiểm tra luồng dữ liệu, và phương pháp đặt điểm dừng (Breakpoint) phục vụ công tác gỡ lỗi (debugging).

Điểm nổi bật và cập nhật

Giáo trình ghi nhận bước chuyển tiếp công nghệ quan trọng giữa các thế hệ công cụ phát triển phần mềm của Microsoft:

  • Chuyển dịch từ DAO sang ADO: Phân tích sự nâng cấp từ kiến trúc DAO 3.5 (trên Access 97) lên DAO 3.6 và tích hợp toàn diện mô hình ADO 2.1 trong Access 2000. Tài liệu chỉ rõ DAO tối ưu cho động cơ cục bộ Jet Engine, trong khi ADO mở rộng khả năng tương tác với các nguồn dữ liệu phân tán thông qua OLE DB Providers.
  • Cấu trúc đa thư viện ADO: Phân tách rõ ràng chức năng của 3 thư viện con: ADODB (gọn nhẹ, phục vụ kết nối và thao tác bản ghi), ADOX (mở rộng định nghĩa ngôn ngữ DDL, quản lý cấu trúc bảng, người dùng và bảo mật), và JRO (quản lý nhân bản và đồng bộ hóa dữ liệu Jet/SQL Server).
  • Chuẩn hóa Unicode và kích thước trường: Làm rõ sự khác biệt giữa hai thuộc tính DefinedSize (số ký tự tối đa) và ActualSize (dung lượng byte thực tế). Trong Access 2000 với Jet 4.0, do áp dụng chuẩn mã hóa ký tự Unicode 2 bytes/ký tự, giá trị ActualSize của các trường văn bản có thể gấp đôi DefinedSize, khác biệt hoàn toàn so với chuẩn 1 byte trên Jet 3.51 cũ.
  • Nâng cấp phương thức tìm kiếm và định vị: Phương thức Find của ADO trong phiên bản mới được chuẩn hóa với cú pháp mệnh đề tương tự WHERE trong SQL và yêu cầu 4 tham số, thay thế các biến thể tìm kiếm cục bộ ở các phiên bản Access trước đó.
Tiêu chí Access 97 (Thế hệ cũ) Access 2000 (Trong giáo trình)
Công nghệ truy cập dữ liệu chính DAO 3.5 (Jet 3.51 Engine) DAO 3.6 & ADO 2.1 (OLE DB Provider)
Mã hóa chuỗi ký tự 1 byte/ký tự Unicode (2 bytes/ký tự trên Jet 4.0)
Phân chia thư viện dữ liệu Đơn khối (Monolithic DAO) Chuyên biệt hóa: ADODB, ADOX, JRO
Cơ chế tìm kiếm Các biến thể hàm Find của DAO Phương thức Find chuẩn hóa theo cú pháp SQL
Tối ưu hóa dữ liệu Duyệt vòng lặp truyền thống Hỗ trợ CacheSize, GetString, Prepared Command

Đối tượng sử dụng giáo trình

Giáo trình được biên soạn phục vụ các nhóm đối tượng sau:

  • Sinh viên chuyên ngành: Sinh viên năm thứ 2 hoặc năm thứ 3 thuộc các ngành Công nghệ Thông tin, Khoa học Máy tính, Hệ thống Thông tin, Kỹ thuật Phần mềm đang học các học phần Hệ quản trị cơ sở dữ liệu, Lập trình ứng dụng cơ sở dữ liệu, hoặc Công nghệ phần mềm.
  • Yêu cầu kiến thức tiên quyết (Prerequisites): Người học cần hoàn thành học phần Cơ sở dữ liệu quan hệ (hiểu về cấu trúc bảng, khóa chính, khóa ngoại, quan hệ 1-1, 1-N, N-N), nắm vững cú pháp ngôn ngữ truy vấn SQL (SELECT, INSERT, UPDATE, DELETE, WHERE, ORDER BY), và có kiến thức cơ bản về lập trình cấu trúc.
  • Giảng viên đại học và cao đẳng: Tài liệu có thể sử dụng làm giáo trình giảng dạy chính khóa hoặc tài liệu tham khảo để biên soạn đề cương bài giảng, bài tập thực hành phòng máy và đề thi đánh giá kỹ năng lập trình VBA/Access.
  • Kỹ sư phần mềm và người tự học: Lập trình viên đang duy trì hoặc nâng cấp các hệ thống thông tin quản lý doanh nghiệp xây dựng trên nền tảng Microsoft Access cần tài liệu tra cứu chuẩn về các thuộc tính, phương thức và mô hình phân cấp đối tượng.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với đối tượng nào?

Giáo trình được thiết kế cho sinh viên đại học, cao đẳng ngành Công nghệ Thông tin và Hệ thống Thông tin, cũng như các kỹ sư phần mềm cần tìm hiểu sâu về lập trình tự động hóa và thao tác cơ sở dữ liệu qua ngôn ngữ VBA trên Microsoft Access 2000.

2. Cần chuẩn bị kiến thức nền tảng nào trước khi học?

Người học cần có kiến thức cơ bản về mô hình cơ sở dữ liệu quan hệ, nắm vững các câu lệnh truy vấn SQL tiêu chuẩn và có hiểu biết căn bản về logic lập trình (vòng lặp, rẽ nhánh điều kiện, hàm và thủ tục).

3. Điểm khác biệt cơ bản giữa hai mô hình DAO và ADO trong tài liệu là gì?

DAO (Data Access Objects) là kỹ thuật chuyên dụng gắn liền với động cơ Microsoft Jet Engine, tối ưu cho các tệp dữ liệu Access nội bộ. Trong khi đó, ADO (ActiveX Data Objects) là kiến trúc tổng quát hơn, hoạt động dựa trên các nhà cung cấp OLE DB Providers, cho phép kết nối linh hoạt tới nhiều hệ quản trị cơ sở dữ liệu khác nhau như SQL Server, Oracle, và các nguồn dữ liệu phi quan hệ.

4. Làm thế nào để tự học và thực hành hiệu quả theo giáo trình?

Người học nên mở môi trường Visual Basic Editor (VBE) trong Access, sử dụng công cụ Object Browser để tra cứu các hằng số và thuộc tính đối tượng; đồng thời trực tiếp gõ và chạy các đoạn mã mẫu trên cơ sở dữ liệu Northwind.mdb, sử dụng lệnh Debug.Print và cửa sổ Immediate để kiểm tra kết quả từng bước.

5. Có những công cụ bổ trợ nào được đề cập trong giáo trình?

Giáo trình hướng dẫn tích hợp và sử dụng hộp thoại Tools $\rightarrow$ References trong VBE để khai báo các thư viện phụ thuộc (Microsoft ActiveX Data Objects 2.1 Library), công cụ dựng sự kiện Code Builder, hộp thoại thiết kế truy vấn (Query Design View), và công cụ tra cứu thư viện đối tượng Object Browser.


Kết luận

Giáo trình Hướng Dẫn Sử Dụng Đối Tượng Trong VBA Access 2000 cung cấp hệ thống kiến thức toàn diện và có cấu trúc về lập trình hướng đối tượng trong môi trường Microsoft Access. Thông qua việc phân tích chi tiết hai mô hình dữ liệu DAO 3.6 và ADO 2.1 cùng hệ thống đối tượng giao diện và điều khiển, tài liệu giúp người học hình thành tư duy phát triển ứng dụng chuyên nghiệp và làm chủ kỹ thuật thao tác dữ liệu theo tầng.

Lộ trình học tập đề xuất là nắm vững cấu trúc cây phân cấp đối tượng giao diện và chuỗi sự kiện form trước khi tiến hành xây dựng các thủ tục truy xuất dữ liệu nâng cao qua Recordset và Command. Để mở rộng kiến thức, người học có thể kết hợp tra cứu tài liệu thư viện Microsoft Developer Network (MSDN) và các tập tin cơ sở dữ liệu mẫu đi kèm bộ cài đặt Microsoft Office.