Это мой самый первый пост, и я не эксперт по программированию, как скоро станет ясно. Пожалуйста, будьте нежны.
Я создал программу (используя Visual Basic 2010 Express), которая, среди прочего, заполняла текстовое поле «Примечаниями»/«Тело» контакта, который я выбирал на основе значения «CustomerID» каждого контакта в Outlook.
Он отлично работает для «Контактов» по умолчанию и его подпапки «Контакты-подкатегория» в группе Outlook «Мои контакты», показанной здесь: введите здесь описание изображения, используя следующий код (код включает элементы календаря/назначения, я думаю, что смогу адаптировать синтаксическое решение для контактов, чтобы их можно было игнорировать, я надеюсь):
Public Class CustomOutlookInterface2
Private SQL As New DatabaseControl
Private ol As New Outlook.Application
Private olns As Outlook.NameSpace = ol.GetNamespace("MAPI")
Private olContactFolder As Outlook.MAPIFolder = olns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts).Folders("Contacts-SubCategory")
Private olCalendarFolder As Outlook.MAPIFolder = olns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar)
Private olContactItems As Outlook.Items = olContactFolder.Items
Private NewContact As Outlook.ContactItem
Private AppointmentItem As Outlook.AppointmentItem
Однако недавно я загрузил «iCloud для Windows», чтобы все было синхронизировано, и заметил, что он добавил новую группу в Outlook под названием «iCloud» и переместил записи контактов во вновь созданные «Контакты в iCloud» и «Подкатегорию контактов в iCloud» (показано на той же картинке выше). Я предпринял множество попыток адаптировать предыдущий рабочий код, чтобы направить его в папку iCloud. Самое близкое, что я подошёл...
Private ol As New Outlook.Application
Private olns As Outlook.NameSpace = ol.GetNamespace("MAPI")
Private olContactFolder As Outlook.MAPIFolder = olns.Folders.Item("iCloud")
Вышеупомянутое не вызывает ошибки. Но это также приводит к «строке не найдено», когда я использую следующее
Dim query As String = "[CustomerID]='" & CustID & "'"
NewContact = olContactItems.Find(query)
где «запрос» — это номер, который я присвоил контакту и сохранил в поле «Идентификатор клиента».
Основываясь на плоских пятнах на моем лбу от удара головой о стол, я думаю, что это сводится к синтаксису идентификации группы iCloud, затем папки «Контакты в iCloud», а затем подпапки «Контакты-Подкатегория в iCloud». В Windows путь эквивалентен «iCloud\Contacts в iCloud\Contacts-SubCategory в iCloud\
Я не могу сказать вам, насколько я был бы признателен за любую помощь. Мой стол угрожает вызвать полицию из-за всех ударов головой, которые я ему дал.