【问题标题】:Cannot create files in while loop with Visual Basic 7无法使用 Visual Basic 7 在 while 循环中创建文件
【发布时间】:2019-10-10 13:09:32
【问题描述】:

当我在 while 循环之外创建文件时,如下所示:

Set oFileSip = fso.CreateTextFile(strUriMetadata, True)    
While (Not rs.EOF)
   rs.MoveNext
Wend

当我尝试在以下循环中创建文件时,我 权限被拒绝(错误 70)

While (Not rs.EOF)
   Set oFileSip = fso.CreateTextFile(strUriMetadata, True)
   rs.MoveNext
Wend

为什么我在循环中创建文件时得到“权限被拒绝”?如何解决这个问题?谢谢!

【问题讨论】:

  • 这种情况是在循环中第一次还是第二次发生?

标签: vba loops ms-access while-loop


【解决方案1】:

ofileSip 是一个TextStream,如果你像你一样把它放到一个循环中,那么你在第二次循环时尝试访问一个“打开”的文本流。

你需要先这样关闭它

Do while (Not rs.EOF)
    Set oFileSip = fso.CreateTextFile(strUriMetadata, True)
    ' further code
    oFileSip.Close
    rs.MoveNext
Loop

IMO 您还应该在循环时更改文件的名称,否则您将总是一遍又一遍地创建一个具有相同名称的新空文件。

【讨论】:

  • 谢谢 Storax。我按照你在循环中建议的 oFileSip.Close 做了,但仍然得到完全相同的错误 Permission denied (Error 70)。
  • 并且没有为此文件打开其他流。该文件尚未在其他应用程序中打开?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-15
  • 2012-10-07
相关资源
最近更新 更多