Sep 23, 2016 11:06 AM
Hello,
I’ve developed some Access VBA code which reads and writes to the Airtable API quite nicely using a module to parse the JSON.
My own use-case scenario is to generate printed labels with QR Codes and make sure that my base stays synchronized when new labels are printed, but the code could be developed to nearly any need, and most especially if you have an Access DB that needs to be uploaded to AT, this could would also work very well for that.
Are there others who would find this code useful to share?
Or, can I help anybody to convert their data for a reasonable fee?
Let me know!
–Jon
Nov 23, 2016 07:04 AM
If you could post the code JSON code which you used to connect to airtable, I am sure many people would be able to benefit from this and be able to produce some brilliant reports and documents.
I for one would be very interested in this.
Thanks
Gary
Feb 09, 2017 06:28 PM
Hi Jon_Jaques. Do you have this code available? I’m looking to call Airtable data into an Excel spreadsheet.
Mar 10, 2017 06:27 AM
Did you guys ever get this code ?
I have a Xamarin app that calls the API and it’s written in C# if you want to chat or share.
Mar 10, 2017 08:09 AM
Hello!
Sorry I didn’t see this sooner, looks like my spam filter got ahold of it
In order to “talk JSON” from VBA/VBScript, you need a handy dandy parser object, I use this one:
In one of my projects, I have a table called Assets. Here is the code to create an Asset record from within MS Access:
Public Function AddAsset(strDesc As String) As String
Dim oj As New clsJSON, data, strOut As String, s As String
Dim authnetStatus, authnetVal, xml, strURL As String
' On Error GoTo getAssetTags_Error
On Error Resume Next
strURL = "https://api.airtable.com/v0/123123/Assets" ' & strID '
' Debug.Print strURL
Set oj = New clsJSON
Set xml = CreateObject("Microsoft.XMLHTTP")
xml.Open "POST", strURL, False
xml.setRequestHeader("Content-type") = "application/json"
xml.setRequestHeader("Authorization") = "Bearer key456456"
oj.data.Add oj.Collection()
oj.data.Add "fields", oj.Collection
oj.data("fields").Add "Description", strDesc
data = oj.JSONoutput
xml.send data
authnetStatus = CStr(xml.Status)
authnetVal = xml.responseText
AddAsset = authnetVal ' oj.JSONoutput '
On Error GoTo 0
Exit Function
getAssetTags_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure getAssetTags of Module modAirTables"
End Function
The trick to getting it to work as expected is in referencing and dereferencing the JSON object, but once you get the hang of it, it’s not too bad.
–Jon
Mar 10, 2017 11:00 AM
Go change your key … you seem to have posted it in your response :slightly_smiling_face:
Can I ask what you are exchanging data with ?
Mar 10, 2017 11:07 AM
Nope, you’ll see I posted 456456 for the key, and 123123 for the app id.
In the case of the function above, the database can create an Asset record in Airtable by passing only one value, strDesc.
The purpose of this particular little project was to print dymo labels for Assets in the database, complete with QR codes to lookup the Asset with.
Mar 10, 2017 11:14 AM
Nice, I am integrating to make custom feature specific mobile apps that interface with Airtable …
Will be integrating with mobile printers later for barcode generation on demand but not sure which ones.
Jan 05, 2018 12:17 PM
Hi Jon,
Can you contact me?
josteurs@gmail.com
I see you wrote already some code that makes MS Office read from Airtable.
I’m in need of some VBA and I think you have 98% already at hand.
Obviously, any work you do I’ll pay for.
Hope to discuss this with you soon.
Thanks Joris
Jan 05, 2018 12:31 PM
Hello Joris,
Check your inbox, I just sent you a message!
–Jon