importare in una tabella di Access le mail di outlook

Anonimo
2023-08-06T17:38:41+00:00

buona domenica

nell'importare in una tabella di access le email di outlook funziona benissimo solo che ad un mio amico importa 200 email e poi si blocca sulla istruzione next objitem

pongo il codice

Sub Importa()

'importa l'email di outlook

'24-07-2023

'aggiungere la libreria Microsoft outlook 16.

Dim risposta

risposta = MsgBox("Questo programma importa le email da Outlook, vuoi continuare? S/N", vbYesNo) 

If risposta = 7 Then 

    Exit Sub 

End If 

Dim appOutlook As Outlook.Application 

Dim ns As Outlook.NameSpace 

Dim folderInbox As Outlook.MAPIFolder 

Dim objItem As Outlook.MailItem 

Dim db As DAO.Database 

Dim rs As DAO.Recordset, table As DAO.Recordset 

Dim nrecord As Long 

nrecord = 0 

' Crea un oggetto Outlook e accede alla cartella Posta in arrivo 

Set appOutlook = New Outlook.Application 

Set ns = appOutlook.GetNamespace("MAPI") 

Set folderInbox = ns.GetDefaultFolder(olFolderInbox) 

' Apre la tabella in Access dove vuoi importare i dati delle mail di Outlook 

Set db = CurrentDb() 

Set rs = db.OpenRecordset("posta\_arrivo") ' Sostituisci "posta-arrivo" con il nome della tua tabella 

Set table = db.OpenRecordset("mittenti") 

' Loop attraverso tutte le mail nella cartella Posta in arrivo e importa i dati nella tabella di Access 

For Each objItem In folderInbox.Items 

    If TypeOf objItem Is MailItem Then 

        Dim strIDOutlook As String 

        strIDOutlook = objItem.EntryID 

        ' Controlla se l'IDOutlook è già presente nella tabella 

        If Not RecordEsiste(strIDOutlook) Then 

            rs.AddNew 

            rs("IDOutlook").Value = strIDOutlook 

            rs("Importanza").Value = objItem.Importance 

           'rs("Icona").Value = objItem.icon 

            rs("Priorità").Value = objItem.Importance 

            rs("Oggetto").Value = objItem.Subject 

            rs("Da").Value = objItem.SenderEmailAddress     'Da 

            rs("Messaggio indirizzato a me").Value = objItem.To 

            rs("Messaggio con me in Cc").Value = objItem.Cc 

            rs("Mittente").Value = objItem.SenderName    'mittente 

            rs("Cc").Value = objItem.Cc 

            rs("A").Value = objItem.To 

            rs("Data di ricezione").Value = objItem.ReceivedTime 

            rs("Dimensione messaggio").Value = objItem.Size 

            rs("Contenuti").Value = objItem.Body 

            rs("Creata").Value = objItem.CreationTime 

            rs("Modificata").Value = objItem.LastModificationTime 

            'rs("Prefisso oggetto").Value = objItem.SubjectPrefix 

            rs("Allegati").Value = IIf(objItem.Attachments.Count > 0, True, False) 

            rs("Oggetto normalizzato").Value = objItem.Subject 

            rs("Tipo oggetto").Value = "MailItem" ' Puoi utilizzare questo campo per specificare il tipo di oggetto 

            rs("Contenuto non letto").Value = objItem.UnRead 

            ' Aggiungi altre colonne della tua tabella e assegna i dati corrispondenti della mail 

            rs.Update 

            nrecord = nrecord + 1 

        End If 

    End If 

    If Not emailesiste(rs!Da) Then 

        table.AddNew 

        table!Da = rs!Da 

        table!Mittente = rs!Mittente 

        table.Update 

    End If 

Next objItem 

rs.Close 

table.Close 

MsgBox nrecord 

' Set rs = Nothing

Set db = Nothing 

appOutlook.Quit 

Set appOutlook = Nothing 

Set ns = Nothing 

Set folderInbox = Nothing 

If nrecord > 0 Then 

Set db = CurrentDb() 

Set rs = db.OpenRecordset("email-importate") 

 rs.AddNew 

 rs!data = Now() 

 rs!ora = Time() 

 rs!nrecord = nrecord 

 rs.Update 

 rs.Close 

 End If 

End Sub

Non riesco a capire il perchè

grazie a tutti

GMP

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2023-08-06T19:21:40+00:00

Ciao

Sono Adeyemi e sarei felice di aiutarti con la tua domanda.

Dal codice fornito, sembra che il programma sia appeso all'istruzione "Next ObjItem", che viene utilizzata per scorrere tutte le e-mail nella posta in arrivo. È possibile che si sia verificato un problema con una delle e-mail che causa il blocco del programma.

Un modo per risolvere questo problema consiste nell'aggiungere alcune istruzioni di debug al codice per vedere dove si trova esattamente il programma. Ad esempio, è possibile aggiungere una riga come "Debug.Print "Elaborazione e-mail" e i" prima dell'istruzione "Next ObjItem" per vedere quale e-mail sta causando il problema. Una volta identificata l'email problematica, puoi provare a capire cosa sta causando il problema e come risolverlo.

Un'altra possibilità è che potrebbe esserci un problema con l'installazione di Outlook o Access sul computer del tuo amico. Puoi provare a riparare o reinstallare questi programmi per vedere se questo risolve il problema.

Spero che questo aiuti!

Restituisci alla comunità. Aiuta la prossima persona che ha questo problema indicando se questa risposta ha risolto il tuo problema. Fai clic su Sì o No di seguito

Saluti Adeyemi

Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2023-08-09T12:59:08+00:00

    Grazie ai tuoi suggerimenti abbiamo individuato l'email che creava problemi.

    l'abbiamo cancellata e l'importazione fila via liscia.

    ho anche provato con successo l'importazione da una sottocartella della posta in arrivo

    Grazie Adeyemi Olayemi Samuel

    buone vacanze

    La risposta è stata utile?

    0 commenti Nessun commento