网站首页 > 资源文章 正文
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。如下图:
猜你喜欢
- 2024-09-29 跟我学:从零开始用Access设计一套完整的系统(二)
- 2024-09-29 微软彩虹——免费下载和介绍正版Microsoft365
- 2024-09-29 蓝队技术——Sysmon识别检测宏病毒
- 2024-09-29 攻击者用Microsoft Access“链表”功能执行NTLM强制身份验证攻击
- 2024-09-29 复制Access对象到其他Access数据库中
- 2024-09-29 Excel 中的 Power Query 教程:如何获取、使用和自动刷新
- 2024-09-29 研究发现,近一半的成年人和18%的青少年参与赌博
- 2024-09-29 制作简单 进销存 软件——(一)Access数据库创建
- 2024-09-29 32位微软Access今年11月支持使用4GB内存
- 2024-09-29 1、ACCESS2010空数据库的建立(ACCESS图解操作系列)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)