Page 1 sur 1

[Résolu] Selectionner une autre base mail

MessagePublié: 04 Oct 2011 à 16:35
par N3oTraX
Bonjour,

J'essaie de créer un mémo via une autre boite mail en vb, mais rien y fait.

J'arrive avec ce code à le faire avec ma boite perso, mais quant à ma boite du taf c'est autre chose :




Code : Tout sélectionner
Private Sub UseLotus()


    Dim Session As Object
    Dim Dir As Object
    Dim Doc As Object
    Dim Workspace As Object
    Dim EditDoc As Object
   
On Error GoTo TraiteErreur
   
    'Création de la session Notes
    Set Workspace = CreateObject("Notes.NotesUIWorkspace")
    Set Session = CreateObject("notes.NOTESSESSION")
    Set Dir = Session.GETDATABASE("", "")
    Call Dir.OPENMAIL
   
    'Creation d'un document
    Set Doc = Dir.CREATEDOCUMENT
   
    Doc.form = "Memo"
    Doc.Subject = "Sujet du mail"
    Doc.SendTo = "Receiver@mail.com"
    Doc.body = "This is the body."
   
    'Affichage du mail dans Lotus Notes
    Set EditDoc = Workspace.EditDocument(True, Doc)
   
    Set Session = Nothing
    Set Dir = Nothing
    Set Doc = Nothing
    Set Workspace = Nothing
    Set EditDoc = Nothing
   
    Exit Sub
   
TraiteErreur:
   
    MsgBox "Problème de création du mail", vbCritical, "Error"
   
    Set Session = Nothing
    Set Dir = Nothing
    Set Doc = Nothing
    Set Workspace = Nothing
    Set EditDoc = Nothing

End Sub


J'aimerai aujourd'hui atteindre une base avec des parametres proches de ceux-ci :

- /SERVEUR/GROUP/MEMBRES
- mail\Mail1\XXXXX.nsf

Qui peut m'aider ?

Merci

MessagePublié: 04 Oct 2011 à 16:38
par Raziel
Sur la ligne Set Dir = Session.GETDATABASE("", "") ,
tu ne peux pas renseigner le serveur et le nom de la base mail ?

MessagePublié: 04 Oct 2011 à 16:55
par N3oTraX
Bah c'est ce que j'ai essayé de faire, mais j'ai un code erreur en essayant de tourner ca dans tous les sens...

En gros j'ai essayé :

Set Dir = Session.GetDatabase("SERVEUR/GROUP/MEMBRES", "mail\Mail1\XXXXX.nsf ")


Set Dir = Session.GetDatabase("SERVEUR/GROUP/MEMBRES", "mail/Mail1/XXXXX.nsf ")

En tournant les / et les \ dans tous les sens...

MessagePublié: 04 Oct 2011 à 16:56
par Raziel
C'est quoi ce message d'erreur ?

MessagePublié: 04 Oct 2011 à 17:10
par N3oTraX
Erreur d'execution '7296':

This database object is already open as
SERVER/GROUP/MEMBER!!dir\Dir1\xxxx.nsf


Ce message apparait sur la ligne :
Code : Tout sélectionner
Call Dir.OPENMAIL

Peut importe le sens des /

MessagePublié: 04 Oct 2011 à 17:15
par N3oTraX
J'ai commenté la ligne et ca marche :D

Réponse tirée du site IBM :

The "Call maildb.OpenMail" line is superfluous - just delete it.
Its function is to return a handle to the mail box of the current user.

Since that is also the function of the preceding 3 lines, you don't need it.

Alternatively delete the preceding 3 lines which do the same thing by a different route, ie by reading Notes.INI and opening the mailbox named there.

The error message is because you can't/shouldn't open a database that is already open.

NB: There's a typo in line " Messagebox("Please select at least one team member. Exit Sub" where two lines have been rolled into one. I guess this was just a side effect of copying and pasting the code into the forum though.


Merci ! Comme quoi en posant les bonnes questions ont trouve les bonnes solutions :)

MessagePublié: 04 Oct 2011 à 19:35
par roubech
dans ta 1ere version, tu instancies un objet NotesDatabase sans préciser de serveur et de chemin, et ensuite tu appel OpenMail qui ouvre la BAL du user courant

dans la 2nde, tu ouvres explicitement une base donnée, donc surtout pas OpenMail ensuite