Newsgroup: it.comp.appl.access
Titolo: Creare appuntamento in outlook da access scegliendo il file pst.

Buongiorno a tutti,
qualcuno sa come fare questa cosa?
Da Access, tramite codice vba, voglio creare un appuntamento nel
calendario di outlook 2003...fin qui tutto ok...Il problema è che se
eseguo il codice mi viene creato l'appuntamento nel calendario
predefinito...
Poichè ho più file pst di outlook con diversi calendari, che possono
risiedere sullo stesso pc oppure no (non ho exchange)...come posso
dire di inserire l'appuntamento su un dato calendario che si trova in
un dato file pst?
Il codice utilizzato è questo:
Private Sub cmdAddAppt_Click()
    On Error GoTo Add_Err
    'Save record first to be sure required fields are filled.
    DoCmd.RunCommand acCmdSaveRecord
    'Exit the procedure if appointment has been added to Outlook.
    If Me!AddedToOutlook = True Then
        MsgBox "This appointment is already added to Microsoft
Outlook"
        Exit Sub
    'Add a new appointment.
    Else
        Dim objOutlook As Outlook.Application
        Dim objAppt As Outlook.AppointmentItem
        Dim objRecurPattern As Outlook.RecurrencePattern
        Set objOutlook = CreateObject("Outlook.Application")
        Set objAppt = objOutlook.CreateItem(olAppointmentItem)
        With objAppt
            .Start = Me!ApptDate & " " & Me!ApptTime
            .Duration = Me!ApptLength
            .Subject = Me!Appt
            If Not IsNull(Me!ApptNotes) Then .Body = Me!ApptNotes
            If Not IsNull(Me!ApptLocation) Then .Location = Me!
ApptLocation
            If Me!ApptReminder Then
                .ReminderMinutesBeforeStart = Me!ReminderMinutes
                .ReminderSet = True
            End If
            Set objRecurPattern = .GetRecurrencePattern
            With objRecurPattern
                .RecurrenceType = olRecursWeekly
                .Interval = 1
                'Once per week
                .PatternStartDate = #7/9/2003#
                'You could get these values
                'from new text boxes on the form.
                .PatternEndDate = #7/23/2003#
            End With
            .Save
            .Close (olSave)
            End With
            'Release the AppointmentItem object variable.
            Set objAppt = Nothing
    End If
    'Release the Outlook object variable.
    Set objOutlook = Nothing
    'Set the AddedToOutlook flag, save the record, display a message.
    Me!AddedToOutlook = True
    DoCmd.RunCommand acCmdSaveRecord
    MsgBox "Appointment Added!"
    Exit Sub
Add_Err:
    MsgBox "Error " & Err.Number & vbCrLf & Err.Description
    Exit Sub
End Sub

 ha scritto nel messaggio 
news:be7b8833-a3b4-4bd2...@r66g2000hsg.googlegroups.com...






            Set objRecurPattern = .GetRecurrencePattern




    Exit Sub

[risposta]
Prova da qui:
Store Object
http://msdn.microsoft.com/en-us/library/bb176405.aspx
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
Ciao Sergio,
ti ringrazio moltissimo per avermi risposto.
Ho visitato il link che mi hai consigliato, non ho ben capito se è
proprio quello che mi interessa...ad ogni modo guardando un pò nel
codice ho cercato di tirare fuori quello che mi serviva ed ho aggiunto
questo pezzo al codice di sopra:
 Dim folders As Outlook.folders
    Dim Folder As Outlook.folders
    Dim foldercount As Integer
On Error Resume Next
    Set folders = oFolder.folders("Nome cartella")
In nome cartella ho indicato il nome della cartella, non il nome del
calendario...
Con questa modifica l'appuntamento è stato creato correttamente. Se
apro Outlook mi viene segnalato che c'è un appuntamento scaduto (il
promemoria), ma se vado alla data in cui dovrebbe esserci
l'appuntamento non c'è niente...in nessuno dei miei calendai...?!?!!?
Dove andranno a finire gli appuntamenti secondo te?!?!!?
Grazie mille ancora...ciao e buona giornata.


