0

VBA - 访问

我正在使用 fso.DeleteFolder 删除服务器上的文件夹,该文件夹是同一 Access DB 中的早期函数创建的。fso.DeleteFolder 代码运行没有错误,并在显示文件夹不再存在后运行 fso.FolderExists(在删除之前,fso.FolderExists 表示该文件夹确实存在)。

但是,该文件夹仍列在服务器上的文件资源管理器中。刷新没有好处。双击服务器上的文件夹时,我收到一条错误消息,指出该文件夹不可访问且访问被拒绝(在删除之前,该文件夹是正常的)。

该文件夹可能有也可能没有子文件夹和/或文件 - 但我认为这并不重要,因为如果我使用不同的文件夹名称再次运行创建/删除过程,问题会重复 - 除了先前的文件夹现在不再在文件资源管理器中列出(现在按照上帝的意图真正删除了),替换为应该删除的新文件夹,并出现相同的双击错误,依此类推。

我在函数结束时杀死了我的 fso 对象,我相信同样的问题也会发生在 KILL 而不是 fso 上。

任何帮助/想法将不胜感激。

4

1 回答 1

1

刚遇到这个问题!

出于某种原因,使用 VBA 删除目录会在已删除文件上留下挥之不去的“锁定”,直到它执行另一种目录类型操作然后刷新“锁定”如果您要在一个脚本中删除三个目录,您可能会发现唯一的“ failed”删除操作将在最后一个删除的目录上进行。

在 RmDir 操作对我有用之后,在脚本中执行“目录读取”类型的操作。尝试这样的事情......

If Dir("yourpath") = "" Then MkDir "yourpath"

于 2017-07-09T12:03:07.907 回答