Trop peu de paramètres 1 requis (erreur 3061) avec automation
Bonjour à tous
L'erreur 3061 apparait avec ce code d'automation Outlook sur une requête filtre qui fonctionne parfaitement dans l'interface, apparemment il n'y a pas d'erreur de noms de champs, je ne comprends donc pas pourquoi ça ne marche pas :
Code:
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
| Public Function ExportActionsOutlook()
Dim rst As DAO.Recordset
Dim db As DAO.Database
Set db = CurrentDb
Set rst = CurrentDb.OpenRecordset("RqExportActionsOutlook")
Debug.Print rst
' Enregistrer d'abord pour s'assurer que les champs requis sont remplis.
DoCmd.RunCommand acCmdSaveRecord
On Error GoTo AjoutAction_Err
'Vérifie qu'il existe des actions à exporter
If rst.RecordCount = 0 Then
MsgBox "Il n'y a aucune action à exporter vers Outlook", vbOKOnly, "Transfert annulé"
Exit Function
End If
rst.MoveFirst
Do While Not rst.EOF
' Ajouter un nouveau rendez-vous.
Dim outobj As New Outlook.Application
Dim outappt As Outlook.AppointmentItem
Set outobj = CreateObject("outlook.application")
Set outappt = outobj.CreateItem(olAppointmentItem)
With outappt
.Start = rst!HoraireDebut
.Duration = Nz(rst!DuréeAction)
.Subject = rst!Contact & " " & rst![Vendeur/Intervenant]
.Body = Nz(rst!NotesAction)
.Location = Nz(rst!LieuAction)
.ReminderMinutesBeforeStart = Nz(rst!MinutesRappel)
.ReminderSet = Nz(rst!RappelAction)
' Définir l'indicateur AjoutéàOutlook, enregistrer, afficher un message.
rst.Update "ajoutéàoutlook", -1
.Save
End With
'Boucle
rst.MoveNext
Loop
' Libérer la variable objet Outlook.
Set outobj = Nothing
Set rst = Nothing
Set outappt = Nothing
MsgBox " Actions ajoutées à Outlook ! "
Exit Function
AjoutAction_Err:
MsgBox " Erreur " & err.Number & Chr(10) & err.Description
Exit Function
End Function |
La requête source est la suivante :
Code:
1 2 3 4
| SELECT T_RendezVous.HoraireDebut, T_RendezVous.NumContact, T_RendezVous.NotesAction, T_RendezVous.LieuAction, T_RendezVous.RappelAction, T_RendezVous.MinutesRappel, T_RendezVous.AjoutéàOutlook, T_RendezVous.DuréeAction, RqContacts.Contact, [Vendeurs et Intervenants].[Vendeur/Intervenant]
FROM RqContacts INNER JOIN ([Vendeurs et Intervenants] INNER JOIN T_RendezVous ON [Vendeurs et Intervenants].IdVendeurIntervenant = T_RendezVous.IdIntervenant) ON RqContacts.NumContact = T_RendezVous.NumContact
WHERE (((T_RendezVous.NumGrpAction)=[Formulaires]![Groupes Actions]![NumGrpAction]))
ORDER BY T_RendezVous.HoraireDebut DESC; |
Merci d'avance pour votre aide.