So sánh DAO và ADO trong VBA Access

Làm phần mềm về dữ liệu MS Access bạn cần nắm rõ DAO và ADO trong VBA Access có gì giống và khác nhau

  1. DAO và ADO trong VBA là gì ?
  2. Bảng phân biệt DAO và ADO trong VBA
  3. So sánh chi tiết về DAO và ADO
  4. Khi nào sử dụng DAO
  5. Khi nào sử dụng ADO
  6. Kinh nghiệm của tôi về DAO và ADO

1. DAO và ADO trong VBA là gì ?

Là 2 thư viện dùng để xử lý dữ liệu qua môi trường VBA.

DAO (Data Access Objects) và ADO (ActiveX Data Objects) đều là các công nghệ truy cập dữ liệu trong VBA, cho phép bạn kết nối với cơ sở dữ liệu (như Microsoft Access, SQL Server, hoặc các nguồn dữ liệu khác).

Tuy nhiên, chúng có sự khác biệt rõ rệt về cách hoạt động, tính năng và mục đích sử dụng.

2. Bảng phân biệt DAO và ADO trong VBA

Tiêu chí DAO (Data Access Objects) ADO (ActiveX Data Objects)
Khái niệm DAO là một thư viện truy cập dữ liệu được thiết kế đặc biệt cho Microsoft Access và các cơ sở dữ liệu tương tự. ADO là một thư viện truy cập dữ liệu linh hoạt hơn, hỗ trợ nhiều loại cơ sở dữ liệu, bao gồm cả SQL Server và các nguồn dữ liệu OLE DB.
Nguồn dữ liệu chính Được tối ưu hóa cho Microsoft Access và các cơ sở dữ liệu quan hệ. Hỗ trợ các nguồn dữ liệu OLE DB, như SQL Server, Oracle, và các cơ sở dữ liệu ngoài Microsoft.
Mô hình truy cập DAO hoạt động chủ yếu với cơ sở dữ liệu Access và mối quan hệ của chúng. ADO hỗ trợ nhiều loại cơ sở dữ liệu và giao thức khác nhau.
Kết nối Kết nối thông qua Jet Engine (cho Access). Kết nối thông qua OLE DB hoặc ODBC.
Tính linh hoạt Hạn chế trong việc làm việc với các cơ sở dữ liệu ngoài Microsoft Access. Rất linh hoạt và có thể kết nối với nhiều loại cơ sở dữ liệu khác nhau.
Hiệu suất Tốt hơn trong môi trường sử dụng Access do tích hợp chặt chẽ với Access. Hiệu suất có thể chậm hơn một chút khi kết nối với cơ sở dữ liệu ngoài Access, nhưng rất linh hoạt.
Cấu trúc đối tượng Bao gồm Database, TableDef, Recordset, Field. Bao gồm Connection, Recordset, Command, Parameter.
Hỗ trợ OLE DB Không hỗ trợ OLE DB. Hỗ trợ OLE DB, vì vậy có thể kết nối với nhiều loại cơ sở dữ liệu.
Sử dụng trong VBA Thường được sử dụng trong các ứng dụng Access hoặc khi làm việc trực tiếp với cơ sở dữ liệu Access. Được sử dụng khi làm việc với các cơ sở dữ liệu SQL Server, Oracle, và các dịch vụ web.
Ví dụ sử dụng Dim db As Database
Dim rs As Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT * FROM Table1")
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Set conn = New ADODB.Connection
conn.Open "Provider=SQLOLEDB;Data Source=ServerName;Initial Catalog=DBName;User ID=User;Password=Password"
Set rs = New ADODB.Recordset
rs.Open "SELECT * FROM Table1", conn

3. So sánh chi tiết về DAO và ADO

  1. DAO:

    • DAO được thiết kế đặc biệt cho các ứng dụng Microsoft Access và sử dụng Jet Database Engine. Vì vậy, DAO là lựa chọn tuyệt vời khi bạn làm việc với cơ sở dữ liệu Access hoặc khi bạn không cần phải làm việc với các cơ sở dữ liệu khác.
    • DAO có thể làm việc tốt hơn với các bảng, truy vấn, và mối quan hệ trong Access, vì nó được tối ưu hóa cho môi trường này.
  2. ADO:

    • ADO là một công nghệ linh hoạt hơn, hỗ trợ kết nối với nhiều loại cơ sở dữ liệu qua OLE DB hoặc ODBC. Nó có thể kết nối với cơ sở dữ liệu không phải là Access, chẳng hạn như SQL Server, Oracle, và các dịch vụ web.
    • ADO được thiết kế để hoạt động trên nhiều nền tảng, vì vậy nếu bạn cần kết nối với cơ sở dữ liệu ngoài Microsoft Access, ADO sẽ là lựa chọn tốt hơn.

4. Khi nào sử dụng DAO

  • Nếu bạn đang làm việc chủ yếu với Microsoft Access và cần hiệu suất cao khi thao tác với dữ liệu trong Access.
  • Khi làm việc với các bảng, truy vấn và mối quan hệ trong Access.

5. Khi nào sử dụng ADO

  • Khi bạn cần kết nối với SQL Server, Oracle, hoặc các cơ sở dữ liệu khác ngoài Microsoft Access.
  • Khi bạn cần truy cập vào các dữ liệu từ Web Services hoặc các cơ sở dữ liệu qua OLE DB.

6. Kinh nghiệm của tôi về DAO và ADO

  • DAO thường được sử dụng trong Microsoft Access và tối ưu hóa cho môi trường Access.
  • ADO linh hoạt hơn và có thể làm việc với nhiều loại cơ sở dữ liệu khác nhau, không chỉ giới hạn trong Access.

 

 

Tìm kiếm:

Bài viết liên quan:

Làm phần mềm về dữ liệu MS Access bạn cần nắm rõ DAO và ADO trong VBA Access có gì giống và khác nhau