Страницы: 1
RSS
Не подсчитывает количество писем во "Входящие" личной учётной записи
 
Доброго здоровья, ребятки ;)
Подскажите, пожалуйста:
Код
Sub look()
Dim objOutlApp As Object, oNSpace As Object, oIncoming As Object
Dim oIncMails As Object, oMail As Object
Dim IsNotAppRun As Boolean
Application.ScreenUpdating = False
On Error Resume Next
   Set objOutlApp = GetObject(, "outlook.Application")
   If objOutlApp Is Nothing Then
      Set objOutlApp = CreateObject("outlook.Application")
      IsNotAppRun = True
   End If
Set oNSpace = objOutlApp.GetNamespace("MAPI")
Set oIncoming = oNSpace.GetDefaultFolder(6)
Set oIncMails = oIncoming.Items
x = 0
 For Each oMail In oIncMails
  x = x + 1
 Next
Application.ScreenUpdating = True
MsgBox x
End Sub
Выбивает 0, хотя папка "входящие" заполнена письмами! Подключаюсь к "отправленные" и выдаёт ответ 8, стоит отметить, что папка содержит больше 8 отправленных.
В итоге увидел, что эти 8 писем содержит не моя учётная запись "...маил.ру", а учётная запись "Файл данных Outlook"!
Вопрос: как считать письма в своей учётке?
 
Странно почему не MsgBox oIncMails.Count,

Что значит своя учетка? Смотрит по умолчанию в учетку по умолчанию. Можно переключаться но знать бы на что. Помню и я на форуме где-то делал.
По вопросам из тем форума, личку не читаю.
 
БМВ, по условию было .UnRead и .ReceivedTime, но вместо них я уже просто поставил счётчик
учётка только моя стоит и ещё файл данных (по умолчанию он и стоит, но выбрать свой - нельзя)
Изменено: Azakia - 27.02.2020 22:30:17
 
странно,

тут Дмитрий давал советы, как по нескольким аккаунтам пройти
По вопросам из тем форума, личку не читаю.
 
БМВ, казалось бы, просто поменять файл данных по умолчанию... Быть может это доступно в более новых версиях офиса?
 
Это доступно везде. Ну отключите файл и подключите его заново.
По вопросам из тем форума, личку не читаю.
 
БМВ, к сожалению, не помогло...
 
А учетка то точно по умолчанию стоит та что нужно? это на закладке Эолектронная почта.
По вопросам из тем форума, личку не читаю.
 
БМВ, да, стоит, как видно на скрине, но файл данных он использует как и ранее - файл данных аутлук...
он, так или иначе, использует его для исходящих... но макрос не пытается считать письма в моей почте, как бы я не "ковырял" аутлук!
Изменено: Azakia - 28.02.2020 15:09:05
 
БМВ, хотя, правильно сказать, он считает, но из папки "входящие" файла данных аутлук...
как-то так...
 
возможно ли настроить oNSpace.GetDefaultFolder(6) под определённую почту?
 
в  #4  я ссылку давал.
По вопросам из тем форума, личку не читаю.
 
попробуйте файл отсюда: Сохранить вложения из Outlook в указанную папку
если определит все Ваши учетки - то смотрите в код и используйте нужные куски.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Дмитрий, не думаю что поможет. Учетка там совсем не фигурирует а по указанной ранее ссылке, как раз разные учетки.

Azakia, а если отключить файл, перезапустить outlook попробовать скрипт и потом подключить файл?
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Учетка там совсем не фигурирует
почему? Там есть ниже ссылка на файл с формой, которая при запуске считывает именно учетки и уже потом можно выбрать учетку, папки которой просматривать.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Упс, я код то прочел а на форму не посмотрел.

Дим, ну там тоже что и по ссылке №4 так там же твой код :-) .

Протестил форму. Есть проблемы, но это связано с Exchange и подключением к другим аккаунтам через права доступа
Изменено: БМВ - 28.02.2020 16:44:22
По вопросам из тем форума, личку не читаю.
 
