Здравствуйте. У меня Access 2003. Хочу через код VBA копировать из локальной папки на компьютер в сети файлы, но для этого прежде мне нужно проверить проходит ли имя пользователя и пароль. Допустим, есть 2-е коллекции: имён польз-ей и паролей, которые друг с другом нужно перепробовать. Проблем с копированием не возникает, когда я использую одно имя польз. и один пороль. А сам код реализую примерно так:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
1 : Dim UserPC As New Collection 'Коллекции имён пользователей
2 : Dim PassPC As New Collection 'Коллекция паролей
3 : Dim FSO
4 : Dim WshShell As Object 'Подключаем библиотеку C:\winnt\system32\wshome.ocx
5 : Set WshShell = CreateObject("WScript.Shell") 'Создание объекта командной строки
6 : Call UserPC.Add("Administrator", "User")
7 : Call PassPC.Add("12345", "678912")
8 : q = "q1.q2."
9 : strSrcPath = "D:\folderName" 'Путь на локальной машине, откуда будут копироваться файлы
10 : strDestShare = "C$" 'Пункт назначения: папка
11 : srtDevLetter = "X:" 'Имя подсоединяемого сетевого диска
12 : 'strDestPC - 'Пункт назначения: IP-адрес (куда)
13 : 'strDestUser - 'Пункт назначения: имя пользователя
14 : 'strDestPass - 'Пункт назначения: пароль
15 : For i = n1 To n2
16 : For j = 1 To 254
17 : For k = 1 To UserPC.Count
18 : For l = 1 To PassPC.Count
19 : strDestUser = UserPC(k)
20 : strDestPass = PassPC(l)
21 : strDestPC = q & CStr(i) & "." & CStr(j)
'Пингуем компьютер с полученным IP адресом ' некая процедура...
22 : If Alive(strDestPC) = False Then 'не пингуется
...
23 : Else
24 : WshShell.Run ("net use " & srtDevLetter & " \\" & strDestPC & "\" & strDestShare & " " & strDestPass & " /USER:" & strDestUser)
25 : 'WScript.Echo Err.Number & " " & Err.Description 'Object reqired выдаёт ошибку
26 : Sleep 3000
27 : Set FSO = CreateObject("Scripting.FileSystemObject")
28 : Sleep 3000
29 : Source = strSrcPath & "\*.*"
30 : Target = srtDevLetter & "\"
31 : Call FSO.CopyFile(Source, Target) 'Копирует по сети (откуда/куда)
32 : End If
33 : Next
34 : Next
35 : Next
36 : Next
37 : WshShell.Run ("net use " & srtDevLetter & " /DELETE") 'Удаляет сетевое подключение
38 : MsgBox "Операция завершена. Проверьте список непингуемых машин C:\LogFaildIP"
На строчке 24 выдаёт ошибку, что неверный путь, хотя дело в том, что не проходит учётка. Мне бы хотелось отловить ошибку выводимую на консоль и только в случае успешной авторизации двигаться дальше, как это сделать?
В Access подключены библиотеки: Windows Script Host (ver. 5.6) и Microsoft WMI Scripting v.1.2 Library. Заранее спасибо тем, кто откликнется по теме.