2016-06-21 7 views
0

Я совершенно новый в VBA и кодировании в целом, Я хочу атташе a pdf (Print.pdf) в определенное поле (alias_3) в базе данных нот лотоса, но i я получаю ошибку 424.Excel VBA Ошибка времени выполнения '424' требуется объект

Любые предложения, что я делаю неправильно?

Sub aa() 
Dim alias_3 As String 
Set notesface = CreateObject("Notes.NotesSession") 


    Set makeup = Nothing 
Set makeup = notesface.GetDatabase("C2S2/ConsolidatedContracts", "p_dir\bpcmrtuat.nsf") 
Set docu = makeup.GetDocumentByID("00002BE6") 

Attachment1 = "C:\Users\Desktop\aloxa\Print.pdf" 
rtitem = docu.HasEmbedded 
For Each test2 In docu.GetItemValue("alias_3") 
    test = test2.HasEmbedded ----> here i am getting the error 





    Set EmbedObj1 = docu.alias_3.embedobject(1454, "attachment1", Attachment1, "") 
    Exit For 
Next test2 
Set EmbedObj1 = test.embedobject(1454, "", Attachment1, "") 
Set AttachME = test.CreateRichTextItem("attachment1") 
docu.GetItemValue ("alias_3") 
If Attachment1 <> "" Then 
Set AttachME = docu.CreateRichTextItem("Attachment1") 
Set EmbedObj1 = AttachME.embedobject(1454, "attachment1", Attachment, "") 
On Error GoTo 0 
End If 
ExitSub: 
End Sub 
+0

Я хочу поставить вложение, которое я ссылаюсь (Prind. pdf) на поле «alias_3» Форма будет открыта и сохранена мной. – ChristosV

ответ

0

Согласно Lotus Note documentation, GetItemValue() возвращается как строка, массив строкового или массив из двойников, ни один из них, имеющих HasEmbedded свойства.

+0

Любое предложение, как я могу это сделать? – ChristosV

0

Ваших кодов смесей получают значения из элемента с прикреплением вещи к другому элементу, и т.д.

Прежде всего: Есть ли у вас действительно есть richtextitem под названием «alias_3» в дизайне формы, который сделан документ из? Или имя элемента «Приложение1», как в вашей второй части кода? Или это почтовая база данных по умолчанию, тогда название элемента будет «Тело»?

Просто замените «alias_3» в следующем коде соответствующим именем элемента. Полный код можно свести к этим линиям (я заменил имена переменных, так что другой разработчик знает, что вы имеете в виду, используя «по умолчанию»):

Set ses = CreateObject("Notes.NotesSession") 
Set db = ses.GetDatabase("C2S2/ConsolidatedContracts", "p_dir\bpcmrtuat.nsf") 
Set doc = db.GetDocumentByID("00002BE6") '- This line is dangerous, because the noteid can change easily... 
strAttachmentPath = "C:\Users\Desktop\aloxa\Print.pdf" 
Set rtItem = doc.GetFirstItem("alias_3") 
If not rtItem.HasEmbedded() then 
    Call rtItem.embedobject(1454, "", strAttachmentPath , "") 
Else 
    '- what do you want to do, if there is already an embedded attachment? 
End if 
Call doc.Save(True, True, True) 
+0

Танк вам очень понравился, – ChristosV

+0

Танк вам очень понравился, может быть, alias_3 не является богатым текстом? как я могу это проверить? Кроме того, это не почта, а база данных с полями, в которые я прикрепляю pdf-файлы в строке ниже. Я получаю ошибку 438 'If Not rtItem.HasEmbedded() Then' – ChristosV

+0

Чтобы проверить, какой тип элемента, вы просто открываете базу данных в Лотос Designer и проверить его ... –

Смежные вопросы