【发布时间】:2018-10-15 15:36:13
【问题描述】:
我正在使用 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 = "subscribed" 那么
直到最近,“status”属性突然被 IDE 大写,导致它出错,并显示“对象不支持此属性或方法”消息。
我进行了一些挖掘,发现解决方案here 存在类似问题,但在遵循解决方案之后,“状态”仍然被大写。我尝试在整个项目中检查“状态”一词,但没有任何结果,而且我的表单上的控件也没有使用它。我确实有一个名为“状态”的表字段,但我已经重命名了它,所以它不应该影响它,我还尝试设置一个名为“状态”的公共变量。这可以将属性设置回全小写,但是一旦触发代码,属性就会与变量名一起返回到“状态”。我现在卡住了,无法弄清楚为什么会出现大写!
【问题讨论】:
-
正如链接所提到的,这主要是一个外观问题。所以这可能只是代码中其他地方发生的其他事情(更糟)的症状。
-
你能用CallByName吗?
-
@QHarr,CallByName 成功了。非常感谢!
-
不客气。我将在下面发布,供未来读者参考。