Перемещение папок в сетевом расположении с помощью Access VBA - PullRequest
0 голосов
/ 10 апреля 2019

Я хочу переместить папки, которые находятся в сети, с помощью Access VBA.

Когда я нажимаю кнопку на форме, он выполняет код VBA.

Приведенная ниже программа перемещает локальные папки ПК, когда\\?\ удаляется из кода.Используя \\?\ перед любым путем к сетевой папке, он создает новую папку в сети.

Когда я хочу переместить папки, это дает:

Время выполнения Ошибка 5: Недопустимый вызов процедуры или аргумент.

При отладке выделяет objF.MoveFolder oldStr, newStr

Private Sub btnBrowse_Click()
Dim oldStr As String
Dim newStr As String
Dim objF As Object

Me.OldPath = Me.FolderPath
Me.NewPath = GetFolder()

If Len(Me.NewPath) > 0 Then
     Me.NewPath = "\\?\" & Me.NewPath
     Me.FolderPath = Me.NewPath

     Set objF = CreateObject("Scripting.FileSystemObject")

     oldStr = Me.OldPath & "\*"
     newStr = Me.NewPath & "\"

     objF.MoveFolder oldStr, newStr
End If

End Sub

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Мы не можем использовать эти \\?\ пути. Следует использовать обычные пути. \\?\ не имеет ничего общего с сетями. Сети \\servername\sharename\folder\file.ext

Я удалил \\?\ и все работало хорошо. \\?\ создавал путаницу с MS Access при распознавании пути и, таким образом, выдавал ошибку.

0 голосов
/ 10 апреля 2019

Используйте объект файла Microsoft.Scripting.Runtime для перемещения папки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...