Ciao Sergio, scusami, ma mi sono accorto che non li vedo perchè
vengono fissati nel 2003, visto che nel codice ho indicato come data
il 2003.....
Quindi conseguenza quell'aggiunta che ho fatto, che fa riferimento ai
Folder...viene assolutamente ignorata...hai qualche altra idea?
Grazie ancora...
Ciao.

 ha scritto nel messaggio 
news:2df6ec24-e0e6-4795...@i24g2000prf.googlegroups.com...
Ciao Sergio, scusami, ma mi sono accorto che non li vedo perchč
vengono fissati nel 2003, visto che nel codice ho indicato come data
il 2003.....
Quindi conseguenza quell'aggiunta che ho fatto, che fa riferimento ai
Folder...viene assolutamente ignorata...hai qualche altra idea?
Grazie ancora...
Ciao.
[risposta]
Prova a riadattare questo codice:
'---
On Error GoTo errori
Dim objOL As Outlook.Application
Dim objNMSP As Outlook.NameSpace
Dim objITM As Outlook.AppointmentItem
'--> verifico se l'istanza di Outlook č disponibile
Dim appIsRunning As Boolean
On Error Resume Next
Set objOL = GetObject(, "Outlook.Application")
appIsRunning = True
If Err.Number <> 0 Then
    Set objOL = CreateObject("Outlook.Application")
    appIsRunning = False
End If
On Error GoTo errori
'<--
'--> creazione Appuntamento
Dim tmp_entryID As String
If IsNull(Me!appointStart) Then
    Me!appointStart = Now
    Me!appointEnd = DateAdd("d", 10, Now)
End If
Set objNMSP = objOL.GetNamespace("MAPI")
Set objITM = objNMSP.GetDefaultFolder(olFolderCalendar).Items.Add
With objITM
    .MeetingStatus = olNonMeeting
    .subject = Me!xSubject
    .location = Me!xLocation
    .Body = Me!xBody
    .Start = CDate(Me!appointStart)
    .End = CDate(Me!appointEnd)
     With .GetRecurrencePattern
        .Interval = 1
        .RecurrenceType = olRecursWeekly
        .PatternStartDate = CDate(Me!appointEnd)
        .PatternEndDate = DateAdd("d", 5, Me!appointEnd)
    End With
    .Save
End With
'<--
uscita:
If Not appIsRunning Then
    objOL.Quit
End If
Set objITM = Nothing
Set objNMSP = Nothing
Set objOL = Nothing
Exit Sub
errori:
    Set frmCtrl = Nothing
    Set objITM = Nothing
    Set objNMSP = Nothing
    Set objOL = Nothing
    MsgBox Err.Number & " " & Application.AccessError(Err.Number)
End Sub
'---
Ciao.
-- 
Sergio MAZZA 

 '---
Mhmmm... Riguardando il link che ti ho segnalato, quello č solo per la 
versione 2007.
Prova questo:
Logon Method
http://msdn.microsoft.com/en-us/library/aa220124(office.11).aspx
Altri esempi:
Using Automation in Microsoft Office Access 2003 to Work with Microsoft 
Office Outlook 2003:
http://msdn.microsoft.com/it-it/library/aa159619(en-us).aspx#odc_ac_olauto_addappointmentstooutlook
Se non ricordo male nella (o fina alla) versione 2003 non era possibile, da 
codice VBA, cambiare il file pst in uso; ma non trovo la documentazione. Con 
la versione 2007 e forse proprio con l'oggetto Store, si puň.
Ma non ho mai provato non avendo la 2007; e comunque in generale non 
utilizzo Outlook.
Se riesco a trovare dell'altro lo invio qui...
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
Ciao Sergio,
intanto ancora grazie per la tua disponibilità.
Ho provato a seguire le piste che mi hai dato, ma non ne ho tratto
nulla...non ho trovato nulla, però, che mi dicesse che tale
possibilità è offerta da Office 07 e non 03...
Hai trovato qualche altra cosa tu?
Grazie mille...
Ciao e buona serata.