我在Excel 2003文档中使用VBA宏来通过ADO查询另一个Excel 2003文档。代码看起来像这样:
Dim vRecordSet As ADODB.Recordset
vWorkbookConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\SomeExcelFile.xls;Extended Properties=Excel 8.0;"
Set vRecordSet = New ADODB.Recordset
Call vRecordSet.Open(Source:=strSQl, ActiveConnection:=vWorkbookConnectionString, _
CursorType:=adOpenForwardOnly, LockType:=adLockReadOnly, Options:=adCmdText)
vRecordSet
稍后用于创建数据透视表。
我的目标是在用户关闭运行此代码的工作簿时删除作为此RecordSet源的文件(上例中为C:\ SomeExcelFile.xls)。
运行此ADO查询时文件被锁定,并且在工作簿关闭之后似乎不会释放。调用vRecordSet.Close
不会释放它。
是否可以强制Excel释放对此文件的锁定,以便我可以以编程方式删除它?
答案 0 :(得分:1)
在vRecordSet.Close
来电之后,您是否尝试添加以下内容,看看它是否有所作为:
Set vRecordSet = Nothing
答案 1 :(得分:0)
未经测试的巫毒:使用变量来保存ADODB.Connection,将其传递给打开,关闭记录集和连接。