IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

SendObject : L'action ou la méthode nécessite un argument de Type objet


Sujet :

Access

  1. #1
    Membre averti Avatar de temar
    Profil pro
    Étudiant
    Inscrit en
    Août 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2004
    Messages : 316
    Points : 300
    Points
    300
    Par défaut SendObject : L'action ou la méthode nécessite un argument de Type objet
    Salut à tous !

    Je suis entrain de paufiner mon appli de gestion de vidéothèque.

    J'aimerais pouvoir envoyer un mail de rappel à une personne qui a emprunté une vidéo depuis un certain temps.

    Voici le code que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Private Sub cmdMail_Click()
    
    On Error GoTo Err_cmdMail_Click
        
        Dim connec As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        Dim champ1 As String, champ2 As String, reqSQL As String
        Dim dateRecherche As String, rep As String
        Dim sujet As String, message As String
            
        rep = InputBox("Depuis quand avez-vous prété les vidéos que vous voulez récupérer ? (jj/mm/aaaa)", "Choix d'une durée", Date)
        dateRecherche = Format(rep, "mm/dd/yyyy")
    
        Set connec = CurrentProject.Connection
    
        reqSQL = "SELECT MAIL_EMPRUNTEUR, NOM_EMPRUNTEUR, DATE_PRET, TITRE_VIDEO, DATE_RETOUR "
        reqSQL = reqSQL + "FROM VIDEO INNER JOIN (EMPRUNTEUR INNER JOIN PRET ON EMPRUNTEUR.NUM_EMPRUNTEUR = PRET.NUM_EMPRUNTEUR) ON VIDEO.NUM_VIDEO = PRET.NUM_VIDEO "
        reqSQL = reqSQL + "WHERE (((DATE_PRET)<#" & dateRecherche & "#) AND ((DATE_RETOUR) Is Null)) "
        reqSQL = reqSQL + "ORDER BY NOM_EMPRUNTEUR;"
        
        rs.Open reqSQL, connec, adOpenDynamic, adLockOptimistic
        
        If Not rs.EOF Then
            rs.MoveFirst
        End If
        
        Do While Not rs.EOF
            sujet = "Pense à me rendre la vidéo : " & rs.Fields("TITRE_VIDEO")
            message = " Salut " & rs.Fields("NOM_EMPRUNTEUR") & " !" & vbCrLf _
                      & vbCrLf & "Juste un petit mail pour que tu penses à me rapporter la vidéo '" _
                      & rs.Fields("TITRE_VIDEO") & "' que tu m'as emprunté le " & Format(rs.Fields("DATE_PRET"), "jjjj j mmm yyyy") _
                      & vbCrLf & vbCrLf & "D'avance merci"
            
            DoCmd.SendObject acSendTable, , acFormatHTML, rs.Fields("MAIL_EMPRUNTEUR"), , , sujet, message, False
            
            rs.MoveNext
        Loop
            
        
    Exit_cmdMail_Click:
        Exit Sub
        
    Err_cmdMail_Click:
        Call messageCritique("erreur :", err.description, err.Number, "Gestion d'une vidéothèque")
        Resume Exit_cmdMail_Click
    Il s'avère que j'ai un soucis avec la ligne en rouge. Le fameux SendObject...

    Il me sort l'erreur suivant :

    Erreur : 2487 : L'action ou la méthode nécessite un argument de Type objet
    J'ai cherché un peu sur le net ce que je trouvais sur le sujet, et j'ai trouvé le lien suivant http://support.microsoft.com/default...d=kb;fr;260819

    On peut notamment y lire :

    Cause

    Ce problème peut se produire lorsque l'une des conditions suivantes est remplie :
    •Le message contient trop de caractères. Ce comportement a été documenté avec des messages contenant entre 70 et 2268 caractères.

    Remarque Ce chiffre peut varier selon l'ordinateur.

    •La méthode SendObject s'exécute plusieurs fois dans une procédure.
    J'ai testé avec un sujet et un message beaucoup plus court, pour tester, et ça n'a rien changé : meme erreur.
    Ce serait donc la deuxième erreur ? J'ai également testé de dégager ma boucle dans laquelle se trouve mon SendObject, et j'ai encore cette erreur.

    Enfin, bref, quand je vois ce que le site de microsoft donne comme solutions, je me dis que jsuis mal barré.

    Pour info, j'utilise Access 2002 !

    Comme je peux m'en sortir, sachant que je veux envoyer ces mails sans passer par un logiciel de messagerie ?

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,
    DoCmd.SendObject acSendTable, , acFormatHTML,rs.Fields("MAIL_EMPRUNTEUR"), , , sujet, message, False
    Essaie en remplaçant acSendTable par acSendNoObject .
    Autrement ça veut dire que tu veux envoyer une table en tant que pièce jointe.
    Et dans ce cas Access attend un nom de table.
    C'est ça l'objet manquant, je pense.

    A+

  3. #3
    Membre averti Avatar de temar
    Profil pro
    Étudiant
    Inscrit en
    Août 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2004
    Messages : 316
    Points : 300
    Points
    300
    Par défaut
    Effectivement, j'ai pas fait attention à ce paramètre...
    Un copié-collé bête et méchant

    Je ne reçoit plus d'erreur, et le mail est bien envoyé.

    Par contre, Thunderbird se lance, et me dit qu'une autre application tente d'envoyer un mail en utilisant mon profil...
    Quand je clique sur Ok, pour dire que je veux bien qu'il l'envoie, le mail part sans problème, et je le reçois bien, mais c'est pas ce que je voulais faire

    Je pensais qu'en utilisant ça, cela permettait justement d'envoyer un mail sans passer par un logiciel ?

  4. #4
    Membre averti Avatar de temar
    Profil pro
    Étudiant
    Inscrit en
    Août 2004
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2004
    Messages : 316
    Points : 300
    Points
    300
    Par défaut




    Je dois parfois envoyer jusque 20 mails, et je me sens pas de cliquer 20 fois sur ok pour envoyer le mail

    Ya une possibilité de contourner ça ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/06/2013, 08h30
  2. Réponses: 11
    Dernier message: 18/05/2010, 17h31
  3. Comment executer une liste de méthodes passées en argument
    Par Mengué georges dans le forum Langage
    Réponses: 11
    Dernier message: 01/10/2007, 17h33
  4. De la nécessité de la Programmation Orientée Objet
    Par kromartien dans le forum Langages de programmation
    Réponses: 123
    Dernier message: 13/07/2007, 14h57
  5. Méthode retournant deux arguments
    Par Anabel dans le forum Langage
    Réponses: 4
    Dernier message: 30/05/2006, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo