document.customdocumentproperties未保存

时间:2015-07-06 13:50:14

标签: vba sharepoint ms-access-2010 automatic-properties

我在stackexchange和其他网站(vbaexpress,MSDN等)上搜索了高低。围绕这个有广泛的对话,我已经尝试了大部分的例子,但仍然没有任何工作。

场景:

  • 用户点击'创建报告' Access中的按钮。
  • vba从与S​​harePoint库关联的默认模板创建Word文档的新实例。
  • Word模板使用表和书签格式化以接受数据,并且已经存储了许多自定义属性字段(此时为NULL)
  • vba从表中提取数据(表链接到SharePoint列表)并填充整个备忘录。
  • 然后代码将新文档保存到SP库(与模板相同)并将其签入。

所有这一切都很好。

vba还包含用于存储内置属性和自定义属性的代码: 代码示例:

Set objWord = CreateObject("Word.Application")  
Set objDoc = objWord.Documents.Add(tName)  
objWord.Visible = True

objDoc.BuiltinDocumentProperties("Title") = "2040"

With objDoc.CustomDocumentProperties  
      .Add name:="DocLevel", _  
          LinkToContent:=False, _  
          Type:=msoPropertyTypeString, _  
          Value:="Confidential"  
      .Add name:="UserDiscipline", _  
          LinkToContent:=False, _  
          Type:=msoPropertyTypeString, _  
          Value:="Broker"  
  End With  

objDoc.SaveAs (fPath)
objDoc.CheckIn

另外,假设属性已经是模板中的对象,我尝试了这个只是没有.Add的设置:

objDoc.CustomDocumentProperties name:="DocLevel", LinkToContent:=False, _  
            Type:=msoPropertyTypeString, Value:="Confidential"

一切正常 - 除外 - 不保存自定义文档属性。即使是已建成的也会被保存 - 但不是自定义的。

我有MS Office 14.0对象库,14.0 Access库和VB可扩展性。我还需要其他一些参考吗?

感谢Overflow社区提供任何帮助......

1 个答案:

答案 0 :(得分:1)

答案是......

有一种完全不同的方法:ContentTypeProperties!

'customdocumentproperties'是Word文档的属性。由于这是尝试向SharePoint库提供自定义内容,因此需要使用不同的方法:

doc.ContentTypeProperties("UserDiscipline").Value = "Broker"

发布这个希望其他人在这里不必重做同样的研究。