none
Crear cita en Outlook desde Access 2007 eligiendo calendario RRS feed

  • Pregunta

  • Buenos días:
    Utilizo Office 2007.
    Gestiono en Outlook 3 cuentas de correo (la de mi unidad, la de mi superior y la mía) con sus correspondientes calendarios.
    Trato de poder crear citas/reuniones en los calendarios desde un formulario de Access.

    Lo he conseguido, pero me las crea todas en mi calendario (que es el del usuario, en este caso yo.)

    ¿Puedo elegir el calendario en el que quiero que se cree la cita/reunión?.

    Pongo el código que funciona con mi usuario.

    Dim objOutlook As Outlook.Application
    Dim objAppt As Outlook.AppointmentItem


    Set objOutlook = CreateObject("Outlook.Application")
    Set objAppt = objOutlook.CreateItem(olAppointmentItem)

    With objAppt
    .Start = Me.FechaInicio & " " & Me.HoraInicio
    .End = Me.FechaFin & " " & Me.HoraFin
    .Subject = Me.Asunto
    .Body = Me.Notas
    .Location = Me.Ubicacion

    .Save
    .Close (olSave)
    End With

    Set objAppt = Nothing


    Set objOutlook = Nothing

    'Lanzamos mensaje deconfirmación
    MsgBox "Reunión/Cita creada en la agenda"

    Exit Sub

    Add_Err:
    MsgBox "Error " & Err.Number & vbCrLf & Err.Description
    Exit Sub
    Fuerza y honor.
    Saludos de Arturo desde Madrid
    martes, 24 de septiembre de 2013 12:12

Todas las respuestas

  • Esto es lo que me ha funcionado a mí. En concreto yo genero una reunión a una lista de asistentes (listadestinos) que son las direcciones de correo separadas por ';'

    Por defecto, genera la reunión a los correos de listadestinos bajo el calendario de cuenta1@correo.com. Para que se genere bajo cuenta2:

    Private Sub GenerarReunion(listadestinos)

              

        Dim OutlookApp As Outlook.Application
        Dim myNamespace As Outlook.NameSpace
        Dim myRecipient As Outlook.Recipient
        Dim calendarFolder As Outlook.MAPIFolder
        Dim items As Outlook.items
        Dim appItem As Outlook.AppointmentItem

        Set OutlookApp = CreateObject("Outlook.Application")
        Set myNamespace = OutlookApp.GetNamespace("MAPI")
        Set myRecipient = myNamespace.CreateRecipient("cuenta2@correo.com")
        Set calendarFolder = myNamespace.GetSharedDefaultFolder(myRecipient, olFolderCalendar)
        Set OutlookApp.ActiveExplorer.CurrentFolder = calendarFolder
        Set items = calendarFolder.items
        Set appItem = items.Add(Outlook.OlItemType.olAppointmentItem)

        With appItem

          .Start = Me.FechaInicio & "  " & Me.HoraInicio

          .End = Me.FechaFin & "  " & Me.HoraFin

          .Location = Me.CentroFormacion 'Localización de la cita
          .Subject = Me.CodCurso + Me.Tanda + " (" + Str(Me.Ejercicio) + ") " + Me.TipoCurso
          .Body = "Curso " + Me.TipoCurso + " - enviado desde Formación" 

          .OptionalAttendees = listadestinos
          .MeetingStatus = olMeeting   'para cambiar cita a reunión 
          .Save  'Salvamos la cita
          .Display  'La mostramos para su personalización/modificación
        End With

    End Sub


    domingo, 7 de abril de 2019 15:52
  • Esto es lo que me ha funcionado a mí. En concreto yo genero una reunión a una lista de asistentes (listadestinos) que son las direcciones de correo separadas por ';'

    Por defecto, genera la reunión a los correos de listadestinos bajo el calendario de cuenta1@correo.com. Para que se genere bajo cuenta2:

    Private Sub GenerarReunion(listadestinos)

              

        Dim OutlookApp As Outlook.Application
        Dim myNamespace As Outlook.NameSpace
        Dim myRecipient As Outlook.Recipient
        Dim calendarFolder As Outlook.MAPIFolder
        Dim items As Outlook.items
        Dim appItem As Outlook.AppointmentItem

        Set OutlookApp = CreateObject("Outlook.Application")
        Set myNamespace = OutlookApp.GetNamespace("MAPI")
        Set myRecipient = myNamespace.CreateRecipient("cuenta2@correo.com")
        Set calendarFolder = myNamespace.GetSharedDefaultFolder(myRecipient, olFolderCalendar)
        Set OutlookApp.ActiveExplorer.CurrentFolder = calendarFolder
        Set items = calendarFolder.items
        Set appItem = items.Add(Outlook.OlItemType.olAppointmentItem)

        With appItem

          .Start = Me.FechaInicio & "  " & Me.HoraInicio

          .End = Me.FechaFin & "  " & Me.HoraFin

          .Location = Me.CentroFormacion 'Localización de la cita
          .Subject = Me.CodCurso + Me.Tanda + " (" + Str(Me.Ejercicio) + ") " + Me.TipoCurso
          .Body = "Curso " + Me.TipoCurso + " - enviado desde Formación" 

          .OptionalAttendees = listadestinos
          .MeetingStatus = olMeeting   'para cambiar cita a reunión 
          .Save  'Salvamos la cita
          .Display  'La mostramos para su personalización/modificación
        End With

    End Sub


    disculpa amigo aqui como puedo hacerlo desde acces me podria ayudar creo que es lo que busco enviar las citas a diferene destinario desde una cuenta pero me manda un erro en la operacion devido aun problema de registro  o la instalacion reinici outlook e intentelo de nuevo  si el problema persistes vuela instalarlo 

    linea de erro 
    Set calendarFolder = myNamespace.GetSharedDefaultFolder(myRecipient, olFolderCalendar)

    miércoles, 21 de agosto de 2019 0:43
  • Hola!

    mira esta  respuesta https://access-programmers.co.uk/forums/showthread.php?t=264112


    Saludos a todos desde Huelva

    Emilio

    http://www.mvp-access.es/emilio/


    jueves, 22 de agosto de 2019 18:59