2016-09-23 3 views
0

Outlookでカスタムプロパティの取得連絡先をフィルタリングしようとしました。ユーザープロパティーコール "SyncValue"を保存しました。それは文字列値を持っています。そして、私はこれらの値をチェックして、contactitemにプロパティ値を持たせようとします。Outlook MAPIを使用したカスタムフィールドのフィルタリング

Outlook.ContactItem contactItem = null; 
string syncVal = (char)34 + "http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/SyncValue" + (char)34; 
Outlook.MAPIFolder contacts = Globals.objNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts); 
Outlook.Items contactItems = contacts.Items; 
string filter = "WHERE (" + syncVal + " = 'True')"; 
contactItem = contactItems.Find(filter) as Outlook.ContactItem; 
+0

問題は何ですか?プロパティのデータ型は?デフォルトでOOMは文字列を仮定しており、ブール値を持つ可能性が最も高いです。 –

+0

プロパティを文字列値 "True"または "False"として保存しました。問題はContactItemsを取得するときにエラーが発生する - 「条件が無効です」 –

答えて

2

フィルタ文字列の先頭には、@SQL=が必要です。 「WHERE」は使用しないでください。

string filter = "@SQL=" + syncVal + " = 'True')"; 
+0

@dimitry答えに感謝します。 –

+0

クエリは機能しましたか? –

+0

はい、それはそのカスタムプロパティを持っているContactitemを取得します –

関連する問題