Макрос RSS – лента à MS Office Outlook à Access

Пример макроса чтения сообщений RSS – ленты и запись в БД Access . Макрос написан на Visual Basic for Application под MS Office Outlook .

 

>>>>>>>>>>>>>>>>>>>>>>>> 

Public rst As Variant

 

Sub GetRSS()

Dim aOl As Outlook.Application

Dim oNS As Outlook.NameSpace

Dim oFlCn As MAPIFolder

Dim iM As MailItem

Dim cCn As Items

Dim iCn As ContactItem

Dim LT As String

Dim Acc As Account

Dim ret_ID As Integer

 

strDBName = "g:\DT\MacroDB.mdb" ' путь к базе

Set dbe = CreateObject("DAO.DBEngine.36")

Set wks = dbe.Workspaces(0)

Set dbs = wks.opendatabase(strDBName)

Set rst = dbs.OpenRecordset("News") ‘ открываем таблицу News в базе

 

 

Set aOl = New Outlook.Application

Set oNS = aOl.GetNamespace("MAPI")

Set oFlCn = aOl.GetNamespace("MAPI").Folders("Почтовый ящик - Иван И. Иванович").Folders("RSS-каналы").Folders("BFM.RU - Макроэкономика") ‘ указываем из какой подключенной ленты вытаскивать сообщения

Set cCn = oFlCn.Items

ii = cCn.GetFirst

 

 

For Each ii In cCn ‘ цикл по сообщениям

   If ii.UnRead = True Then ‘если сообщение не прочтенное

      rst.AddNew

      rst.News_text = Trim(ii.Subject)

      rst.News_text2 = Left(CStr(ii.Body), 252)

      ret_ID = GetCountry(Trim(ii.Subject)) ' находим страну

      If ret_ID <> 0 Then

        rst.Country = ret_ID

      End If

      rst.Data = ii.ReceivedTime

      rst.Time = ii.ReceivedTime

      rst.Update

      ii.UnRead = False

   End If

Next

 

rst.Close

dbs.Close

End Sub

 

Function GetCountry(str As String) As Integer

    Dim R, L, Z As String ' R-правая часть L-левая часть Z-запрос

    num = InStr(str, " ")

    R = str

    While num > 0

        L = Trim(Left(R, num))

        R = Trim(Right(R, Len(R) - num))

        ' делаем Select к БД по стране или персоналии

        If Len(L) > 2 Then

            Z = "SELECT ID FROM Countries WHERE Country_name LIKE '" + Left(L, Len(L) - 1) + "*'" ' по стране

            Set r2 = dbs.OpenRecordset(Z)

            If Not r2.EOF And Not r2.BOF Then

                r2.MoveFirst

                GetCountry = r2.Fields("ID")

                Exit Function

            End If

            Z = "SELECT ID FROM Countries WHERE Persons LIKE '*" + Left(L, Len(L) - 1) + "*'" ' по персоналиям

            Set r2 = dbs.OpenRecordset(Z)

            If Not r2.EOF And Not r2.BOF Then

                r2.MoveFirst

                GetCountry = r2.Fields("ID")

                Exit Function

            End If

        End If

        num = InStr(R, " ")

    Wend

   

    GetCountry = 0 ' Bad return

End Function

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 


Конструктор тестов из Экселя в Ворд (на VBA)
Макрос VBA из Excel в Access
Макрос VBA из RSS-ленты в Access
Макрос VBA из текстового файла в Access
Примеры макросов работы с Visio из под Access
Пример макроса для работы в Power Point
Главная (Апшеронск)



Рейтинг@Mail.ru

 
 
Разделы сайта:
Апшеронск Спорт VBA Форекс Сочи-2014 Нейросети Студентам
Связь с Администратором сайта, E-mail: apsheronka@mail.ru
Апшеронск, Краснодарский край

Размещение рекламы на сайте
Карта сайта

При перепечатке материалов сайта http://apsheronsk.bozo.ru - обязательная активная гиперссылка на сайт!

Вышли в отпуск: лечебные туры. Групповые туры.
`