HOME
Home
Virus
Noticias
Downloads
Fórum
Livros de Outlook
Eventos
Software / Add-ins
Formação
Blog
Livro de visitas
Inquéritos
Exchange Server

OUTLOOK ARTICLES

Apresentação
Ricardo Silva [MVP]
Marcelo Thalenberg
Clube Hardware
Thomas Quester
Especialistas em Vírus
Artigos de Outlook Express
Microsoft Office

TÓPICOS
Principiantes
Intermédio
Avançado
Microsoft

PESQUISA
Pesquisa:
 
Procura no site

Mapa do site
Pesquisa na Web


CONTACTOS
Contacte-nos
Histórico do site
Site na Imprensa
Questões frequentes
Newsletters

Subscrever Newsletter:
 
Subscrever

Ligar o Outlook ou Exchange a base de dados
 

É do conhecimento de todos, a possibilidade de ligação do Outlook e do Exchange a uma base de dados, como por exemplo, através do Access. No entanto, apesar de haver algum conhecimento nesta área, a reprodução dessa informação é escassa.

Nesta página ser-lhe-á explicado detalhadamente como fazê-lo.

 

Os utilizadores que já trabalham com os formulários de Outlook, poderão deparar-se com alguns problemas, nomeadamente na impressão, mas também no acompanhamento do desenvolvimento do trabalho com os formulários.

 

Isto significa que:

 

Se o programador criar uma aplicação com o Outlook de modo a que, toda a informação seja armazenada numa pasta pública de um Exchange Server, são poucas as formas simples de trabalhar os resultados.

 

Se tentar ligar o Access ao Outlook desta simples forma:

  1. No Access, clique em New Table para adicionar uma nova tabela.

  2. Na caixa de diálogo New Table, seleccione Link Table, e depois OK.

  3. Na caixa de diálogo Link, nas Files of type, seleccione Outlook() ou Exchange().

  4. Se for requisitado um perfiç do Outlook, indique qual vai querer utilizar.

  5. No Link Exchange/Outlook Wizard, seleccione a pasta que vai querer trabalhar, depois faça clique em Next.

  6. Dê um nome á tabela ligada e finalmente clique em Finish.

Vai consegui-lo, mas os campos criados pelo programador não serão reconhecidos.

Para que esses mesmos campos sejam reconhecidos  siga os seguintes passos:

 

(Eu criei esta base de dados com base na aplicação da Microsoft, Help Desk - http://office.microsoft.com/downloads/9798/helpdesk.aspx)

 

Crie uma base de dados com o nome “importoutlook.mdb”, em seguida na base de dados crie uma tabela com o nome “tblHdrs”, com os seguintes campos:

 

Remetente

Assunto

Recebido

Fechado

Software

Os

Tecnico

Tipoprob

Historial

 

 

Após a criação da tabela, crie de seguida um módulo e adicione o seguinte código:

 

Option Compare Database

 

Dim ol As New Outlook.Application

Dim PublicFolder As MAPIFolder

Dim OldTaskItems As Items

Dim itm As Outlook.TaskItem

Dim AppPath As String

 

Sub ImportItems()

Set PublicFolder = ol.GetNamespace("MAPI").Folders("Public Folders").Folders("All Public Folders").Folders("PT").Folders("Help Desk Application").Folders("Tarefas Antigas")

Set OldTaskItems = PublicFolder.Items.Restrict("[Subject] > ''")

Dim nmritens As Integer

nmritens = OldTaskItems.Count

'

'   If nmritens = 0 Then

'      MsgBox "Não há itens"

'   Else

'      MsgBox " Existem " & nmritens & " itens para importar"

'   End If

 

For Each itm In OldTaskItems

   

   If nmritens > 1 Then

        Set appAccess = CreateObject("Access.Application")

        strAccessPath = appAccess.SysCmd(9)

        strDBName = "c:/documents and Settings/ricardosilva/my Documents/mdb/" & "importoutlook.mdb" 'strAccessPath & "importoutlook.mdb"

 

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

        Set wks = dbe.Workspaces(0)

        Set dbs = wks.OpenDatabase(strDBName)

           

        Set rst = dbs.OpenRecordset("tblHdrs")

       

        rst.AddNew

        rst.remetente = itm.UserProperties("Behalf")

        rst.assunto = itm.UserProperties("Subject")

        rst.recebido = itm.UserProperties("Received Date")

        rst.fechado = itm.UserProperties("Close Date")

        rst.software = itm.UserProperties("Computer Software")

        rst.os = itm.UserProperties("Computer OS")

        rst.tecnico = itm.UserProperties("Technician Name")

        rst.tipoprob = itm.UserProperties("Problem Type")

        rst.historial = itm.UserProperties("History Text")

        rst.Update

        rst.Close

        dbs.Close

   End If

Next

 

End Sub

 

Tenha em conta o seguinte:

 

Na referência às Public Folders, altere para corresponder à sua.

No meu caso, eu tenho a Help Desk Application, por baixo de PTque por sua vez, está na estrutura das All Public Folders.

 

Na localização da base de dados, faça as alterações necessárias de forma a colocar o caminho para a sua.

A minha base de dados encontra-se em c:\documents and Settings\ricardosilva\my Documents\mdb\

 

Depois, é só correr o módulo e aguardar os resultados.

 

 

Dois pontos finais em relação a problemas que possam surgir:

 

Se os formulários não tiverem sido publicados, irá surgir a mensagem para fazer “enable ou disable macros”.  Terá  de  fazer clique em “enable macros” para funcionar correctamente.

 

Poderão surgir erros no módulo, de modo a que o código pare. Isto poderá dever-se ao facto dos campos da tabela de Access terem Field Size muito pequenos (normalmente o field size de um campo de texto é 50), os quais deverão ser aumentados, Após a alteração do tamanho dos campos, basta correr novamente o código para funcionar correctamente.

 
Copyright © 2004, rsoutlook.com. Todos os direitos reservados
CV | Parcerias | Publicidade no site

Livro

Já está à venda em várias livrarias do País

O meu segundo livro: "Domine a 110% o Outlook 2003"
da editora FCA. 

Tudo sobre o livro.

Leia o Press Release


(21-06-2004)

Dicas
Dicas de Outlook

Como desbloquear os anexos no Outlook

Configurar o Outlook e o Internet Explorer contra Vírus

Outras dicas...
Artigos + Visitados
Artigos considerados mais interessantes no site ou blog

Formulários de Outlook

Outlook VBA

Um programa está a tentar aceder...

O que há de novo no Outlook 2003 SP1

Enviar imagens como no Outlook Express