Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Outlook Перемещение письма между общими папками / 9 сообщений из 9, страница 1 из 1
01.09.2006, 18:28
    #33959612
mirya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook Перемещение письма между общими папками
Пример кода. Пытаюсь переместить письмо из одной общей папки в другую.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub Test()
    Dim myApp As Outlook.Application
    Dim NameS As NameSpace
    Dim Folder As MAPIFolder
    
    Set myApp = CreateObject("Outlook.Application")
    Set NameS = myApp.GetNamespace("MAPI")
    Set Folder = NameS.GetDefaultFolder(olPublicFoldersAllPublicFolders)
    
    Set Letters = Folder.Folders.Item("Папка1").Folders.Item("Папка3").Folders.Item("Папка3").Items
    CountLetter = Letters.Count
    
    For i =  1  To CountLetter
        Set Letter = Letters.Item(i)
        
        Letter.Move (Folder.Folders.Item("Папка1").Folders.Item("Папка2").Folders.Item("Папка3").Folders.Item("Папка4"))
    Next
    
    MsgBox (CountLetter)
End Sub

Выдает ошибку: "Method 'Move' of object 'MailItem' failed"
...
Рейтинг: 0 / 0
03.09.2006, 23:35
    #33960954
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook Перемещение письма между общими папками
Во-первых:
Dim Letters as Outlook.MailItem, т.к. по умолчанию возвращется объект класса Item

(и вообще, объявляйте переменные - меньше ошибок будет, например Counter)

А во-вторых - чем каждый раз в цикле ссылаться на суб-суб-субдиректорий, лучше один раз ДО цикла создать переменную, которая ссылается не этот субдиректорий.
...
Рейтинг: 0 / 0
03.09.2006, 23:53
    #33960966
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook Перемещение письма между общими папками
и еще удостоверьтесь, что объекты перемещаемые между папками, могут быть туда перемещены (например, задачу не удастся переместить во входящие без дополнительной обработки)
...
Рейтинг: 0 / 0
04.09.2006, 11:11
    #33961464
mirya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook Перемещение письма между общими папками
nibblesВо-первых:
Dim Letters as Outlook.MailItem, т.к. по умолчанию возвращется объект класса Item

Объявил
Letter as Outlook.MailItem
при присвоении Set Letter = Letters.Item(i) - выдает ошибку "несоответствие типов"
В отладчике смотрю, что Letters.Item(i) имеет тип "Vriant.Object.MailtItem".
Думаю в этом проблемма.
Как мне получить из этого объект Outlook.MailItem?
...
Рейтинг: 0 / 0
04.09.2006, 11:38
    #33961583
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook Перемещение письма между общими папками
та-а-ак...
во-первых, какая версия Outlook (в MSO'2000, например, нет такой константы - olPublicFoldersAllPublicFolders)?
во-вторых, в каком приложении находится процедура Test?
в-третьих, попытайся следующим образом сделать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub Test()
Dim myApp           As Outlook.Application
Dim NameS           As Outlook.NameSpace
Dim myItem          As Outlook.MailItem
Dim myFolder        As Outlook.MAPIFolder
Dim myFolderTarget  As Outlook.MAPIFolder
    
    Set myApp = CreateObject("Outlook.Application")
    Set NameS = myApp.GetNamespace("MAPI")
    
    ' Папка-источник
    Set myFolder = NameS.GetDefaultFolder(olPublicFoldersAllPublicFolders) _ 
            .Folders("Папка1").Folders("Папка3").Folders("Папка3")
    ' Папка-назначение
    Set myFolderTarget = myFolderTarget.Folders("Папка4")
    
    ' Перенос из одной папки в другую
    For Each myItem In myFolder.Items
        
        myItem.Move myFolderTarget
    
    Next
    
End Sub
...
Рейтинг: 0 / 0
04.09.2006, 12:36
    #33961786
mirya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook Перемещение письма между общими папками
nibblesта-а-ак...
во-первых, какая версия Outlook (в MSO'2000, например, нет такой константы - olPublicFoldersAllPublicFolders)?
во-вторых, в каком приложении находится процедура Test?
в-третьих, попытайся следующим образом сделать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub Test()
Dim myApp           As Outlook.Application
Dim NameS           As Outlook.NameSpace
Dim myItem          As Outlook.MailItem
Dim myFolder        As Outlook.MAPIFolder
Dim myFolderTarget  As Outlook.MAPIFolder
    
    Set myApp = CreateObject("Outlook.Application")
    Set NameS = myApp.GetNamespace("MAPI")
    
    ' Папка-источник
    Set myFolder = NameS.GetDefaultFolder(olPublicFoldersAllPublicFolders) _ 
            .Folders("Папка1").Folders("Папка3").Folders("Папка3")
    ' Папка-назначение
    Set myFolderTarget = myFolderTarget.Folders("Папка4")
    
    ' Перенос из одной папки в другую
    For Each myItem In myFolder.Items
        
        myItem.Move myFolderTarget
    
    Next
    
End Sub


Версия: MSO 2003
Процедура находится в приложении Outlook
Ругается 'type mismatch' на строку "For Each myItem In myFolder.Items"
Тип myItem - 'MailItem'
Тип myFolder.Items - 'Object.Items'
...
Рейтинг: 0 / 0
04.09.2006, 12:54
    #33961856
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook Перемещение письма между общими папками
а так?
Dim myItem As Object
...
Рейтинг: 0 / 0
04.09.2006, 13:32
    #33961999
mirya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook Перемещение письма между общими папками
nibblesа так?
Dim myItem As Object

Пишет ошибку "Method 'Move' of object 'MailItem' failed"
...
Рейтинг: 0 / 0
04.09.2006, 15:24
    #33962556
nibbles
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Outlook Перемещение письма между общими папками
mirya nibblesа так?
Dim myItem As Object

Пишет ошибку "Method 'Move' of object 'MailItem' failed"

а вручную этот объект переносится из папки в папку?
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Outlook Перемещение письма между общими папками / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]