Erreur 438

Résolu
thanae Messages postés 11 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 7 mai 2010 - 3 mars 2008 à 17:47
thanae Messages postés 11 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 7 mai 2010 - 5 mars 2008 à 11:14
Bonjour,

Il y a quelques semaines j'ai développer une petite fonction dans un formulaire en access qui va chercher les mails dans une boite spécifique d'outlook et va vérifier et chercher des info de la base.
Jusqu'à présent ca fonctionnait, mais depuis aujourd'hui rien va plus!
J'ai chercher sur internet et trouver que cela pourrait venir de la securité des macro en outlook. Le probleme c'est que le service concerné, m'assure qu'ils n'y a pas eu de changement (saurait pas le confirmer, j'avoue ne pas avoir été regarder auparravant à quel status était la sécurité).
Pourtant j'ai bon regarder et ne trouve pas pourquoi j'ai maintenant l'erreur "Object doesn't support this property or method (Error 438)" qui apparait.

Mon code est le suivant:

Private Sub Bt_ExTransMail_Click()

Dim olApp As New Outlook.Application
Dim olFold As Outlook.MAPIFolder
Dim olItems As Outlook.Items
Dim olItem, nwItem As Outlook.MailItem
Dim Cmpt1, Cmpt2 As Integer
Dim Rcd As Long
Dim rst As DAO.Recordset

Cmpt1 = 0
Cmpt2 = 0

Set rst = CurrentDb.OpenRecordset("Qry_Supp_Pers")

rst.MoveFirst

Set olApp = CreateObject("Outlook.Application")
Set olFold = olApp.GetNamespace("MAPI").Folders("Mailbox - Support")
Set olItems = olFold.Folders("Inbox").Items.Restrict("[ReceivedTime] > '" & Date - 5 & "'")

For i = olItems.Count To 1 Step -1
   Rcd = 0
   Set olItem = olItems.Item(i)
   rst.MoveFirst
   Do Until rst.EOF
      If olItem.Subject Like "*" & rst.Fields("PROD_NUM") & "*" Then
         Rcd = rst.AbsolutePosition
      End If
      rst.MoveNext
   Loop
   If Rcd = 0 Then
      rst.MoveFirst
      Do Until rst.EOF
         If olItem.Subject Like "*" & rst.Fields("PROD_NAME") & "*" Then
            Rcd = rst.AbsolutePosition
         End If
         rst.MoveNext
      Loop
   End If
   rst.MoveFirst
   If Rcd > 0 Then
      rst.Move Rcd
      If (rst.Fields("Account") = "xxxx") Or IsEmpty(rst.Fields("EmailAddress")) Then
         olItem.Move olFold.Folders("AOR/non deliv")
         Cmpt2 = Cmpt2 + 1
      Else
         Set nwItem = olItem.Forward      ' ***** C'est Ici qu'il me fait l'erreur   ****
         nwItem.Recipients.Add rst.Fields("EmailAddress")
         nwItem.DeleteAfterSubmit = True
         nwItem.Send
         olItem.Delete
         Set nwItem = Nothing
         Cmpt1 = Cmpt1 + 1
      End If
   End If
Next
Me.NbMailForw.Value = Cmpt1
Me.NbMailMove.Value = Cmpt2

Set olApp = Nothing
Set olFold = Nothing
Set olItems = Nothing
Set olItem = Nothing

End Sub

Hors je confirme qu'avant j'ai jamais eu d'erreur là, et que tout est bien déclaré.
La référence Outllook est bien déclaré, vu que j'ai d'autres fonctions qui elles fonctionnent toujours.
Pour info: Access 2003, mais les DB sont en 2000; Outlook 2003 sous XP.

Maintenant en vous écrivant je constate que le SP3 de Office à été fait, alors, éventuellement est-ce quelqu'un aurait vent d'un changent à ce sujet.

Merci d'avance.

Thanae

4 réponses

thanae Messages postés 11 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 7 mai 2010
5 mars 2008 à 11:14
Ce matin, bizarrement, après avoir laisser de cote ce probleme, je reteste et la ca fonctionne!!! grrrrrrr 
Donc, désolée du dérangement, mais ce doit etre les admins exchange qui ont du faire qqch au niveau securité ou autres, sans nous en parler (vive la communication inter-services!!! ).

Thanae
3
Rejoignez-nous