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 :

[AC + OUTLOOK 2010] Fermer fenêtre mail sans sauvegarde si non envoyé


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [AC + OUTLOOK 2010] Fermer fenêtre mail sans sauvegarde si non envoyé
    Bonjour à tous et toutes, après maintes recherches et prise de tête, je poste ici pour le première fois.
    Contexte : Je développe une application sous AC 2010 avec envoi de d' Émail via Outlook, en automatique avec .SEND tout fonctionne bien. Sauf que cette fois ci j'ai besoin de laisser la main aux utilisateurs et j'utilise .DISPLAY. Si l' utilisateur envoi effectivement le mail pas de soucis non plus.
    Mon problème : Si l'utilisateur n'envoie pas le mail et ferme le message, une fenêtre Mcrosoft Outlook apparait demandant "Enregistrer les modifications ?" Oui, Non Annuler.
    Ma question : existe t'il une commande pour désactiver ce message et fermer sans enregistrer, du style DisplayAlert ou SetWarnings ? ou est il possible de contrôler l'action du bouton fermer de l'item outlook concerné ?
    Merci.
    Ci-dessous un bout de mon 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
    Sub Envoi_EmailSynthese()
     
    Dim oEmail As Outlook.MailItem
    Dim oOutLook As Outlook.Application
     
    On Error GoTo Gestion_Erreur1
    Set oOutLook = New Outlook.Application
    Set oEmail = oOutLook.CreateItem(olMailItem)
        ' Les paramètres du message
    oEmail.To = "adresse.fr"
    oEmail.Subject = "Synthèse Annuelle "
    oEmail.Body = "Bonjour," 
    oEmail.Display
     
    Gestion_Erreur1:
        MsgBox "Opération Annulée !" & Chr(10) & "Email non envoyé", vbExclamation
        Exit Sub
        Set oEmail = Nothing
        Set oOutLook = Nothing

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Il semble qu'il existe une instruction de suppression.

    Donc tu n'empècherai pas l'enregistrement mais tu le supprimerai en sortant.

    Essaye-toi.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Autre idée, si c'est possible, enregistre une macro dans Outlook qui fait cela : création puis suppression et vois ce que cela génère comme code.

    Quand cela marche, c'est généralement une bonne piste.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Bonjour à tous les 2 et aux forumeurs.

    Je pense qu'à partir du moment ou le mail est affiché, c'est outlook qui a la main. Donc c'est sur Outlook qu'il faut agir,sur une procédure évennementielle Close de l'élément olMail.
    Dans un module de classe Outook:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public WithEvents myItem As Outlook.MailItem
     
    Public Sub Initalize_Handler()
    	Set myItem = Application.ActiveInspector.CurrentItem
    End Sub
     
    Private Sub myItem_Close(Cancel As Boolean)
    	If Not myItem.Saved Then
     	  ' myItem.Save 'enregistre sans confirmation
                myItem.Close olDiscard 'ferme sans enregistrer
    	End If
    End Sub
    Alors si tu veux exeptionnellement pouvoir enregistrer le mail dans les brouillons, il faudra utiliser la petite disquette .
    L'exemple est tiré de l'aide Outlook, j'ai testé, ça marche.
    Cdlt

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci à vous 2 pour vos réponses.
    Effectivement comme le dit Thierry, c'est Outlook qui à la main.... Et le code de Thierry fonctionne depuis Outlook en direct mais....pas depuis Access. Il y a toujours la fenêtre qui s'affiche avec la demande d'enregistrement. Même en modifiant les options Outlook sur l'enregistrement des brouillons.

    Ce n'est pas grave et je ne vais pas me focaliser la dessus, il y a plus important que ce "détail".
    L'idéal serait de pouvoir intercepter le code du bouton fermer du "nouveau message" si l'utilisateur clic dessus et ce depuis access avec mailItem par exemple....

    Je me re-pencherai dessus à tête reposée lorsque j'aurai fin ce programme, mais si vous avez des idées je suis preneur.

    Bon, la semaine se termine, alors bon weekend à toutes et tous.

  6. #6
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Si tu visionnes le mail, c'est bien pour y faire quelque chose ?! en étant sur Outlook !
    Si c'est pour rajouter du texte dans le message, ou un destinataire supplémentaire que tu veux ouvrir le mail (via .display), on peut le faire en vba
    depuis access sans ouvrir le mail. Donc Access garde la main.
    Cdlt

  7. #7
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850
    Par défaut
    Bonjour.
    J'ai essayé ce matin, çà marche....à un détail pret: Outlook était déjà ouvert .
    Cdlt

Discussions similaires

  1. [XL-2007] Envoi classeur par mail sans sauvegarde
    Par Halo2550 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/05/2013, 19h56
  2. instruction: fermer fichier excel sans sauvegarder
    Par nynho dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/01/2008, 14h59
  3. Réponses: 1
    Dernier message: 27/06/2006, 17h39
  4. Réponses: 6
    Dernier message: 30/05/2006, 22h41
  5. PB ouvrir outlook et création de mail sans l'envoyer
    Par adelhuille dans le forum Access
    Réponses: 2
    Dernier message: 06/01/2005, 16h37

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