OVH Cloud OVH Cloud

outlook et vb

3 réponses
Avatar
Sebho
Salut, je débute avec outlook (sous vb)
et mon 1er problème c'est que je n'arrive pas à détruire l'objet
dans le gestionnaire des tâches OUTLOOK.EXE reste même après l'arrêt de
l'app
pourtant je quitte et je détruis les pointeurs : un idée, un conseil ?

merci
Sebho

Dim myO As Outlook.Application
Dim myNamespace As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder
Dim myItem As Outlook.MailItem

Set myO = CreateObject("Outlook.Application")
Set myNamespace = myO.GetNamespace("MAPI")
Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)
Set myItem = myFolder.Items(1)

myFolder.Display
myItem.Display

'...

myItem.Close olDiscard
myO.Quit

Set myNamespace = Nothing
Set myFolder = Nothing
Set myItem = Nothing
Set myO = Nothing

3 réponses

Avatar
Anor
Bonjour Sebho

Mets les set machin = nothing dans l'ordre inverse des déclarations :

set myItem = nothing
set myFolder = nothing
set myNamespace = nothing
set myO = nothing

et retire la ligne myFolder.Display.
Quand on accède depuis une appli externe, il n'est pas nécessaire d'afficher l'application
appelée.
Afficher l'objet ouvert suffit.

Si vraiment tu veux un bout de code pour fermer Outlook indépendemment de l'appli ou
l'utilisateur
qui l'a ouvert, j'ai ça dans mes tablettes, ou plus précisément dans une appli que j'ai faite
sous access et qui me sert
à vider le cache des formulaires outlook, mais comme les formats de fichiers mdb d'access ne
sont pas 100% compatibles entre eux,
il faudrait que j'acquière vb6 pour créer un vrai exécutable indépendant, puisque ne contient
qu'un formulaire et
du code vba (pas de données stockées).

Et c'est pas pour demain (trop cher pour mon porte-monnaie, déjà que office pro n'est amorti que
sentimentalement .. !! ;-))))
--
à+
Arnaud
--------------------------------------------------
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum ##
--------------------------------------------------


Sebho a confié :
| Salut, je débute avec outlook (sous vb)
| et mon 1er problème c'est que je n'arrive pas à détruire l'objet
| dans le gestionnaire des tâches OUTLOOK.EXE reste même après l'arrêt
| de l'app
| pourtant je quitte et je détruis les pointeurs : un idée, un conseil ?
|
| merci
| Sebho
|
| Dim myO As Outlook.Application
| Dim myNamespace As Outlook.NameSpace
| Dim myFolder As Outlook.MAPIFolder
| Dim myItem As Outlook.MailItem
|
| Set myO = CreateObject("Outlook.Application")
| Set myNamespace = myO.GetNamespace("MAPI")
| Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)
| Set myItem = myFolder.Items(1)
|
| myFolder.Display
| myItem.Display
|
| '...
|
| myItem.Close olDiscard
| myO.Quit
|
| Set myNamespace = Nothing
| Set myFolder = Nothing
| Set myItem = Nothing
| Set myO = Nothing
Avatar
Sebho
Salut,

j'ai inversé l'ordre des nothing, mais (et je m'en doutais) ca ne change
rien.
Le problème n'est pas d'afficher ou pas l'application, le problème est que
lorsque je quitte mon appli, il y a le processus OUTLOOK.EXE qui reste dans
le gestionnaire des tâches, et lorsque je relance mon appli, j'obtiens
l'erreur

Erreur Automation
Erreur non spécifiée

sur la ligne Set myO = CreateObject("Outlook.Application")
il faut que je termine le processus à la main dans le gestionnaire pour pour
que cela fonctionne à nouveau
suis sous win2k SP4

merci pour l'aide
Seb
Avatar
Anor
Bonjour

Sebho a confié :
| Salut,
|
| j'ai inversé l'ordre des nothing, mais (et je m'en doutais) ca ne
| change rien.
| Le problème n'est pas d'afficher ou pas l'application, le problème
| est que lorsque je quitte mon appli, il y a le processus OUTLOOK.EXE
| qui reste dans le gestionnaire des tâches, et lorsque je relance mon
| appli, j'obtiens l'erreur
|
| Erreur Automation
| Erreur non spécifiée
|
| sur la ligne Set myO = CreateObject("Outlook.Application")
| il faut que je termine le processus à la main dans le gestionnaire
| pour pour que cela fonctionne à nouveau
| suis sous win2k SP4
|
| merci pour l'aide
| Seb

oui mais ce que j'ai dit aussi, c'est que si tu supprimes la ligne display pour ton folder,
tu n'auras plus de tâche qui restera active.
L'ordre des "Nothing", c'est pour faire suite à la remarque "je débute".
Donc un conseil pour bien débuter ;-)

--
à+
Arnaud
--------------------------------------------------
Access Memorandum - http://memoaccess.free.fr
## Réponses souhaitées sur ce forum, merci. ##
--------------------------------------------------