Ну да, на Exchange код не рассчитан изначально. Там свои заморочки. Ну и сама форма сделана больше все же для примера, многое можно улучшить, включая отбор писем.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Я взгляну при случае, что там за закономерности. С первичным то он справляется нормально, там все стандартно.
По вопросам из тем форума, личку не читаю.
 
Дмитрий(The_Prist) Щербаков, учётки определяет, но не видит ни одной папки, соответственно, и вложений...
 
Цитата
Azakia написал:
не видит ни одной папки
стоит присмотреться к тому, под каким номером у Вас индекс входящие(GetDefaultFolder(6)). В статье описан метод как понять какой индекс у какой папки(то может быть и 1 и 2 и какой угодно другой). Точнее там приведен готовые код для этого. Никто кроме Вас точно не сможет этого понять, т.к. на каждом ПК это может быть индивидуально.
Изменено: Дмитрий(The_Prist) Щербаков - 02.03.2020 09:38:47
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, объясните пожалуйста, ни у Вас на скринах, ни у БМВ, я не вижу фала данных Outlook, как так-то? У вас на скрине (по ссылке) я вижу только Ваши личные две учётные записи...
у меня вот как-то так:
 
Это написанный код - значит учетная запись у Вас так отображается. И Ваш скрин выше, сделанный из управления учетных записей Outlook, это подтверждает. В чем вопрос-то, собственно? У нас так не отображается, потому что у нас с БМВ учетные записи в Outlook названы по другому. Это все делается в параметрах самого Outlook(имя учетной записи). Измените там - изменится здесь.
Изменено: Дмитрий(The_Prist) Щербаков - 02.03.2020 10:42:03
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,
Цитата
Дмитрий(The_Prist) Щербаков написал:
Точнее там приведен готовые код для этого.
нашел, использовал код:
выводит индексы и названия папок только с того же фала данных аутлук, но не с моей учётной записи
добавил .Folders(1), где (1) - это моя учётка, а (2) - тот самый фал данных аутлук
Код
Set oNSpace = objOutlApp.GetNamespace("MAPI").Folders(1)
MsgBox oNSpace.Name
    For i = 1 To 50
        MsgBox i & " = " & oNSpace.GetDefaultFolder(i)
    Next

не выводит названия папок моей учётки! или я что-то неправильно прописываю?

Изменено: Azakia - 02.03.2020 10:49:11
 
Цитата
Azakia написал:
или я что-то неправильно прописываю?
ну надо для начала подставить СВОЮ учетку и убедиться, что это она. Вам надо взять цикл, который идет по учеткам, определить там нужную и для неё подставить как этот цикл по индексам. Или в один цикл впихнуть другой - получите индексы папок для всех учеток.
А если и это не помогает - то только наугад пробовать и то и другое и третье, т.к. я удаленно такую проблему явно не решу.
Изменено: Дмитрий(The_Prist) Щербаков - 02.03.2020 11:42:45
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Для чего готовая форма-то дана? Там есть и код подключения к учеткам, и вывод папок.
не выводит ни одной папки ни одной из учёток
 
Попробуйте так:
Код
Sub GetFoldersNames()
    Dim x, xx, lcnt&
    For x = 1 To oNSpace.Folders.Count
        lcnt = 0
        For Each xx In oNSpace.Folders(x).Folders
            lcnt = lcnt + 1
            Debug.Print oNSpace.Folders(x).Name & ":  " & xx.Name & ":  " & lcnt
        Next
    Next
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, теперь увидел:
заменил
Код
Set oIncoming = oNSpace.GetDefaultFolder(6)

на
Код
Set oIncoming = oNSpace.Folders(1).Folders(1)

где, первая .Folders(1) - моя учётка, а вторая - папка "входящие" моей учётки
через unread увидел свои 14 непрочитанных

спасибо!
Изменено: Azakia - 02.03.2020 13:25:31
Страницы: 1
Наверх