ms-access - VBA Access 2016 IDE 大写对象属性
问题描述
我正在使用 VBA (Access 2016) 中的一段代码来通过他们的 API 获取 MailChimp 联系人的状态:
With CreateObject("MSXML2.ServerXMLHTTP")
.Open Request, APIUrl & APIString & Criteria, False
.setrequestheader "Authorization", "Basic " & APIAuth
.send
APIResponse = .responsetext
If InStr(APIResponse, "{""exact_matches"":{""members"":[]") > 0 Then
MailExist = False
Else
MailExist = True
Set JSONControl = CreateObject("MSScriptControl.ScriptControl")
JSONControl.language = "Jscript"
APIString = "XXXXXXX"
.Open Request, APIUrl & APIString & Criteria, False
.setrequestheader "Authorization", "Basic " & APIAuth
.send
Set Subber = JSONControl.Eval("(" + .responsetext + ")")
If Subber.status = "subscribed" Then
MailSub = True
Else
MailSub = False
End If
End If
End With
最后,我使用“Subber”对象查看联系人是否已订阅
如果 Subber.status = "订阅" 则
直到最近,当“状态”属性突然被 IDE 大写时,这一直运行良好,导致它出错,并显示“对象不支持此属性或方法”消息。
我已经进行了一些挖掘,并在这里找到了类似的解决方案问题,但是在遵循解决方案之后,“状态”仍然被大写。我尝试在整个项目中检查“状态”一词,但没有任何结果,而且我的表单上的控件也没有使用它。我确实有一个名为“状态”的表字段,但我已经重命名了它,所以它不应该影响它,我还尝试设置一个名为“状态”的公共变量。这可以将属性设置回全小写,但是一旦触发代码,属性就会连同变量名一起返回到“状态”。我现在被卡住了,无法弄清楚为什么会出现大写!
解决方案
你可以试试CallByName
该CallByName
函数用于获取或设置属性,或在运行时使用字符串名称调用方法。这意味着您可以将所需的属性作为参数传入,而无需大写。使用 vbGet 检索值。
推荐阅读
- rust - 锈病中可能存在具有大小特征的多态性吗
- html - 如果当前行的宽度太窄,则将子项的溢出移动到下一行
- android - 如何预加载原生广告,android?
- c# - 在ocr的帮助下将图片中的文字发送到文本框时,文字显示与图片中的一样
- algorithm - O(1) 查找范围
- ajax - 服务多个静态文件并在 golang 中发出 post 请求
- javascript - 将值从函数传递给 data() vuejs
- php - 登录用户的 WooCommerce 产品定制折扣价
- javascript - 通过鼠标抓取为多个元素添加滚动,javascript
- visual-studio-code - Visual Studio 代码中的 Discord 未定义错误。我可以做些什么来修复我的代码?