2009-09-10 7 views
0

Je suis en train de mettre en place un formulaire où l'utilisateur peut cliquer sur un bouton et il tire l'adresse e-mail d'un contact, crée un nouveau courriel, permet à l'utilisateur de taper leur envoyez un e-mail et envoyez-le, puis enregistrez l'e-mail dans une table. Je l'ai fonctionné, sauf pour un petit problème. Dans les versions antérieures d'Outlook (2003 et versions antérieures), vous pouvez configurer Word en tant qu'éditeur d'e-mail. Si c'est le cas, le code ne se termine jamais.De l'accès à Outlook Email et retour à nouveau

Dim objOutlook As Object 
Dim objmessage As Object 
Dim myInspector As Variant 

Set objOutlook = CreateObject("outlook.application", "localhost") 
Set objmessage = objOutlook.createItem(0) 
objmessage.To = Me!email 
Set myInspector = objmessage.GetInspector 
myInspector.display 

(v THIS IS THE CODE THAT LOOPS, SEE BELOW v) 
While Not myInspector.CurrentItem Is Nothing 
    DoEvents 
Wend 

Lorsque Outlook est l'éditeur de courrier électronique, le bloc while marqué des boucles au-dessus jusqu'à ce que l'utilisateur soit envoie ou ferme le message électronique (myInspector.CurrentItem est effacé). Il continue ensuite de récupérer l'information dans Access. Cependant, lorsque Word est l'éditeur d'e-mail, le code indiqué ci-dessus est éternel (myInspector.CurrentItem n'est jamais effacé). Quelqu'un sait pourquoi il pourrait le faire? Et si vous le faites, que puis-je faire pour résoudre ce problème afin qu'il fonctionne pour Word comme l'éditeur d'e-mail comme il le fait pour Outlook?

Répondre

1
While Not objOutlook.ActiveInspector Is Nothing 
    DoEvents 
Wend 

Cela a fonctionné sur le mien. S'il vous plaît vérifier cela si ça va marcher.

+0

Travaillé comme un charme. – KevenDenen

0

Il est vrai que lorsque vous ouvrez Outlook avec Word en tant qu'éditeur, vous créez de nouvelles instances d'Outlook et de Word. Vous devriez être en mesure d'annuler l'utilisation de Word en tant que votre éditeur via l'objet OutlookMsg.

Si les messages sont vraiment simples et sans pièces jointes, vous pouvez également les saisir dans un contrôle mémo et les envoyer directement à partir d'Access (commande sendObject), mais ils ne seront pas enregistrés dans Outlook.

+0

Malheureusement, le client requiert la possibilité d'utiliser Word comme éditeur de courrier électronique. – KevenDenen

+0

Votre client est très stupide. –

+0

Il est toujours intéressant de comprendre pourquoi votre client rendrait l'utilisation de Word comme éditeur d'email obligatoire. En fonction de sa «connaissance du logiciel», ses arguments pourraient être techniquement acceptables, ce dont je doute. Vous pourriez découvrir que les gens vous ont demandé de suivre une règle sans autre justification que «c'est ainsi que nous le faisons». –

Questions connexes