[OL 2003] Consulter/ajouter dans Base Access depuis formulaire Outlook

Consulter/ajouter dans Base Access depuis formulaire Outlook [OL 2003] - VB/VBA/VBS - Programmation

Marsh Posté le 31-03-2011 à 17:04:09    

Bonjour,
 
J'aimerais récupérer les infos d'un mail quand je suis sous Outlook.
Je me positionne manuellement sur le mail, et je lance la macro suivante :

Code :
  1. Dim olApp As Outlook.Application
  2. Dim olMail As Outlook.MailItem
  3. Dim mapDossier As Outlook.MAPIFolder
  4. Dim strResultat As String
  5. Set olApp = Outlook.Application
  6. Set mapDossier = olApp.GetNamespace("MAPI" ).GetDefaultFolder(olFolderInbox)
  7. MsgBox olMail.Body


Je veux ainsi récupérer le titre du mail, le corps, et les traiter afin d'enrichir une base Access.
Je voudrais faire ensuite un formulaire présaisi avant validation, m'enfin on verra ca plus tard... [:tinostar]
 
Le msg d'erreur est le suivant :

Code :
  1. Variable objet ou variable bloc With non défini


sur la ligne du msgbox
 
Thx si vous avez des pistes. :jap:


Message édité par depardieu le 08-04-2011 à 10:39:58
Reply

Marsh Posté le 31-03-2011 à 17:04:09   

Reply

Marsh Posté le 31-03-2011 à 19:27:23    

Reply

Marsh Posté le 01-04-2011 à 12:01:10    

Pour ma part je récupere tous les mails qui sont dans un dossier specifique.
Si le dossier n'existe pas a l'origine access le créé.
 
Je prends donc mes mails a "exporter" sous access, je les mets dans le dit dossier.
Ensuite je boucle sur tous les mais du dossier et je fais correspondre les champs Outlook à ceux de mes differentes tables.
 
Si ca t'interresse... ;)


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 08-04-2011 à 10:21:29    

Thx pour les réponses, oublié de venir checker ici... :/
 
J'ai résolu mon problème pour récupérer les infos du mail, si ca interesse du monde :
 

Code :
  1. .
  2.     Dim olApp As Outlook.Application
  3.     Dim olExp As Outlook.Explorer
  4.     Dim olSel As Outlook.Selection
  5.     Dim myitem As Object
  6.    
  7.     Set olApp = Outlook.Application
  8.     Set olExp = olApp.ActiveExplorer
  9.     Set olSel = olExp.Selection
  10.    
  11.     For Each myitem In olSel
  12.         'récupération des infos des mails sélectionnés :
  13.         myitem.Subject
  14.         myitem.Body
  15.         myitem.ReceivedByName
  16.         myitem.ReceivedTime
  17.         '...
  18.     Next


Je réussit donc bien à récupérer les infos désirées du mail sélectionné, et de les exploiter en faisant apparaître un formulaire avec ces infos, ainsi que d'autres champs à saisir. :)
 
Maintenant j'aimerais enregistrer un nouvel enregistrement dans une base Access à partir de ce formulaire, en ayant préalablement vérifié que cet enregistrement n'existe pas.
 
Mais comment faire un DLookUp ou une requête SQL d'ajout vu qu'il ne sait pas quelle base access attaquer ?
En effet pas de BDD liée dans Outlook, ou de recordsource lié au formulaire...
 
:/


Message édité par depardieu le 08-04-2011 à 10:30:09
Reply

Marsh Posté le 08-04-2011 à 10:24:55    

Exactement de la meme maniere que tu déclares ton objet olApp tu fais de meme avec ta base Access et tu auras accès à tout.


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 08-04-2011 à 10:29:36    

Ok. [:transparency]
 
Si tu as un exemple sous la main, je suis preneur. Rien trouvé de concluant sur le net.

Reply

Marsh Posté le 08-04-2011 à 17:25:22    

Avec ADODB.Connection ca focntionne. :o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed