Как получить доступ к общей сетевой папке с помощью Excel VBA? - PullRequest
0 голосов
/ 04 июля 2019

Я создал базу данных, используя MSExcel в качестве внешнего интерфейса и MSAccess в качестве внутреннего.Файл MSAccess находится в общей сетевой папке, для которой требуются имя пользователя и пароль, которые у меня уже есть.Чтобы другие люди, не имеющие доступа к общей сетевой папке, могли использовать этот файл, я хочу ввести свое имя пользователя / пароль в файл MSExcel с помощью кода VBA.

Я использую этот метод, но все еще показываю эту ошибку -2147023677: Доступ к общей сетевой папке

Public Sub TestNetShareName()

    Dim NetworkObject As Object
    Dim FSO As Object
    Dim Directory As Object
    Dim Filename As Object
    Dim ServerShare As String
    Dim UserName As String
    Dim Password As String

    ServerShare = "\\10.226.2.55\Dept_Share\MHE"
    UserName = "mydomain\myuser"
    Password = "password1234"

    Set NetworkObject = CreateObject("WScript.Network")
    Set FSO = CreateObject("Scripting.FileSystemObject")

    NetworkObject.MapNetworkDrive "", ServerShare, False, UserName, Password

    Set Directory = FSO.GetFolder(ServerShare)
    For Each Filename In Directory.Files
        Debug.Print Filename.Name
    Next

    Set Filename = Nothing
    Set Directory = Nothing
    Set FSO = Nothing

    NetworkObject.RemoveNetworkDrive ServerShare, True, False

    Set NetworkObject = Nothing

End Sub

1 Ответ

0 голосов
/ 04 июля 2019

Код работает отлично, тоже здесь.Но сообщение об ошибке:

enter image description here

очень ясно.Вы не можете получить доступ к одному и тому же источнику одновременно с двумя или более учетными данными.Таким образом, разрешите это, и код запустится.

Редактировать :

Если / как пользователь уже имеет соединение, сопоставьте без учетных данных:

NetworkObject.MapNetworkDrive "", ServerShare, False
...