把 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