Imprimir página | Cerrar ventana

Automatización, Error 438 en tiempo de ejecución

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84561
Fecha de impresión: 26/Marzo/2026 a las 17:28


Tema: Automatización, Error 438 en tiempo de ejecución
Publicado por: Aljira
Asunto: Automatización, Error 438 en tiempo de ejecución
Fecha de publicación: 18/Junio/2019 a las 08:52
Buenos días, tenía este código que siempre a funcionado hasta que he instalado MS 2016 32 bits. ¿Me podéis ayudar a solucionar el problema?
Public Function AbrirCalendarioMSO(fieldName As String, opcion As Variant)

' Automation code example.
Dim myvol As Outlook.Application
Dim myNameSpace As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder
Dim olItem As Outlook.AppointmentItem
Set myol = CreateObject("Outlook.Application")
Set myNameSpace = myol.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(olFolderCalendar)
If opcion = vacio Then opcion = ""
For Each opcion In myFolder.Items
    If opcion = fieldName Then 'esta es la linea donde se interrumpe el proceso.
        If opcion = "Display" Then
        opcion.Display
    ElseIf opcion <> "Delete" Then
        opcion.Delete
        MsgBox "Elemento borrado"
        End If
    End If
    Next opcion

End Function

Muchas gracias,


-------------
Todo un año por delante



Respuestas:
Publicado por: Mihura
Fecha de publicación: 18/Junio/2019 a las 09:37
¿Y qué es fieldname? ... no es un valor (constante) de Outlook (por lo menos en 2.010) ... ¿una variable?




-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: Aljira
Fecha de publicación: 18/Junio/2019 a las 12:08
Buenos días, efectivamente, coge el nombre de un contacto de access y debería recorrer en outlook el calendario, para poder eliminar la cita antigua y poder crear una nueva.

-------------
Todo un año por delante


Publicado por: Mihura
Fecha de publicación: 18/Junio/2019 a las 13:24
No me queda 'claro' ese código, por un lado:

For Each opcion In myFolder.Items

Es decir opcion es un item de outlook, pero no has declarado la variable (que veamos), ... y la comparas con otra no declarada (que veamos).

¿No será opcion.name? ... o algo así

y por cierto convierte a string fieldName que a veces da sorpresas:

If OPcion = Cstr(FiedName)


-------------
Jesús Mansilla Castells.
Saludos desde Móstoles.

http://www.accessaplicaciones.com" rel="nofollow - Access Aplicaciones
http://www.tecsys.es" rel="nofollow - Tecsys.es


Publicado por: Aljira
Fecha de publicación: 18/Junio/2019 a las 14:52
Está declarado al principio:
<span style="display: inline !imant; : none; : rgb251, 251, 253; color: rgb0, 0, 0; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-trans: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">Public Function AbrirCalendarioMSO(fieldName As String, opcion As Variant)</span>
le estoy dando vueltas a las referencias, pero parece estar todo correcto. Seguiré esta tarde.


En off 2010 funciona, en 2016 no. Las referencias están bien, probaré a ver si es la ubicación y/o tipo de archivo de datos de Outlook.

-------------
Todo un año por delante


Publicado por: Aljira
Fecha de publicación: 20/Junio/2019 a las 09:07
He sido incapaz de solucionarlo, me vuelvo al 2010 que es menos exquisito.
Muchas gracias, se puede cerrar el hilo.


-------------
Todo un año por delante



Imprimir página | Cerrar ventana