Kết nối API từ VBA Access

Cách code VBA Access đến các dịch vụ API, hướng dẫn chi tiết, dễ hiểu để phục vụ làm phần mềm từ MS Access.

  1. API là gì ?
  2. Code VBA Access kết nối API
  3. Một số ứng dụng thực tế VBA Access kết nối API

1. API là gì ?

Kết nối API (Application Programming Interface) là quá trình thiết lập giao tiếp và trao đổi dữ liệu giữa hai hoặc nhiều hệ thống phần mềm khác nhau thông qua một tập hợp các quy tắc và giao thức đã được định nghĩa.

Hiểu một cách đơn giản:

Hãy tưởng tượng API như là một dịch vụ cung cấp thông tin như dự báo thời tiết, giá vàng ...
Từ ứn dụng Form Access của bạn, gọi 1 API  lấy thông tin dự báo thời tiết, và nó sẽ gởi dữ liệu về cho form để hiển thị.

2. Code VBA Access kết nối API

Bước 1: Tạo form MS Access

Bước 2: Tạo 1 button (nút lệnh) trên Form

Bước 3: khởi tạo sự kiện click vào button

Bước 4: Copy code dưới vào

    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")

    http.Open "GET", "https://jsonplaceholder.typicode.com/todos/1", False
    http.Send

    MsgBox http.responseText

3. Một số ứng dụng thực tế VBA Access kết nối API

 API kết nối Dự báo thời tiết

Sub LayDuBaoThoiTiet()

    Dim strCityName As String
    Dim strAPIKey As String
    Dim strURL As String
    Dim objHTTP As Object
    Dim strResponse As String
    Dim json As Object ' Cần một thư viện JSON parser

    ' --- Cấu hình ---
    strCityName = InputBox("Nhập tên thành phố (ví dụ: Hanoi, London):", "Nhập Thành Phố")
    If strCityName = "" Then
        MsgBox "Bạn chưa nhập tên thành phố.", vbExclamation
        Exit Sub
    End If
    strAPIKey = "YOUR_API_KEY" ' **THAY THẾ BẰNG API KEY CỦA BẠN**
    strURL = "https://api.openweathermap.org/data/2.5/weather?q=" & Replace(strCityName, " ", "%20") & "&appid=" & strAPIKey & "&units=metric" ' Đơn vị: Celsius

    ' --- Tạo đối tượng HTTP ---
    Set objHTTP = CreateObject("MSXML2.XMLHTTP60") ' Hoặc sử dụng "MSXML2.XMLHTTP" nếu v6.0 không có

    ' --- Gửi yêu cầu GET ---
    objHTTP.Open "GET", strURL, False
    objHTTP.send

    ' --- Kiểm tra trạng thái phản hồi ---
    If objHTTP.Status = 200 Then
        strResponse = objHTTP.responseText
        Debug.Print "Dữ liệu JSON nhận được:"
        Debug.Print strResponse

        ' --- Phân tích cú pháp JSON (cần thư viện JSON) ---
        ' VBA không có thư viện JSON tích hợp sẵn. Bạn cần sử dụng một thư viện bên ngoài.
        ' Một thư viện phổ biến là VBA-JSON (bạn có thể tìm và import nó vào project VBA của mình).
        ' Giả sử bạn đã import và có hàm ParseJson:
        ' Set json = ParseJson(strResponse)

        ' --- Lấy thông tin thời tiết (ví dụ) ---
        ' If Not json Is Nothing Then
        '     Dim strDescription As String
        '     Dim dblTemperature As Double
        '     Dim dblHumidity As Double
        '
        '     On Error Resume Next ' Bỏ qua lỗi nếu thuộc tính không tồn tại
        '     strDescription = json("weather")(1)("description")
        '     dblTemperature = json("main")("temp")
        '     dblHumidity = json("main")("humidity")
        '     On Error GoTo 0 ' Bật lại xử lý lỗi
        '
        '     MsgBox "Thời tiết tại " & strCityName & ":" & vbCrLf & _
        '            "Mô tả: " & strDescription & vbCrLf & _
        '            "Nhiệt độ: " & dblTemperature & " °C" & vbCrLf & _
        '            "Độ ẩm: " & dblHumidity & "%", vbInformation
        ' Else
        '     MsgBox "Không thể phân tích dữ liệu thời tiết.", vbExclamation
        ' End If

    Else
        MsgBox "Lỗi khi gọi API. Mã trạng thái: " & objHTTP.Status & vbCrLf & objHTTP.responseText, vbCritical
    End If

    ' --- Giải phóng đối tượng ---
    Set objHTTP = Nothing
    ' Set json = Nothing ' Nếu bạn sử dụng thư viện JSON

End Sub

Hướng dẫn: Truy cập vào https://openweathermap.org/ và lấy API key của bạn. Bạn sẽ cần thay thế YOUR_API_KEY trong mã bằng API key thực tế của bạn.

 API kết nối Kết nối Chat GPT AI

  -- Đang cập nhật
 

Tìm kiếm:

Bài viết liên quan:

Cách code VBA Access đến các dịch vụ API, hướng dẫn chi tiết, dễ hiểu để phục vụ làm phần mềm từ MS Access.