MS Access:跨多个表单事件维护持久会话的方法?
MS Access: Way to maintain persistent session across multiple Form Events?
希望这是一个简单的问题,尽管解决方案可能不是。在 MS Access 中,是否可以在应用程序或数据库范围内实例化 VBA class?
我想要做的是保留一个与应用程序或数据库具有相同生命周期的 WinHttp 实例,以便在各种表单事件处理程序调用 Web 服务时,它们可以使用持久会话对象来实现。
如果不是,似乎我总是需要在当前实例超出范围之前获取并保留会话状态,尤其是 JSESSIONID,然后悄悄地把它放回下一个实例化。这是即将到来的,因为我真的负担不起客户端或服务器上的身份验证开销。
跨多个表单事件维护物理或虚拟持久会话的推荐方法是什么?
是的,这当然是可能的。只需在任何子函数或函数之外的模块中将其调暗(不使用 New
关键字)
Public winHttpObj As Object
Public Sub CreateWinHttpObj
Set winHttpObj = CreateObject("WinHttp.WinHttpRequest.5.1")
End Sub
您可以从同一模块引用它,也可以使用 ModuleName.Variablename
符号从任何其他模块引用它
是否需要是一个完全不同的问题。
希望这是一个简单的问题,尽管解决方案可能不是。在 MS Access 中,是否可以在应用程序或数据库范围内实例化 VBA class?
我想要做的是保留一个与应用程序或数据库具有相同生命周期的 WinHttp 实例,以便在各种表单事件处理程序调用 Web 服务时,它们可以使用持久会话对象来实现。
如果不是,似乎我总是需要在当前实例超出范围之前获取并保留会话状态,尤其是 JSESSIONID,然后悄悄地把它放回下一个实例化。这是即将到来的,因为我真的负担不起客户端或服务器上的身份验证开销。
跨多个表单事件维护物理或虚拟持久会话的推荐方法是什么?
是的,这当然是可能的。只需在任何子函数或函数之外的模块中将其调暗(不使用 New
关键字)
Public winHttpObj As Object
Public Sub CreateWinHttpObj
Set winHttpObj = CreateObject("WinHttp.WinHttpRequest.5.1")
End Sub
您可以从同一模块引用它,也可以使用 ModuleName.Variablename
符号从任何其他模块引用它
是否需要是一个完全不同的问题。