如何在 Access 中克隆 SharePoint 列表附件字段

Posted

技术标签:

【中文标题】如何在 Access 中克隆 SharePoint 列表附件字段【英文标题】:How to clone the SharePoint list attachment field in Access 【发布时间】:2015-12-01 06:20:39 【问题描述】:

如何在 Access 2013 中克隆附件字段?它给了我一个“无效参数”错误,带有 FileData 字段。

FileData 在调试器中显示为 Variant/Byte 类型。而且看起来像一个字节数组。

我正在使用标准的 SharePoint 列表样式附件字段。

我看到的示例 Copy An Attachment Field 建议以下代码可以工作,但我收到“无效参数”的错误

Public Sub copyAttachment(recordsetMoveAttachmentFrom As DAO.Recordset2, recordsetMoveAttachmentTo As DAO.Recordset2)

      Do While recordsetMoveAttachmentFrom.EOF = False
        recordsetMoveAttachmentTo.AddNew
        recordsetMoveAttachmentTo!FileFlags = recordsetMoveAttachmentFrom!FileFlags
        recordsetMoveAttachmentTo!FileName = recordsetMoveAttachmentFrom!FileName
        recordsetMoveAttachmentTo!FileTimeStamp = recordsetMoveAttachmentFrom!FileTimeStamp
        recordsetMoveAttachmentTo!FileType = recordsetMoveAttachmentFrom!FileType
        recordsetMoveAttachmentTo!FileURL = recordsetMoveAttachmentFrom!FileURL
        recordsetMoveAttachmentTo!FileData = recordsetMoveAttachmentFrom!FileData            recordsetMoveAttachmentTo.Update
        recordsetMoveAttachmentFrom.MoveNext
      Loop

      Set recordsetMoveAttachmentFrom = Nothing 'Clear the Record set
      Set recordsetMoveAttachmentTo = Nothing 'Clear the Record set

End Sub

【问题讨论】:

【参考方案1】:

这行得通:

.Update父记录。

使用以下方法复制 FileData 字段:

  lngOffset  = 0
  conChunkSize = fldSource.FieldSize
  chunk = fldSource.GetChunk(lngOffset, conChunkSize)
  fldDestination.AppendChunk chunk

在保存父记录之前,无法保存附件记录。还要复制 fileData 字段,使用 GetChunk 和 AppendChunk

警告 - AppendChunk 仅适用于第一个追加。之后所有的追加都失败了。

虽然 MS 提供了以下示例(请参阅 https://msdn.microsoft.com/en-us/library/bb220958(v=office.12).aspx),但 AppendChunk 看起来无法与 Access 2013 一起正常工作

   ' Set size of chunk in bytes.
   Const conChunkSize = 5& * 1024 * 1024

   Dim lngOffset As Long
   Dim lngTotalSize As Long
   Dim chunk As Variant

   ' Copy the photo from one Recordset to the other in 32K
   ' chunks until the entire field is copied.
   lngTotalSize = fldSource.FieldSize
   Do While lngOffset < lngTotalSize
      chunk = fldSource.GetChunk(lngOffset, conChunkSize)
      fldDestination.AppendChunk chunk
      lngOffset = lngOffset + conChunkSize
   Loop

【讨论】:

以上是关于如何在 Access 中克隆 SharePoint 列表附件字段的主要内容,如果未能解决你的问题,请参考以下文章

如何将Excel Web Access Web部件添加到我的sharepoint库中?

如何在 TFS 2017 中从多个来源克隆代码?

ACCESS 创建菜单下的sharepoint列表是啥作用?如何使用?

如何在 Sharepoint Online 上托管的 Access 自定义 Web 应用程序上编辑 CSS?

Access 将 HTML div 放入链接的 SharePoint 表中

Access 中需要存储在 Sharepoint 上的电子表格