2013-11-26 3 views
1

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

Я пытаюсь получить доступ к сайту sharepoint (для которого нет никаких ограничений для меня) и извлечь все файлы в папке внутри этого сайта.

Иногда мой Путь работает, и он делает это, в других случаях это не так. У меня такое чувство, что это работает, если я раньше посещал сайт sharepoint в моем браузере, но не могу подтвердить это (потому что я просто попробовал это снова сейчас, и он не работает ARGGH). Но тот же код ниже работал в прошлом.

Это провал на функции файловой системы объекта ниже

Public Function GetFullFileName(strfilepath As String, _ 
strFileNamePartial As String) As String 
Dim objFS As Variant 
Dim objFolder As Variant 
Dim objFile As Variant 
Dim intLengthOfPartialName As Integer 
Dim strfilenamefull As String 
Set objFS = CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFS.GetFolder(strfilepath) 
'work out how long the partial file name is 
intLengthOfPartialName = Len(strFileNamePartial) 

For Each objFile In objFolder.Files 
    'Test to see if the file matches the partial file name 
    If Left(LCase(Replace(objFile.Name, " ", "")), intLengthOfPartialName) = LCase(strFileNamePartial) Then 
    'get the full file name 
     strfilenamefull = objFile.Name 
     Exit For 
    Else 
    End If 
Next objFile 

'Return the full file name as the function's value 
GetFullFileName = strfilenamefull 
End Function 

Я получаю «Ошибка выполнения„76“: Путь не найден», когда он попадает в (strfilepath) код GetFolder

Strfilepath - это просто обычное имя сайта sharepoint (например, \ teams.uk \ gm \ FX \ SharedDocuments \ London \ 11) Ноябрь 2013 \ 20 ноября \ Отчеты)

Как уже упоминалось, я пробовал различные варианты файла путь, включая DavWWW, но ничего не работает, и я не знаю, что els e попробовать.

Любые советы, пожалуйста?

Благодаря

Raiyan

+0

Может быть, из-за сетевого соединения? – jacouh

+0

Не думайте так - я могу напрямую войти на сайт sharepoint и получить к нему доступ? – user2599240

+0

Почему вы используете FileSystemObject для доступа к документам на сайте sharepoint? Документы SharePoint расположены в виртуальном пути, созданном SharePoint, и FileSystemObject ничего о них не знает. Вы должны использовать API SharePoint для доступа к документам на сайте sharepoint. Возможно, вы используете какой-то COM-объект? –

ответ

0

службу веб-служба должна быть запущена для доступа к SharePoint с помощью FileSystemObject.

Эта услуга часто не запускается при первом входе в систему. Однако при доступе к SharePoint через обычный пользовательский интерфейс он запускается. Я думаю, именно поэтому ваш код работает непоследовательно.

Если у вас есть права администратора на локальном компьютере, вы можете запустить сервис вручную (или используя код). Однако, если у вас нет прав, вы можете попробовать трюк - он неуклюжий, но работает.

Используя код VBA, откройте известную папку SharePoint в представлении проводника, затем закройте ее. Это приведет к запуску веб-клиента.

Смежные вопросы