Any idea why it's not compatible with version 2007? This is the code:
Code:
Option Compare Database
Option Explicit
Private Sub btnRequest_Click()
If IsNull(Me.RegistrationNumber) Then
MsgBox "Missing registration number"
Exit Sub
End If
Dim strUrl As String
Dim strApiKey As String
Dim objRequest As Object
Dim objReqBody As Object
Dim strResponse As String
'use a dictionary to avoid string manipulation
Set objReqBody = CreateObject("Scripting.Dictionary")
objReqBody.Add "registrationNumber", Me.RegistrationNumber
'assign your variables
strUrl = "https://driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1/vehicles"
strApiKey = "XXX"
'instantiate http
Set objRequest = CreateObject("MSXML2.XMLHTTP")
'send http request
With objRequest
.Open "POST", strUrl, False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "Accept", "application/json"
.setRequestHeader "x-api-key", strApiKey
'convert dictionary to JSON
.send JsonConverter.ConvertToJson(objReqBody)
'store response in a string variable
strResponse = .responseText
'visualize response in immediate window
Debug.Print strResponse
End With
'convert string response to a dictionary
Dim parsedResponse As Object
Set parsedResponse = JsonConverter.ParseJson(strResponse)
If parsedResponse("message") = "Forbidden" Then
MsgBox "Bad api key"
Else
'populate your textboxes
Me.txtMake = parsedResponse("make")
Me.txtColour = parsedResponse("colour")
Me.txtEngineCapacity = parsedResponse("engineCapacity")
Me.txtFuelType = parsedResponse("fuelType")
Me.txtYearOfManufacture = parsedResponse("yearOfManufacture")
Me.txtFirstRegistered = parsedResponse("monthOfFirstRegistration")
Me.txtmotStatus = parsedResponse("motStatus")
Me.txtmotDueDate = parsedResponse("motExpiryDate")
Me.txtTaxStatus = parsedResponse("taxStatus")
Me.txtTaxDueDate = parsedResponse("taxDueDate")
Me.txtDateLastV5Issued = parsedResponse("dateOfLastV5CIssued")
End If
End Sub