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

VBA Access Discussion :

Interrompre méthode sendobject (envoi mail et PJ) [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 56
    Par défaut Interrompre méthode sendobject (envoi mail et PJ)
    Bonjour à tous,

    J'ai un petit souci avec la méthode sendobject. Voici le code que j'utilise pour préparer un mail avec une pièce jointe (état en PDF).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SUITE:
     
    DoCmd.SendObject acSendReport, "E_commande", acFormatPDF, , , , "Commande " & abrégé, "Bonjour," & Chr(13) + Chr(10) & "Merci de bien vouloir enregistrer la commande ci-jointe, sous la référence " & abrégé, True
    FIN:
    End Sub
    Mon souci est que l'utilisateur peut avoir besoin d'aller chercher l'adresse du destinataire sur son ordinateur, internet ou sur une autre base de données. Or, tant que le message n'est pas envoyé, le fenêtre Outlook "Nouveau message" est modale, c'est à dire qu'on ne peut pas accéder aux autres programmes.

    Ma question est donc : y a t il un moyen d'interrompre la méthode sendobject afin que mon nouveau message avec pièce jointe ne soit pas fermé et que l'utilisateur puisse quand même basculer sur d'autres fenêtres ? Voici les pistes que je suis en train d'explorer :

    • Provoquer une erreur (j'ai une gestion d'erreur qui me renvoie à FIN
    • Mettre en place une temporisation (aller vers FIN: à la fin du temps imparti)
    • Changer de méthode ?


    Voila j'espère que j'ai été clair dans mon explication !! D'avance merci pour les piste et solutions que vous pourrez m'apporter !

    Cordialement,
    Pierre

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Outlook "Nouveau message"
    De quelle fenêtre s'agit-il ?

    L'idéal est d'user de la référence à Outlook et sa méthode Send...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 56
    Par défaut
    Bonjour Argy,

    Il s'agit de la fenêtre d'outlook dans lequel figure mon nouveau message (et sa PJ) qui a été créé par la méthode sendobject. Je peux modifier le message dans cette fenêtre, mais tant que le message n'est pas envoyé, le code continue de tourner et m'empêche d'accéder aux autres fenêtres et aux autres programmes

    J'avais initialement pensé à utiliser la référence Outlook mais j'avoue que le fait de devoir programmer la génération de mon état en PDF puis de l'ajouter en pièce jointe m'a fait un peu peur, alors que la méthode sendobject fait ca très bien toute seule !

    D'autre part (je vais aller vérifier cela), est ce que la référence outlook fonctionnera pour mes utilisateurs ayant outlook express ?? (Sendobject y arrive en tout cas)

    Merci en tout cas pour la piste, je vais creuser un peu plus de ce côté là. Si quelqu'un voit un autre moyen, je suis toujours preneur !!!

    Pierre

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 56
    Par défaut
    J'ai finalement suivi ton conseil, et ça marche maintenant !! J'ai utilisé la source de la FAQ (par Etienne Bar) qui se trouve ici : http://access.developpez.com/faq/?page=Outlook#outlook en modifiant un peu la fin : j'ai remplacé le par , comme cela il m'affiche le message sans l'envoyer et l'utilisateur peut aller chercher un adresse dans d'autres applications.

    Voici donc mon bout de code :
    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
    47
    '------- ci dessous on récupère le chemin d'accès au bureau de l'utilisateur, puis on génère le nom complet (avec chemin d'accès + nom du fichier + ".pdf")
        Dim Wsh As WshShell
        Dim cheminbureau As String
        Dim nomfichierPDF As String
        Set Wsh = New WshShell
        cheminbureau = Wsh.SpecialFolders.Item("Desktop")      'répertoire du Bureau
        nomfichierPDF = cheminbureau & "\CDES envoyées par mail\Commande " & abrégé & ".pdf"
        Set WshShell = Nothing
     
        On Error GoTo err
        Dim oFSO As Scripting.FileSystemObject
        Dim oDrv As Drive
        Dim oFld As Folder
     
        'Instanciation du FSO
        Set oFSO = New Scripting.FileSystemObject
        'Crée le repertoire
        Set oFld = oFSO.CreateFolder(cheminbureau & "\CDES envoyées par mail")
     
    err:
     
     
    '--------- on crée le pdf qui sera enregistré selon le chemin d'accès généré ci dessus
        DoCmd.OutputTo acOutputReport, "E_commande", acFormatPDF, nomfichierPDF
     
    '-------- instruction SQL permettant de récupérer l'adresse mail du contact tiers sélectionné sur le formulaire
    strSQL = "SELECT [T_contacts tiers].Email FROM [T_contacts tiers] GROUP BY [T_contacts tiers].Email, [T_contacts tiers].ID_contact_tiers HAVING ((([T_contacts tiers].ID_contact_tiers)= " & Me.ID_contact_tiers & "))"
     
    '-------- on parcourt le résultat de la requête avec le recordset pour sélectionner l'adresse mail
    Set rst = CurrentDb.OpenRecordset(strSQL)
    If IsNull(rst("Email")) Then
    Adresse_Mail = ""
    Else
    laposition = InStr(1, rst("Email"), "#mailto:", vbBinaryCompare)
        'rst("Email") est ce que l'on récupère de la requête : sous la forme moi@adm.fr#mailto:moi@adm.fr#
        'Avec inst, on trouve l'emplacement dans la chaîne de caractères de #mailto:", cela nous donne la position de # (dans l'exemple cette position est 11)
        'Puis ci dessous on récupère juste la partie qui nous intéresse : l'adresse mail
    Adresse_Mail = Left(rst("Email"), laposition - 1)
    End If
    rst.Close
    Set rst = Nothing
     
        'on appelle la fonction placée dans le module "envoi cde_mail", avec les bons paramètres
    Call CreateEmail(Adresse_Mail, "Commande " & abrégé, "Bonjour," & Chr(13) + Chr(10) & "Merci de bien vouloir enregistrer la commande ci-jointe, sous la référence " & abrégé, nomfichierPDF)
     
    fin:
    End Sub
    Voili voilou, encore une fois je ne peux que m'incliner et remercier énormément le forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Envoyer 2 états au sein du même mail avec la méthode sendobject
    Par steffe33 dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/11/2014, 17h34
  2. Ajouter des pieces jointes sur ma méthode d'envoi de mail
    Par aitiahcene dans le forum Langage
    Réponses: 2
    Dernier message: 01/07/2013, 10h00
  3. [AC-2007] Pb envoi mail avec sendobject
    Par Alain7751 dans le forum VBA Access
    Réponses: 0
    Dernier message: 29/03/2010, 11h02
  4. Problème envoi mail avec SendObject
    Par quanou dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/09/2008, 20h34
  5. pb envoi mail CDONTS
    Par flatron dans le forum ASP
    Réponses: 2
    Dernier message: 30/12/2003, 16h23

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