Trong VBA Access, ADODB (ActiveX Data Objects for Database) là một thư viện cho phép bạn kết nối và thao tác với các cơ sở dữ liệu ngoài Microsoft Access, chẳng hạn như SQL Server, Oracle, hoặc OLE DB. ADODB cung cấp các đối tượng như Connection, Recordset, và Command để truy cập và thao tác với dữ liệu.
    Kết nối với các cơ sở dữ liệu ngoài Access: Bạn có thể sử dụng ADODB để kết nối với cơ sở dữ liệu như SQL Server, Oracle, hoặc bất kỳ hệ quản trị cơ sở dữ liệu nào hỗ trợ OLE DB hoặc ODBC.
    Quản lý kết nối linh hoạt: Bạn có thể mở kết nối, thực thi các câu lệnh SQL, và lấy dữ liệu từ cơ sở dữ liệu ngoài Access.
    Thực hiện các thao tác phức tạp: Bạn có thể sử dụng ADODB để thực hiện các câu lệnh SQL phức tạp hoặc truy vấn dữ liệu từ các cơ sở dữ liệu khác.
    Connection: Dùng để kết nối với cơ sở dữ liệu.
    Recordset: Dùng để lưu trữ kết quả của một truy vấn SQL.
    Command: Dùng để thực thi các câu lệnh SQL (SELECT, INSERT, UPDATE, DELETE).
    Kết nối tới cơ sở dữ liệu với Connection: Bạn cần khai báo một đối tượng ADODB.Connection để kết nối tới cơ sở dữ liệu.
    Truy vấn dữ liệu với Recordset: Sau khi kết nối thành công, bạn có thể sử dụng đối tượng Recordset để thực hiện các truy vấn và nhận dữ liệu từ cơ sở dữ liệu.
Giả sử bạn muốn kết nối tới một cơ sở dữ liệu SQL Server và truy vấn dữ liệu từ một bảng.
Để sử dụng ADODB trong VBA Access, bạn cần thêm tham chiếu tới thư viện Microsoft ActiveX Data Objects Library:
    Mở VBA Editor (nhấn Alt + F11).
    Vào Tools > References.
    Tìm và đánh dấu Microsoft ActiveX Data Objects x.x Library (x.x là phiên bản).
Ví dụ kết nối với file Excel
Dim conn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim sql As String
    Dim connStr As String
    ' Chuoi ket noi Excel
    connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Vidu\dulieu.xlsx;Extended Properties=""Excel 12.0;HDR=YES;"""
   
    ' Tao doi tuong ket noi
    Set conn = New ADODB.Connection
    conn.Open connStr
    ' Cau lenh SQL
    sql = "SELECT * FROM [Sheet1$]"
    
    ' Tao bien Recordset
    Set rs = New ADODB.Recordset
    rs.Open sql, conn
    
    ' Kiem tra du lieu neu co trong rs
    If Not rs.EOF Then
        rs.MoveFirst
        ' Duyet qua cot
        Do While Not rs.EOF
            MsgBox "Ma: " & rs!TT & vbCrLf & _
                   "Ten: " & rs!Ten & vbCrLf & _
                   "Lop: " & rs!Lop
            rs.MoveNext
        Loop
    Else
        MsgBox "Khong co du lieu trong Excel !"
    End If
    ' Ðóng Recordset và Connection
    rs.Close
    conn.Close
    ' Giai phong bo nho
    Set rs = Nothing
    Set conn = Nothing 
    Dim conn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim sql As String
    Dim connStr As String
    
    ' Khai báo kết nối (dùng chuỗi kết nối cho SQL Server)
    connStr = "Provider=SQLOLEDB;Data Source=server_name;Initial Catalog=database_name;User ID=user;Password=password"
    
    ' Tạo đối tượng Connection và mở kết nối
    Set conn = New ADODB.Connection
    conn.Open connStr
    
    ' Câu lệnh SQL để truy vấn dữ liệu
    sql = "SELECT * FROM Employees"
    
    ' Tạo đối tượng Recordset và thực thi truy vấn
    Set rs = New ADODB.Recordset
    rs.Open sql, conn
    
    ' Hiển thị kết quả trong MsgBox (lấy 1 bản ghi đầu tiên)
    If Not rs.EOF Then
        MsgBox "Tên nhân viên: " & rs.Fields("EmployeeName").Value
    End If
    
    ' Đóng Recordset và Connection
    rs.Close
    conn.Close
    
    ' Giải phóng bộ nhớ
    Set rs = Nothing
    Set conn = Nothing
    Thực thi câu lệnh SELECT: Dùng Recordset để lấy dữ liệu từ cơ sở dữ liệu.
    Thực thi câu lệnh INSERT, UPDATE, DELETE: Dùng Connection để thực thi các câu lệnh này mà không cần sử dụng Recordset.
Ví dụ về INSERT, UPDATE, DELETE
    Dim conn As ADODB.Connection
    Dim sql As String
    
    ' Chuỗi kết nối tới cơ sở dữ liệu
    connStr = "Provider=SQLOLEDB;Data Source=server_name;Initial Catalog=database_name;User ID=user;Password=password"
    
    ' Mở kết nối
    Set conn = New ADODB.Connection
    conn.Open connStr
    
    ' Câu lệnh SQL để thêm dữ liệu vào bảng
    sql = "INSERT INTO Employees (EmployeeName, Age) VALUES ('John Doe', 30)"
    
    ' Thực thi câu lệnh INSERT
    conn.Execute sql
    
    ' Đóng kết nối
    conn.Close
    
    ' Giải phóng bộ nhớ
    Set conn = Nothing    Connection:
        Open: Mở kết nối đến cơ sở dữ liệu.
        Close: Đóng kết nối.
        Execute: Thực thi câu lệnh SQL (SELECT, INSERT, UPDATE, DELETE).
    Recordset:
        Open: Mở một truy vấn SQL và trả về dữ liệu dưới dạng Recordset.
        Fields: Thuộc tính để truy cập các trường dữ liệu trong một bản ghi.
        EOF (End Of File): Kiểm tra xem có dữ liệu không (kết thúc Recordset).
    ADODB trong VBA Access giúp kết nối và làm việc với cơ sở dữ liệu ngoài Access, như SQL Server, Oracle, và các nguồn dữ liệu OLE DB khác.
    ADODB linh hoạt và mạnh mẽ, hỗ trợ thực thi các câu lệnh SQL và quản lý kết nối với cơ sở dữ liệu ngoài Microsoft Access.
    Thường được sử dụng khi bạn cần truy xuất và thao tác với dữ liệu trong các cơ sở dữ liệu ngoài Access hoặc kết nối từ ứng dụng Access đến các hệ quản trị cơ sở dữ liệu khác.
Tìm kiếm:
Thư viên ADODB trong VBA Access mang lại hiệu quả lớn khi các bạn nâng cấp ứng dụng lên mạng internet / lan.