** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y Otros sistemas
  Mensajes nuevos Mensajes nuevos RSS - Copiar archivos en SharePoint
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCopiar archivos en SharePoint

 Responder Responder
Autor
Mensaje
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 12022
Enlace directo a este mensaje Tema: Copiar archivos en SharePoint
    Enviado: 12/Septiembre/2014 a las 11:53
Muy buenas,

Hace 3 meses seguí con interés este hilo para realizar la subida de archivos de una carpeta local a un sitio SharePoint.

En mi último mensaje indique un código que, en ese momento funcionaba perfectamente. El código está sacado de este enlace (último mensaje)

Yo lo retoqué para que todos los archivos fueran subidos como de tipo binario (el tipo texto original daba SIEMPRE error). Este el código:




Public Sub CopyToSharePoint()
    ' Copiado de dg_more
    ' http://social.msdn.microsoft.com/Forums/sharepoint/en-US/1b26aca0-4579-4cc3-bdaa-ea945452db01/upload-files-to-sharepoint-site-via-vba?forum=sharepointdevelopmentlegacy

    ' Necesita Microsoft Scripting Runtime y Microsoft HTML Object Library    
    
    Dim xmlhttp
    Dim sharepointUrl
    Dim sharepointFileName
    Dim tsIn
    Dim sBody
    Dim LlFileLength        As Long
    Dim Lvarbin()           As Byte
    Dim LobjXML             As Object
    Dim LstrFileName        As String
    Dim LvarBinData        As Variant
    Dim PstrFullfileName    As String
    Dim PstrTargetURL       As String
    Dim fso                 As Object
    
    On Error GoTo ErrorHandler

    Set fso = CreateObject("Scripting.FileSystemObject")
    
    Dim fldr               As Folder
    Dim f                   As File
    Dim pw                  As String
    Dim UserName            As String
    Dim RetVal
    Dim I                   As Integer
    Dim totFiles            As Integer
    Dim Start               As Date
    Dim Finish              As Date
    
    UserName = "[el usuario]"
    pw = "[la contraseña]"
    
    sharepointUrl = "https://sitio.sharepoint.com/sites/Carpeta/Subcarpeta/"
    Set LobjXML = CreateObject("Microsoft.XMLHTTP")
    
    Set fldr = fso.GetFolder(CurrentProject.Path & "\[Carpeta de ficheros a subir]\")
    totFiles = fldr.Files.Count
    
    For Each f In fldr.Files
    
        sharepointFileName = sharepointUrl & f.Name
    
            
        PstrFullfileName = CurrentProject.Path & "\[Carpeta de ficheros a subir]\" & f.Name
        LlFileLength = FileLen(PstrFullfileName) - 1
       
        ' Read the file into a byte array.
        ReDim Lvarbin(LlFileLength)
        Open PstrFullfileName For Binary As #1
        Get #1, , Lvarbin
        Close #1
       
        ' Convert to variant to PUT.
        LvarBinData = Lvarbin
        PstrTargetURL = sharepointUrl & f.Name
       
       
        ' Put the data to the server, false means synchronous.
        LobjXML.Open "PUT", PstrTargetURL, False, UserName, pw
       
        ' Send the file in.
        LobjXML.Send LvarBinData
    
       
        I = I + 1
        RetVal = SysCmd(acSysCmdSetStatus, "Fichero " & I & " de " & totFiles & " subido...")
    
    Next f
    
    RetVal = SysCmd(acSysCmdClearStatus)
    Set LobjXML = Nothing
    Set fso = Nothing
    

ExitProcedure:
    On Error GoTo 0
    Exit Sub

ErrorHandler:
    MsgBox Err.Number & "-" & Err.Descriptiopn
    Resume ExitProcedure   
End Sub


Pues ese código funcionó hasta finales de julio. A la vuelta de vacaciones no he conseguido que funcione (tengo un sitio SharePoint propio y otro del cliente: en ninguno de los 2 funciona)

¿Alguna alma caritativa que disponga de SharePoint y ganas puede probar este código?

Muchas gracias.


Editado por xavi - 12/Septiembre/2014 a las 11:57
Xavi, un minyó de Terrassa

Mi web
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable