2015-07-06 4 views
1

Я искал высоко и низко на stackexchange и других сайтах (vbaexpress, MSDN и т. Д.). Обширный диалог вокруг этого, я пробовал большинство примеров, и до сих пор ничего не работает.document.customdocumentproperties не сохраняется

Сценарий:

  • Пользователь нажимает 'Создать отчет' кнопку в Access.
  • vba создает новый экземпляр документа Word из шаблона по умолчанию, связанного с библиотекой SharePoint.
  • Шаблон Word отформатирован с таблицами и закладок для приема данных, а уже содержит несколько настраиваемых полей свойств (NULL в это время)
  • vba извлекает данные из таблиц (таблицы связаны с списками SharePoint) и заполняет все Memo.
  • код затем сохраняет новый документ в библиотеку SP (такой же один с шаблоном) и проверяет его.

Все это прекрасно работает.

УВА также включает в себя код для хранения как встроенные и пользовательские свойства: пример кода:

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 библиотека доступа и VB для расширения. Есть ли какая-то другая ссылка, которая мне нужна?

Заранее спасибо к переполнению сообществу за любую помощь ...

ответ

1

И Ответ ....

Там совершенно другой метод для этого: ContentTypeProperties!

«customdocumentproperties» - это свойства документа Word. Так как это была попытка поставить пользовательский контент в библиотеку SharePoint, требуется другой метод:

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

отправляет это так мы надеюсь, другими здесь не придется переделывать это же исследование.