ADODB trong VBA Access

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.

  1. ADODB là gì ?
  2. Chức năng của ADODB trong VBA Access
  3. Các đối tượng chính trong ADODB
  4. Cách sử dụng ADODB trong VBA Access
  5. Các ví dụ về sử dụng ADODB trong VBA Access
  6. Các thao tác với ADODB trong VBA Access
  7. Các phương thức và thuộc tính chính trong ADODB
  8. Kinh nghiệm của tôi về ADODB trong VBA Access

1. ADODB là gì ?

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.

2. Chức năng của ADODB trong VBA Access

    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.

3. Các đối tượng chính trong ADODB

    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).

4. Cách sử dụng ADODB trong VBA Access

    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.

5. Các ví dụ về sử dụng ADODB trong VBA Access

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.

Khai báo thư viện ADODB

Để 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

Ví dụ kết nối và truy vấn dữ liệu


    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


Giải thích:

    Kết nối đến SQL Server: Bạn tạo một chuỗi kết nối connStr sử dụng OLE DB Provider cho SQL Server (SQLOLEDB). Thông tin cần cung cấp trong chuỗi kết nối bao gồm tên máy chủ (Data Source), tên cơ sở dữ liệu (Initial Catalog), và thông tin đăng nhập (User ID, Password).
    Thực thi truy vấn: Câu lệnh SQL được lưu trong biến sql, và truy vấn được thực hiện bằng cách sử dụng đối tượng Recordset (rs.Open).
    Hiển thị kết quả: Nếu có kết quả trả về (không phải EOF), tên nhân viên trong trường EmployeeName được hiển thị trong một hộp thoại.

6. Các thao tác với ADODB trong VBA Access

    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

7. Các phương thức và thuộc tính chính trong ADODB

    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).

8. Kinh nghiệm của tôi về ADODB trong VBA Access

    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:

Bài viết liên quan:

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.