Session MS Access:跨多个表单事件维护持久会话的方法?

Session MS Access:跨多个表单事件维护持久会话的方法?,session,ms-access,vba,winhttp,object-lifetime,Session,Ms Access,Vba,Winhttp,Object Lifetime,希望这是一个简单的问题,尽管解决方案可能不是。在MS Access中,是否可以在应用程序或数据库范围内实例化VBA类 我想做的是持久化一个与应用程序或数据库具有相同生存期的WinHttp实例,这样,当各种表单事件处理程序调用web服务时,它们可以使用持久会话对象来实现 如果没有,我似乎总是需要在当前实例超出范围之前获取并持久化会话状态,特别是JSESSIONID,然后悄悄地将其放回下一个实例化。这是因为我实在负担不起客户端或服务器上的身份验证开销 跨多个表单事件维护物理或虚拟持久会话的推荐方法是

希望这是一个简单的问题,尽管解决方案可能不是。在MS Access中,是否可以在应用程序或数据库范围内实例化VBA类

我想做的是持久化一个与应用程序或数据库具有相同生存期的WinHttp实例,这样,当各种表单事件处理程序调用web服务时,它们可以使用持久会话对象来实现

如果没有,我似乎总是需要在当前实例超出范围之前获取并持久化会话状态,特别是JSESSIONID,然后悄悄地将其放回下一个实例化。这是因为我实在负担不起客户端或服务器上的身份验证开销


跨多个表单事件维护物理或虚拟持久会话的推荐方法是什么?

是的,这当然是可能的。只需在任何子模块或函数之外的模块中将其调暗(不带
New
关键字)

您可以使用
ModuleName.Variablename
符号从同一模块或任何其他模块引用它


如果它是可取的,那是一个完全不同的问题。

我真的很后悔问这个问题,但我会把它留给它的答案值。我真正需要的是一个AutoExec宏来调用启动函数,这样它在第一次单击事件之前就已经被实例化了。但这实际上是不可取的,我真正需要的是“形式范围”,现在我想起来了。服务器和会话对于表单来说是唯一的,应该与表单一起生存和消亡。
Public winHttpObj As Object

Public Sub CreateWinHttpObj
   Set winHttpObj = CreateObject("WinHttp.WinHttpRequest.5.1")
End Sub