2008-09-19 12 views
0

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

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

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

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

Любые решения? *

ответ

1

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

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) 

Однако Получатели (К) только для чтения, даже, я считаю, с Outlook, Redemtion.

0

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

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

Redemption является заменой для CDO, и вы будете сразу же знакомы с этим, когда раньше вы делали кодирование CDO/Outlook VBA.