使用 Access VBA 将文件保存到 OneDrive

问题描述 投票:0回答:1

我们的系统正在转向云存储,因此我们的个人驱动器很快就会消失,因此我需要将应用程序保存到用户 OneDrives。

这对我来说是新领域,我在网上阅读的内容没有多大意义。

这是我到目前为止所拥有的:

Set FileSystemObject = CreateObject("Scripting.FileSystemObject")
Dim FileExistsbol As Boolean
Dim stFileName As String
Dim CopyFrom As String
Dim CopyTo As String

stFileName = "C:\Users\" & Environ("UserName") & "\OneDrive - Company"
stFileName = Trim(stFileName)
FileExistsbol = dir(stFileName) <> vbNullString

If FileExistsbol Then
 Kill stFileName
 CopyFrom = "C:\Test File.txt"
 CopyTo = "C:\Users\" & Environ("UserName") & "\OneDrive - Company"
 FileSystemObject.CopyFile CopyFrom, CopyTo
Else
 CopyFrom = "C:\Test File.txt"
 CopyTo = "C:\Users\" & Environ("UserName") & "\OneDrive - Company"
 FileSystemObject.CopyFile CopyFrom, CopyTo
End If

此代码以前适用于复制到本地驱动器,但相信这次它不起作用,因为它尝试复制到的新驱动器是基于网络的。

错误: 实际上没有填充任何错误

如有任何帮助,我们将不胜感激

ms-access vba ms-access-2010
1个回答
0
投票

请注意,您的变量

stFileName
包含目录路径而不是文件名,因此
kill
表达式的目标是目录。


但是,不要测试和删除文件,而是使用

overwrite
方法的
CopyFile
参数,例如:

Dim objFSO As New FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:\Test File.txt", "C:\Users\" & Environ("UserName") & "\OneDrive - Company", True
Set objFSO = Nothing

您需要在项目中添加对 Microsoft Scripting Runtime 的引用,才能使用早期绑定定义我的示例中的

objFSO
变量。

© www.soinside.com 2019 - 2024. All rights reserved.