Jan 21, 2021 07:46 AM
I’m looking for a simple example for updating one or more fields of existing records thru excel vba. I’ve found several example of using GET, a few for POST & PUT, but almost nothing for using PATCH. I really only need to update one field of a record, but many records to update.
Thanks,
Jan 21, 2021 09:49 AM
You can find PATCH examples that are already handcrafted & custom-tailored for your particular base by going to REST API - Airtable, and then choosing your base name, then choosing the table name (in the left margin), then choosing “Update Records” (in the left margin).
Jan 22, 2021 05:30 AM
Hi Scott,
That’s what I’m referencing, but I’m struggling translating that into VBA for excel. I’m a novice developer at best, and I pull most of what I need from examples.
I’m trying to update a single field of a single record just to I can understand how it works to plug it into a tool I’m working on.
I get this error:
{"error":{"type":"INVALID_REQUEST_MISSING_FIELDS","message":"Could not find field \"fields\" in the request body"}}
I don’t know if my string is formatted incorrectly for what needs updated and/or if I don’t have the right parts of the request. I started with a working example for a GET request.
Sub REST_PATCH()
Dim objRequest As Object
Dim strUrl As String
Dim blnAsync As Boolean
Dim strResponse As String
Dim str As String
Set objRequest = CreateObject("MSXML2.XMLHTTP")
strUrl = "https://api.airtable.com/v0/appeIRMxD05xIau1C/VENDOR%20ITEMS/recjJhV29c8NiwY0t?api_key=keyxxxxxxxxxxxx"
blnAsync = True
str = "'{ ""records"": [ { ""id"": ""recjJhV29c8NiwY0t"", ""fields"": {""DESC"": ""TEST PATCH\n""] }'"
With objRequest
.Open "PATCH", strUrl, blnAsync
.SetRequestHeader "Content-Type", "application/json-patch"
.Send str
'spin wheels whilst waiting for response
While objRequest.readyState <> 4
DoEvents
Wend
strResponse = .ResponseText
End With
Debug.Print strResponse
End Sub
Thanks for the help,
Greg
Jan 22, 2021 08:34 AM
Sorry, I don’t know VBA for Excel.