You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Airtable API获取JSON并填充MS Access表?(VBA实现)

把Airtable API的JSON数据导入MS Access的实用方法

嘿Helga!看到你已经成功过滤Airtable API返回的字段了,这一步已经搞定大半啦😉。下面我分享两种靠谱的方法,帮你把JSON数据填充到Access数据表中:


方法一:用VBA手动解析并写入(灵活可控)

如果你喜欢用代码自定义逻辑,这个方法很合适。首先得确保你的Access表结构和Airtable返回的字段对应上(比如要有Date、Hours、Project这些字段,id和createdTime如果需要也可以加上)。

步骤:

  1. 准备JSON解析工具:VBA本身没有内置JSON解析,推荐用VBA-JSON模块——你可以找到它的代码,复制到Access的VBA模块里就行,不用额外安装软件。
  2. 编写导入代码:打开Access的VBA编辑器(按Alt+F11),新建一个模块,粘贴下面的代码,记得替换里面的占位符:
Sub ImportAirtableToAccess()
    Dim http As Object
    Dim jsonResponse As String
    Dim jsonData As Object
    Dim records As Object
    Dim singleRecord As Object
    Dim recordFields As Object
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    
    ' 初始化HTTP请求对象
    Set http = CreateObject("MSXML2.XMLHTTP")
    
    ' 替换成你的Airtable信息:BaseID、表名、API密钥
    Dim apiEndpoint As String
    apiEndpoint = "https://api.airtable.com/v0/你的BaseID/你的表名?fields[]=Date&fields[]=Hours&fields[]=Project"
    
    ' 发送API请求
    http.Open "GET", apiEndpoint, False
    http.setRequestHeader "Authorization", "Bearer 你的API密钥"
    http.Send
    
    ' 获取返回的JSON字符串
    jsonResponse = http.ResponseText
    
    ' 解析JSON数据
    Set jsonData = JsonConverter.ParseJson(jsonResponse)
    Set records = jsonData("records")
    
    ' 打开目标Access数据表(替换成你的表名)
    Set db = CurrentDb
    Set rs = db.OpenRecordset("你的目标表名", dbOpenDynaset)
    
    ' 遍历每条Airtable记录,写入Access
    For Each singleRecord In records
        rs.AddNew
        
        ' 写入基础信息(可选,不需要可以删掉)
        rs("id") = singleRecord("id")
        rs("createdTime") = singleRecord("createdTime")
        
        ' 处理字段内容,先检查字段存在避免报错
        Set recordFields = singleRecord("fields")
        If recordFields.Exists("Date") Then rs("Date") = recordFields("Date")
        If recordFields.Exists("Hours") Then rs("Hours") = recordFields("Hours")
        
        ' 处理数组类型的字段(比如Project),转成逗号分隔的文本
        If recordFields.Exists("Project") Then
            rs("Project") = Join(recordFields("Project"), ", ")
        End If
        
        rs.Update
    Next singleRecord
    
    ' 清理资源
    rs.Close
    Set rs = Nothing
    Set db = Nothing
    Set jsonData = Nothing
    Set http = Nothing
    
    MsgBox "数据导入成功!"
End Sub
  1. 运行代码:回到Access界面,运行这个宏或者直接在VBA编辑器里按F5执行,就能把数据导入啦。

方法二:用Power Query导入(无代码更快捷)

如果你不想写代码,Access自带的Power Query工具能帮你一键搞定:

  • 打开Access,切换到数据选项卡,点击从其他来源 → 从Web。
  • 输入你的Airtable API URL,然后点击高级按钮,添加请求头:Authorization: Bearer 你的API密钥,点击确定。
  • Power Query会自动加载JSON数据,你只需要:
    1. 点击records列旁边的展开按钮,选择展开到新行。
    2. 再点击fields列的展开按钮,选择你需要的字段(Date、Hours、Project等)。
    3. 调整数据类型(比如把Date列改成日期类型)。
  • 最后点击关闭并上载,选择加载到已有的数据表或者新建表就行。后续要刷新数据的话,直接右键表选择刷新就可以了。

小提示:

  • 注意Airtable API的速率限制:免费版每分钟最多请求5次,别一次性拉太多数据,不然会被限流哦。
  • 日期字段:JSON里的ISO格式日期(比如2018-01-26T15:36:23.000Z),VBA和Power Query一般都会自动识别转换成Access的日期格式,不用额外处理。
  • 数组字段:如果你的Access表用了多值字段,也可以直接映射,但转成逗号分隔的文本兼容性更好。

内容的提问来源于stack exchange,提问作者Helga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:51:11