Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2009, 11:04   #1
mephist
Форумчанин
 
Регистрация: 01.05.2009
Сообщений: 200
По умолчанию Подключение к серваку.

Доброго времени суток!
У меня макрос просматривает все файлы и подпапки в заданной папочке.
Все работает на локальном диске, но мне нужно, чтобы это работало на серваке. То есть, когда в FolderPath хранится D:\asd, все работет.
А когда в FolderPath находится sftp://10.10.100.15/asd не работает.
Ошибка возникает в этой строке.
Код:
 Set curfold = fso.GetFolder(FolderPath)
С этим можно что-нибудь сделать??? Может я не так прописываю путь или функция не та??? Подскажите, пожалуйста!
mephist вне форума Ответить с цитированием
Старый 07.09.2009, 17:43   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте mephist.
"серваке" это сервер очевидно
обратитесь к его папке \\10.10.100.15\asd
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 08.09.2009, 12:01   #3
mephist
Форумчанин
 
Регистрация: 01.05.2009
Сообщений: 200
По умолчанию

Хорошо, буду писать аккуратнее. Но проблемы это к сожелению тоже не рашает. Строка
Код:
Set curfold = fso.GetFolder(FolderPath)
по-прежнему выдает Run-time error '76': Path not found
Следует отметить, что сервер использует SFTP протокол. Я к нему подключаюсь через WinSCP, и через в WinSCP запускаю свою книгу,которая пробегается по всем папкам.
Может быть стоило делать все по-другому???
P.S. Мне очень нужно научиться работать с этим сервером, у меня уже куча программ для него, а программно подключиться не могу.
mephist вне форума Ответить с цитированием
Старый 08.09.2009, 15:15   #4
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

Цитата:
Сообщение от mephist Посмотреть сообщение
Хорошо, буду писать аккуратнее. Но проблемы это к сожелению тоже не рашает. Строка
Код:
Set curfold = fso.GetFolder(FolderPath)
по-прежнему выдает Run-time error '76': Path not found
Следует отметить, что сервер использует SFTP протокол. Я к нему подключаюсь через WinSCP, и через в WinSCP запускаю свою книгу,которая пробегается по всем папкам.
Может быть стоило делать все по-другому???
P.S. Мне очень нужно научиться работать с этим сервером, у меня уже куча программ для него, а программно подключиться не могу.
Честно гоовря я не могу понять как ты используя интерфейс windows без использования привязки к сетевому протоклу хочешь получить в прикладной задачи взаимодейстовие с протоколом SFTP. В оболочки Windows это проходит на ура - пользователь не знает какой сетевой протокол используется для этого. Но вприкладном По все иначе.
Если взять нормальную книгу по описанию серверного программного обеспечения то узнаешь что протокол SFTP (известный всем как CIFS) использует сетевой протокол TCP/IP, а WInSCP -иначе называемый API-интрефейс WIndows Sockets использует по умолчанию QoS. Именно он испольует как транспорт NETBEUI инвертируется в протокол TCP/IP для опроса SFTP.
Чтобы решить твою проблему необходимо или используя динамическую библиотеку Ws2_32.dll (эту библиотеку можно взять с сервера Микрософт) задать в качестве транспорта TCP/IP, или, что будет более лучше перейти на работу по сетевому протоколу обмена TCP/IP. (но в этом случае прижется отказаться от динамического определения IP адреса). Есть третий путь - он затрагивает только сервер - использовать Named Pipes протокол на сервере. В нем для связи по сети используется редиректор файловой системы Windows, что позволяет использовать любой из существующих протоколов. тогда имя пути будет иметь вид
Код:
=\\NONENAME\pipe\asd
где NONEMANE имя именованного протокола
Юнлинг вне форума Ответить с цитированием
Старый 08.09.2009, 16:09   #5
mephist
Форумчанин
 
Регистрация: 01.05.2009
Сообщений: 200
По умолчанию

После прочтения сообщения Юнлинг, я завис минут на 10.
Насколько я понял (и не понял) есть 3 пути:
1.
Цитата:
используя библиотеку Ws2_32.dll, задать в качестве транспорта TCP/IP
То есть, осуществлять соединение без WinSCP???
Мне это плохо подходит,так как у меня нет админских прав и библиотеку я не установлю, и настроить не сумею.
2.
Цитата:
перейти на работу по сетевому протоколу обмена TCP/IP
А в чем разница между переходом на работу TCP/IP и задать TCP/IP в качестве транспорта???
Код:
динамическое определение IP адреса
мне судя по всему не нужно.
А если возможно подключение через TCP/IP без WinSCP и дополнительных бибилиотек, то это идеальный вариант.
3.
Цитата:
использовать Named Pipes протокол на сервере
не получится, так как его администрируют совсем другие люди.
Юнлинг, растолкуй пожалуйста, если я что-то не так понимаю.
mephist вне форума Ответить с цитированием
Старый 08.09.2009, 22:19   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте mephist.
Юнлинг немного сгустил краски() большинство сегодняшних (администрируемых) сетей поддерживают TCP/IP, подозреваю 10.10.100.15 это реальный адрес Вашей сети. Проверьте доступ к ресурсу \\10.10.100.15\asd\, подобный код в VBS файле способен выполнить такую проверку:
Код:
Dim fso, fldr, fil
Set fso = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
    Set fldr = fso.CreateFolder("\\10.10.100.15\asd\MyTest")    
    Set fil = fso.CreateTextFile("\\10.10.100.15\asd\MyTest\MyTest.TXT")
    Set fil = fso.GetFile("\\10.10.100.15\asd\MyTest\MyTest.TXT")
    if not err.Number = 0 Then msgbox Err.Description
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 09.09.2009, 12:57   #7
mephist
Форумчанин
 
Регистрация: 01.05.2009
Сообщений: 200
По умолчанию

К сожалнию в результате я получил сообщение File not found.
Насколько я понял, этот код был должен создать папку, текстовик в папке и просмотреть этот текстовик. Ни одно из этих действий не осуществилось.
Может я где-нибудь нарушил логику своего макроса: книга находится на запороленном серваке, я подключаюсь к серваку через WinSCP с вводом пароля, открываю книгу и запускаю макрос, который формирует список файлов. К серверу возможно подключение только в динамическом режиме(через IE к нему не подключиться)
Отсюда возникают вопросы:
1. Возможно ли осуществление моей задачи через Excel???
2. Может быть где-нибудь стоит прописать пароль???
3. Какие должны быть слешы(\ или /)
mephist вне форума Ответить с цитированием
Старый 14.09.2009, 11:07   #8
mephist
Форумчанин
 
Регистрация: 01.05.2009
Сообщений: 200
По умолчанию

Очень жаль, что эту тему забыли.
Значит этого никак добиться нельзя? Напишите,пожалуйста в чем загвоздка?
mephist вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подключение ж.д. к п.к. viks1 Компьютерное железо 3 23.06.2009 15:06
Подключение Bigtyoma Свободное общение 4 19.11.2008 19:09
подключение к интернету xakkkkker Работа с сетью в Delphi 2 06.11.2008 17:40
Подключение DirectX softrix Общие вопросы C/C++ 2 31.05.2008 01:12
подключение к инету!? ronich Помощь студентам 16 26.12.2007 23:25