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 大写时,这一直工作正常,导致它出错并显示"对象不支持此属性或方法"消息。

我做了一些挖掘,在这里发现了一个类似的解决方案问题,但是在遵循解决方案之后,"状态"仍然被大写。我尝试在整个项目中检查"状态"一词,但没有结果,并且我的表单上也没有使用它。我确实有一个名为"状态"的表字段,但后来我重命名了它,所以它不会影响它,而且我还尝试设置一个名为"status"的公共变量。这可以将属性设置回所有小写,但是一旦触发代码,该属性将返回到"状态"以及变量名称。我现在被困住了,无法弄清楚为什么会发生大写!

你可以试试 CallByName

CallByName函数用于获取或设置属性,或在运行时使用字符串名称调用方法。这意味着您可以在没有此大写的情况下将所需的属性作为参数传入。使用 vbGet 检索值。

最新更新