Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access开发平台

ACCESS通过MSXML2.XMLHTTP实现与Web服务器的通信

时 间:2023-12-11 08:05:34
作 者:双鱼座的20年   ID:63297  城市:西安
摘 要:ACCESS通过MSXML2.XMLHTTP实现与Web服务器的通信,这个可以大大扩展vba本身的不足,一些复杂的应用可以在web服务器端执行,并把结果传递给access,单纯把access作为web的前端使用。
正 文:

步骤一:盟威软件Access快速开发平的SysLocalParameters表中,新增两个参数,分别是HOST和PORT,后续可以通过GetParameter(parameter)获得对应的配置信息。如下图:

点击图片查看大图

点击图片查看大图


步骤二:在VBE中创建一个类模块名字为myHTTP,用Private(如果你想向外暴露的话也可以用Public)的方式创建两个对象分别是HOST和REQUEST。HOST,将在类被实例化的时候获取我们设置在SysLocalParameters中的web后端服务器IP及端口信息,REQUEST将以MSXML2.XMLHTTP的形式创建成一个web请求/响应对象。
并创建两个web请求方法,分别是GET请求和POST请求。如下图:

点击图片查看大图


步骤三:需要说明的是,我们在POST的请求头设置采用了JSON的形式进行信息交互,然而VBA这个老古董真心不支持JSON的数据类型,因此我们只能将JSON作为形似JSON 的字符串进行解析,为了更好的解析这些数据因此需要对web端发送过来的数据根据需求进行一些格式转换,以下是对应的转换方法(没有完整测试,不保证没有bug)。
3.1 在VBE的工具中导入MicroSoft Scripting Runtime的库;
3.2 在VBE中的模块中创建一个basUDF的模块,并写入以下函数,如下图:

点击图片查看大图

点击图片查看大图

点击图片查看大图


以上代码中函数命名的可读性已经很强了,请大家自行理解。


步骤四:以基于Python的FastAPI框架快速的创建一个web服务,用pycharm的IDE快速创建一个web服务,并启动,如下图:

点击图片查看大图


如上图所示,在这个服中定义了两个路由,分别对应了url的get和post方法,且在本地计算机启动,对应的本机IP:127.0.0.1,服务端口为8000,当然也可以根据需要采用uvicorn,启动fastapi的web服务,并更改host以及服务端口等。以上,已经完成了用VBA以MSXML2.XMLHTTP访问web服务的所有准备,以下进行测试。


步骤五:

5.1. get的测试:在get的测试代码中,我们通过“/”的url直接访问了web服务中对一个“/”url下的get方法,并成功获得{hello:world}的返回值,http.REQUEST.stauts为200,状态描述为OK。如下图:

点击图片查看大图


5.2 post的测试:在post的测试代码中,我们通过“/“的url访问了web服务中对应的”/”url下的post方法,与get请求不同的是,我们在请求中在请求体中携带了json请求信息,并成功获得{hello,FastAPI}的返回值,http.REQUEST.stauts为200,状态描述为OK。如下图:

点击图片查看大图



Access快速开发平台QQ群 (群号:321554481)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助