Vba 我创建的FSO文本文件将不会关闭,并且已损坏我的应用程序

Vba 我创建的FSO文本文件将不会关闭,并且已损坏我的应用程序,vba,ms-access,Vba,Ms Access,我已经创建了一个文件系统对象,并且正在使用该对象创建一个文本文件。我的代码中有一行代码是用来关闭文件的(a.close),但它似乎不再工作了 我已经有这段代码好几年了,从来没有出现过任何问题,现在我在第一个实例之后运行这段代码的每个实例上都被拒绝了权限(错误70)。所以,在我第一次运行它时,它工作得很好,然后它抛出一个错误 我相信这是因为access没有关闭文本文件。我已经进入文件浏览器并试图手动删除该文件,但它说该文件仍由MS Access打开。如果关闭并重新打开access,我可以再次运行它

我已经创建了一个文件系统对象,并且正在使用该对象创建一个文本文件。我的代码中有一行代码是用来关闭文件的(a.close),但它似乎不再工作了

我已经有这段代码好几年了,从来没有出现过任何问题,现在我在第一个实例之后运行这段代码的每个实例上都被拒绝了权限(错误70)。所以,在我第一次运行它时,它工作得很好,然后它抛出一个错误

我相信这是因为access没有关闭文本文件。我已经进入文件浏览器并试图手动删除该文件,但它说该文件仍由MS Access打开。如果关闭并重新打开access,我可以再次运行它,但只能运行一次。代码在fs.CreateTextFile行上抛出错误

Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("\\SERVER\Folder\Exports\" & VBA.Environ("username") & "_MyFile.cmd", True)
a.WriteLine("yadayada")
a.WriteLine("anotherwriteline")
a.Close
第一个writeline运行查询,第二个writeline将结果集复制到xml文件


我完全被难住了。这些年来一直没有任何问题,但有一天,大便击中了风扇。接受所有建议!!提前感谢

尝试嵌套
块,确保在执行退出块时释放文件并销毁对象引用

在本地驱动器上测试时,以下代码有效

With CreateObject("Scripting.FileSystemObject")
    With .CreateTextFile("\\SERVER\Folder\Exports\" & VBA.Environ("username") & "_MyFile.cmd", True)
        .WriteLine "yadayada"
        .WriteLine "anotherwriteline"
        .Close
    End With
End With

由于某些原因,Access不再喜欢使用.cmd文件。在这里听到一些人提出问题可能与文件类型有关后,我继续将其更改为.bat。现在一切都和以前一样正常。谢谢大家的建议

我发现文件扩展名可疑。“.cmd”通常表示您有一个命令文件。可能是某些安全策略或病毒扫描程序阻止了对文件的访问?是的,我也在考虑类似的问题,但是如果对文件类型存在安全问题,这不会阻止它在第一时间工作吗?我不知道,发生什么事并不总是显而易见的。当文件被写入时,它可能会被隔离,因此无法被覆盖。你试过使用不同的扩展吗?这里有同样的问题。代码在第一次运行时按预期执行,之后每次都会抛出错误。很抱歉,恐怕无法进一步帮助。