什么是 USING 语句的 VBA

what is the VBA for the USING statement

提问人:Bellash 提问时间:6/2/2014 最后编辑:Erik ABellash 更新时间:7/13/2020 访问量:2614

问:

在 csharp 或 vb.net 中,我们出于我们知道的原因使用该语句:可以打开数据库并自动关闭它,而无需显式编写它。 我想做同样的事情usingVBA

  1. 怎么做?
  2. 所有 VB.NET 语句/关键字/在VBA中都可用吗?
  3. 如何判断给定的语句在VBA中是否已知?是否有所有VBA语句/关键字/运算符的库(glosary)?

c#

  using(var db=new MyDbContext()){
   //do work here
  }

vb.net

    Using s = New MyDbContext()
     '--..do work here
    End Using
MS-Access VBA using-statement using -指令

评论


答:

1赞 aphoria 6/2/2014 #1

没有与该语句等效的 VBA。Using

VBA 开发人员文档提供了 VBA 文档的示例,甚至是可下载的脱机版本。

2赞 StuartLC 6/2/2014 #2

正如你所暗示的,只回答你的第一个问题只是调用实现接口的对象实例的语法糖。UsingDispose()IDisposable

它相当于

Dim s as MyDbContext
Try
   s = New MyDbContext()
   // ...
Finally
   s.Dispose()
End Try

由于不支持 sugar,并且在没有结构化异常处理的情况下,您需要显式调用控制对象生命周期的所有路径(在您的情况下)。在这种情况下,您可能只是使用VBAUsingTry..CatchDispose()MyDbContext.Close()

评论

0赞 StuartLC 6/2/2014
由于通常只会调用大部分 Db 资源,因此实际上没有在 和 之间进行选择Dispose()Close()Close()Dispose()
0赞 HarveyFrench 6/23/2015
您可以在 VBA 中模拟 TRY CATCH 块,请参阅此处 stackoverflow.com/q/30991653/4413676