Newsgroup: it.comp.lang.visual-basic
Titolo: Creare un LISTA DI DISTRUZIONE in Outlook

Ho un problema nel creare una lista di distribuzione in outlook ed in
particolare nell'aggiungere i membri a questa lista, infatti nonstante
eseguo correttamente le istruzioni solo se aggiungo l'istruzione "Display"
dell'oggetto "DistListItem" mi esegue correttamente l'aggiunta dei membri
nella mia lista, altrimenti mi aggiunge solo il primo.
Allego il codice, che richiamo ogni volta che devo aggiungere una Lista:
'**********************************************************************************
'** Purpose....: CREA LISTA DISTRIBUZIONE
'**
'** Description:
'**********************************************************************************
Public Sub CreaLista(ByVal strNomeLista As String, ByVal strContatto As
String)
   Dim icont As Integer
   If Not i_bolOpen Then
      Exit Sub
   End If
   Set i_objMAILITEM = i_objOUTLOOK.CreateItem(olMailItem)
   Set i_objRECIPIENTS = i_objMAILITEM.Recipients
   On Error GoTo CREA_NUOVO
   Set i_objLISTA = i_objFOLDER.Items(strNomeLista)
   On Error GoTo 0
   GoTo AGGIUNGI_MEMBER
CREA_NUOVO:
   On Error GoTo 0
   Set i_objLISTA = i_objOUTLOOK.CreateItem(olDistributionListItem)
   i_objLISTA.DLName = strNomeLista
AGGIUNGI_MEMBER:
   i_objLISTA.Display   <------------------------- se si toglie non funge
   i_objRECIPIENTS.Add strContatto
   i_objRECIPIENTS.ResolveAll
   i_objLISTA.AddMembers i_objRECIPIENTS
   i_objLISTA.Close (olSave)
   Set i_objRECIPIENTS = Nothing
   Set i_objMAILITEM = Nothing
   Set i_objLISTA = Nothing
End Sub
da notare che l'istruzione "i_objLISTA.Display" se la tolgo non mi aggiunge
i membri o per meglio dire mi aggiunge solo il primo sia che la lista
esista o no.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

MarcoZama ha scritto:



RETIFICO:
Inizialmente al posto dell'istruzione "i_objLISTA.Close(olSave)" prima di
aggiungere il "i_objLISTA.Display" c'era solo l'istruzione
"i_objLISTA.Save"
Ringrazio anticipatamente e mi scuso se non ho utilizzato la sintassi del
Vs. NewGroup


MarcoZama ha scritto:



Ciao Marco,
mi succedeva una cosa simile nell'aggiungere degli Items alla lista dei
contatti di Outlook, in realtà gli item venivano aggiunti ma "molto
lentamente", cioè aprendo Outlook io vedevo aggiungersi un item ogni 10
secondi circa. Mettendo l'istruzione di Display invece tutto funzionava, ma
a me non interessava il display.
Poi ho trovato questa soluzione, ho aggiunto:
    Dim myNameSpace As Outlook.NameSpace
    Dim myFolder As Outlook.MAPIFolder
    Set myNameSpace = objOutlook.GetNamespace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(olFolderContacts)
    '...... Qui aggiungo gli items
    Set myFolder = Nothing
    Set myNameSpace = Nothing
Così tutto funziona, senza display, però sarei curiosa di sapere il perché
:-)
Ciao
Francesca

 Francesca
Ciao Francesca,
Ti ringrazio, ma i contatti già li aggiungo e fortunatamente li non
ho avuto problemi.
Per ora sono stato costretto a mettere un display con conseguente close,
ho pensato anche io che fosse un problema di tempo, dato che quando si 
esegue una visualizzazione della maschera si ottiene anche un
rallentamento, ma nonostante gli sleep che ho aggiunto non ho attenuto 
niente.
Adesso il programma (da me chiamato lo sfarfallatore) fa i display, almeno 
funziona correttamente, spero di riuscire a risolvere questo problema o
per meglio dire spero che la microsoft corregga questa anomalia (se lo è).
Dato che Tu hai già avuto a che fare con i contatti, ho notato che quando
si aggiunge un contatto io lo inserisco con un certo nominativo, che
successivamente quando vado a ricercare mi ha trasformato in modo diverso.
Sai se per ricercare questi contatti già esistenti si deve utilizzare una
tecnica particolare ?
Io per ora controllo il "FileAs" che pero' devo impostarlo come voglio io
se voglio ritrovare il mio contatto in fase di varazione.
Grazie dell'interesse
Ciao
Marco


 se voglio ritrovare il mio contatto in fase di varazione.
Per ricercare i contatti puoi usare qualsiasi campo. Non so se c'è una
tecnica particolare. Siccome io inserisco i miei contatti prendendoli da un
database e valorizzando i campi che mi interessano, poi li ricerco secondo
alcuni campi che insieme costituiscono una chiave univoca. Il FileAs non lo
uso nel filtro (si può anche usare) però anche io lo modifico perché non mi
piace il valore che gli attribuisce lui automaticamente. Ti riporto qualche
riga di codice che uso:
    Set myNameSpace = objOutlook.GetNamespace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(olFolderContacts)
    rs.MoveFirst
    While Not rs.EOF
        'Aggiungo solo quelli che non ci sono già
        strFiltro = "[FullName] = """ & Trim(rs!RAGIONE_SOCIALE & "") & """"
        strFiltro = strFiltro & " and [CustomerID] = """ & rs!CODICE & """"
        If myFolder.Items.Find(strFiltro) Is Nothing Then
            'Aggiungo il contatto
            ....
            Set myItem = objOutlook.CreateItem(olContactItem)
            myItem.FullName = Trim(rs!RAGIONE_SOCIALE & "")
            myItem.FileAs = Trim(rs!RAGIONE_SOCIALE & "")
            myItem.CustomerID = rs!CODICE
            ...
        endif
        rs.MoveNext
    Wend
Non so se ho capito quello che intendevi e se tutto ciò ti può essere utile,
perché in effetti sono pochi giorni che sto usando l'oggetto
Outlook.Application e lo sto scoprendo un po' alla volta.
Ciao
Francesca

 Francesca
Anche per me è la prima volta che utilizzo l'oggetto Outlook.Application
Grazie Francesca
