Как переместить почту из одного связанного почтового ящика Exchange в другой в MS Access - PullRequest
0 голосов
/ 19 сентября 2008

У меня есть почтовый ящик Exchange, связанный как таблица в приложении MS Access. Это в основном используется для чтения, но я также хотел бы иметь возможность «перемещать» сообщения в другую папку.

К сожалению, это не так просто, как запись во второй связанный почтовый ящик, потому что, очевидно, я не могу редактировать некоторые поля. Некоторые критические поля, такие как поле To: недоступны, так как я получаю следующую ошибку

«Поле« Кому »основано на выражении и не может быть отредактировано».

Использование CreateObject ("Outlook.Application") вместо этого здесь не вариант, потому что, насколько я знаю, это дает диалог безопасности при вызове из Access.

Какие-нибудь решения? *

Ответы [ 2 ]

1 голос
/ 19 сентября 2008

Это две проблемы? Почту можно переместить с помощью метода Move. Вот фрагмент кода:

 Set oApp = CreateObject("Outlook.Application")

Set oNS = oApp.GetNamespace("MAPI")

Set oMailItems = oNS.GetDefaultFolder(olFolderInbox)
Set itm = oMailItems.Items(6)
itm.Move oNS.GetDefaultFolder(olFolderDeletedItems)

Однако Recipients (To) доступен только для чтения, даже, я думаю, с погашением в Outlook.

0 голосов
/ 07 октября 2008

Я не думаю, что Access является подходящим инструментом для работы. Вам не удастся использовать объект Outlook.Application или оболочку MAPI, такую ​​как CDO. CDO будет более элегантным и производительным способом, но он должен быть явно установлен на клиенте через программу установки Office.

Если вы хотите избежать диалога безопасности скрипта (и некоторых возможностей CDO в целом), вам следует попробовать Погашение Outlook .

Погашение - это замена CDO, и вы сразу узнаете его, когда делали кодирование CDO / Outlook VBA ранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...