Access - ACCEDER A CONTACTOS DE OUTLOOK EXPRESS

 
Vista:

ACCEDER A CONTACTOS DE OUTLOOK EXPRESS

Publicado por rameol (17 intervenciones) el 14/12/2005 11:59:34
Hola gente. Quisiera saber cual es el codigo que hace falta para acceder a la libreta de direcciones del Outlook Express (no Outlook), de tal forma que pueda crear un combo, lista o tabla con los nombres, direcciones y otros datos de los contactos en una base de datos e access.

Gracias por vuestra ayuda.

Abrazos para ellos y besos para ellas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Acceder a la libreta de direcciones de Outlook Express y mostrar los contactos en una base de datos

Publicado por Alejandro (4142 intervenciones) el 15/06/2023 00:38:42
Para acceder a la libreta de direcciones de Outlook Express desde Access y mostrar los contactos en una base de datos, puedes utilizar el siguiente código:

1. Asegúrate de tener una referencia a la biblioteca de objetos de Outlook en tu proyecto de Access. Ve a "Herramientas" -> "Referencias" y marca la casilla "Microsoft Outlook XX.X Object Library", donde "XX.X" representa la versión de Outlook instalada en tu sistema.

2. A continuación, puedes usar el siguiente código VBA para acceder a los contactos de Outlook Express y mostrarlos en una tabla o control en tu base de datos de Access:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Sub ObtenerContactosOutlookExpress()
    Dim objOutlook As Outlook.Application
    Dim objNamespace As Outlook.NameSpace
    Dim objAddressList As Outlook.AddressList
    Dim objContactsFolder As Outlook.MAPIFolder
    Dim objContactItem As Outlook.ContactItem
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
 
    ' Crea una instancia de la aplicación Outlook
    Set objOutlook = New Outlook.Application
    ' Obtiene el objeto de espacio de nombres MAPI
    Set objNamespace = objOutlook.GetNamespace("MAPI")
    ' Obtiene la lista de direcciones predeterminada
    Set objAddressList = objNamespace.GetDefaultFolder(olFolderContacts).AddressList
    ' Obtiene la carpeta de contactos
    Set objContactsFolder = objAddressList.GetContactsFolder
 
    ' Abre la base de datos de Access
    Set db = CurrentDb
    ' Abre un recordset en la tabla donde deseas almacenar los contactos (puede ser una tabla existente o crear una nueva)
    Set rs = db.OpenRecordset("NombreTabla")
 
    ' Recorre todos los contactos en la carpeta de contactos
    For Each objContactItem In objContactsFolder.Items
        ' Verifica si el contacto tiene una dirección de correo electrónico y no está duplicado
        If objContactItem.Email1Address <> "" And Not ContactoDuplicado(objContactItem.Email1Address, rs) Then
            ' Agrega el contacto al recordset o tabla
            rs.AddNew
            rs("Nombre") = objContactItem.FirstName
            rs("Apellido") = objContactItem.LastName
            rs("Email") = objContactItem.Email1Address
            ' Otros campos que desees agregar
            ' ...
            rs.Update
        End If
        ' Libera la memoria del objeto de contacto
        Set objContactItem = Nothing
    Next objContactItem
 
    ' Cierra el recordset y la base de datos
    rs.Close
    Set rs = Nothing
    Set db = Nothing
 
    ' Cierra la conexión de Outlook
    objNamespace.Logoff
    Set objNamespace = Nothing
    Set objOutlook = Nothing
 
    MsgBox "Los contactos de Outlook Express se han importado correctamente.", vbInformation
    Exit Sub
 
Err_Handler:
    MsgBox "Error al importar los contactos de Outlook Express.", vbExclamation
End Sub
 
Function ContactoDuplicado(ByVal email As String, ByVal rs As DAO.Recordset) As Boolean
    ' Verifica si el contacto ya existe en el recordset o tabla
    rs.MoveFirst
    Do Until rs.EOF
        If rs("Email") = email Then
            ContactoDuplicado = True
            Exit Function
        End If
        rs.MoveNext
    Loop
    ContactoDuplicado = False
End Function

Este código se conecta a Outlook Express a través de la biblioteca de objetos de Outlook y recorre los contactos en la carpeta de contactos predeterminada. Luego, agrega los contactos a un recordset o tabla en Access, verificando que no estén duplicados y tengan una dirección de correo electrónico válida.

Recuerda reemplazar "NombreTabla" con el nombre de la tabla en tu base de datos donde deseas almacenar los contactos.

Espero que esta solución te sea útil. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar