关闭连接范例

ActiveConnection 属性设置为 Nothing 将“关闭”目录。关联的集合将被置空。目录中任何通过模式对象创建的对象都将被孤立。这些已缓存对象的任何属性依然可用,但读取属性时如果该属性需要调用提供者,则此操作将会失败。

Sub CloseConnectionByNothing()

   Dim cnn As New Connection

   Dim cat As New Catalog

   Dim tbl As Table

   cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _

      "Data Source= c:\Program Files\Microsoft Office\" & _

      "Office\Samples\Northwind.mdb;"

   Set cat.ActiveConnection = cnn

   Set tbl = cat.Tables(0)

   Debug.Print tbl.Type    ' 缓存 tbl.Type 信息

   Set cat.ActiveConnection = Nothing

   Debug.Print tbl.Type    ' tbl 被孤立

   ' 如果它被缓存,前面的行将成功

   Debug.Print tbl.Columns(0).DefinedSize

   ' 如果该信息未被缓存,前面的行将失败

End Sub

关闭用于“打开”目录的 Connection 对象,与将 ActiveConnection 属性设置为 Nothing 效果相同。

Sub CloseConnection()

   Dim cnn As New Connection

   Dim cat As New Catalog

   Dim tbl As Table

   cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _

      "Data Source= c:\Program Files\Microsoft Office\" & _

      "Office\Samples\Northwind.mdb;"

   Set cat.ActiveConnection = cnn

   Set tbl = cat.Tables(0)

   Debug.Print tbl.Type    ' 缓存 tbl.Type 信息

   cnn.Close

   Debug.Print tbl.Type    ' tbl 被孤立

   ' 如果它被缓存,前面的行将成功

   Debug.Print tbl.Columns(0).DefinedSize

   ' 如果该信息未被缓存,前面的行将失败

End Sub