【问题标题】:Access Denied when checking file exists on sharepoint from vba从 vba 检查共享点上是否存在文件时访问被拒绝
【发布时间】:2016-02-02 14:34:20
【问题描述】:

我正在尝试通过 Excel 2010 VBA 检查 SharePoint 2010 中是否存在文件。我从another question 获取了这段代码。

Function checkFile(URLStr As String) As Boolean
Dim oHttpRequest As Object
Set oHttpRequest = New MSXML2.XMLHTTP60
With oHttpRequest
    .Open "GET", URLStr, False
    .setRequestHeader "Cache-Control", "no-cache"
    .setRequestHeader "Pragma", "no-cache"
    .setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
    .send
End With
If oHttpRequest.Status = 200 Then
    checkFile = True
Else
    checkFile = False
End If
End Function

当我这样做时,vba 抛出一个错误:'Access Denied Error for this object'

在线上失败.send

我发现错误代码是-2147024891

我检查了 Sharepoint 权限,应该没问题。

【问题讨论】:

    标签: vba excel sharepoint sharepoint-2010


    【解决方案1】:

    我的 URL 使用 http,但仅使用 https 授予对共享点的访问权限(至少在某个版本中)。更改 URL 解决了访问问题。

    【讨论】:

      【解决方案2】:
      Function checkFile( URLStr As String) As Boolean
      Dim oHttpRequest As Object
      Dim GetResult As  Integer
      Set oHttpRequest = New MSXML2.XMLHTTP60
      With oHttpRequest
          .Open "GET", URLStr, False
          .setRequestHeader "Cache-Control", "no-cache"
          .setRequestHeader "Pragma", "no-cache"
          .setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
      
      End With
      On Error GoTo HttpError
          oHttpRequest.send '!!!!!!here code stops!!!!!!!
      HttpError:
           GetResult    = 00
      
      GetResult = oHttpRequest.Status
      If  GetResult  = 200 Then
          checkFile = True
      Else
          checkFile = False
      End If
      End Function
      

      【讨论】:

        【解决方案3】:

        您需要定义认证用户信息。

        oHttp.SetRequestHeader "Authorization", "Basic " + _
                Base64Encode(authUser + ":" + authPass)
        

        这里有一些信息

        http://ramblings.mcpher.com/Home/excelquirks/snippets/basicauth

        How to pass authentication credentials in VBA

        【讨论】:

        • 我被安排进了我的共享房间,所以这应该不会引起我猜的问题
        猜你喜欢
        • 1970-01-01
        • 2012-11-09
        • 2021-04-30
        • 1970-01-01
        • 1970-01-01
        • 2023-02-10
        • 1970-01-01
        • 2017-11-10
        • 2012-11-07
        相关资源
        最近更新 更多