当 运行 VBA 脚本在宏中创建目录或作为子脚本时,MS Access 抛出错误 2001
MS Access throwing error 2001 when running VBA script to make a directory in a Macro or as sub script
我在 MS Access 中有以下 VBA 脚本来检查目录并在目录不存在时创建它:
Public Function MakeReportDirct()
Dim fDate As String
Dim sFolderPath As String
Dim oFSO As Object
fDate = Format(Now(), "YYYY-MM")
sFolderPath = "\satco-file01\COMPANYSHAREDFOLDERS\Reporting\Nuvo\Daily Reports\" & fDate
Set oFSO = CreateObject("Scripting.FileSystemObject")
If oFSO.FolderExists(sFolderPath) Then
End
End If
MkDir sFolderPath
End Function
当我 运行 代码单独在 VBA window 时,它工作得很好。但是,当我尝试 运行 来自宏的代码或当我尝试从另一个 VBA 脚本调用时:
Public Function ChartwellVendor()
Call MakeReportDirct
Call ChartwellVendorExport
Call ChartwellVendorEmail
End Function
它给出了“宏单步”错误:2001
我已将我能想到的每个位置(数据库位置、导出位置、将创建目录的位置)启用为“受信任的位置”。
如有任何帮助,我们将不胜感激!
End statement"立即终止执行".
当你 运行 MakeReportDirct
一个人时,这就完成了你想要的:当文件夹已经存在时 MkDir
不会执行。
但是当您从 ChartwellVendor
中 运行 它时,您希望其他程序在 MakeReportDirct
之后 运行。但是,End
语句终止了 all 的进一步处理,因此那些其他过程不会 运行.
您可以通过将 End
替换为 Exit Function
来避免该问题。然后 MakeReportDirct
可以终止但仍然允许处理继续 ChartwellVendor
中的下一行
另一种方法是翻转 If
块条件的逻辑。如果该文件夹不存在,则在该代码块内 运行 MkDir
。
If Not oFSO.FolderExists(sFolderPath) Then
MkDir sFolderPath
End If
我在 MS Access 中有以下 VBA 脚本来检查目录并在目录不存在时创建它:
Public Function MakeReportDirct()
Dim fDate As String
Dim sFolderPath As String
Dim oFSO As Object
fDate = Format(Now(), "YYYY-MM")
sFolderPath = "\satco-file01\COMPANYSHAREDFOLDERS\Reporting\Nuvo\Daily Reports\" & fDate
Set oFSO = CreateObject("Scripting.FileSystemObject")
If oFSO.FolderExists(sFolderPath) Then
End
End If
MkDir sFolderPath
End Function
当我 运行 代码单独在 VBA window 时,它工作得很好。但是,当我尝试 运行 来自宏的代码或当我尝试从另一个 VBA 脚本调用时:
Public Function ChartwellVendor()
Call MakeReportDirct
Call ChartwellVendorExport
Call ChartwellVendorEmail
End Function
它给出了“宏单步”错误:2001
我已将我能想到的每个位置(数据库位置、导出位置、将创建目录的位置)启用为“受信任的位置”。
如有任何帮助,我们将不胜感激!
End statement"立即终止执行".
当你 运行 MakeReportDirct
一个人时,这就完成了你想要的:当文件夹已经存在时 MkDir
不会执行。
但是当您从 ChartwellVendor
中 运行 它时,您希望其他程序在 MakeReportDirct
之后 运行。但是,End
语句终止了 all 的进一步处理,因此那些其他过程不会 运行.
您可以通过将 End
替换为 Exit Function
来避免该问题。然后 MakeReportDirct
可以终止但仍然允许处理继续 ChartwellVendor
另一种方法是翻转 If
块条件的逻辑。如果该文件夹不存在,则在该代码块内 运行 MkDir
。
If Not oFSO.FolderExists(sFolderPath) Then
MkDir sFolderPath
End If