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 :

Envoi de mail via Lotus Notes


Sujet :

Access

  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Points : 59
    Points
    59
    Par défaut Envoi de mail via Lotus Notes
    Bonjour à tous,

    Après recherches sur le forum j'ai trouvé des posts où l'on donne le code pour créer un module afin de pouvoir envoyer des mails par Lotus Note depuis Access, mais cela ne correspond pas totalement à ce que je souhaiterai.
    Ce que j'aimerai c'est que lorsqu'il y a un nouvel enregistrement dans une table, cela provoque l'envoi d'un mail vers des adresses mails, avec pour message toujours la même chose "Nouvel enregistrement à consulter".

    Je ne sais pas si j'ai été claire...

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 465
    Points : 549
    Points
    549
    Par défaut
    Bonjour,
    si je comprends bien, ce que tu cherches, c'est un trigger c-à-d. que dès qu'une ligne est ajoutée à une table, Access lance un évènement et cet évènement serait un email Lotus Notes.
    Malheureusement, MS Access 2007 n'a pas de trigger comme c'est le cas dans une vraie base de données (type SQL serveur). Essaye peut-être avec MS Access 2010 ou 2013.
    L'autre solution sera d'utiliser un truc qui par détour te donnera un résultat similaire. Par exemple :
    - Si les lignes sont ajoutées à partir d'un formulaire, peux-tu ajouter du code à ce formulaire pour appeller ta function Email.
    - Peux-tu attendre ? Dans ce cas, on peut imaginer d'avoir toutes les 30 secondes une revue de la table.
    - Connais-tu l'événement On Timer / Timer interval des Formulaires ? (ouvrir un formulaire en Design View / voir la fenêtre Properties / selectionner le Form / voir onglet Event) Tu pourrais créer un évènement On Timer toutes les 30 secondes et rendre ce petit formulaire invisible en arrière plan.

    Il y a sans doute d'autres possibilités pour un esprit créatif...

  3. #3
    Membre du Club
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Points : 59
    Points
    59
    Par défaut
    Bonjour,

    Alors oui mes données viennent de la saisie à partir d'un formulaire. Je pourrais donc appeler la fonction Email sur le bouton d'enregistrement de la saisie.
    Le temps d'attendre? non.. Les personnes font leurs demandes et quittent l'application.

    J'ai trouvé ce 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
    48
    49
    50
    51
    52
    53
    Public Function send_mail(ByVal Subject As String, ByVal Body As String, ByVal keep As Boolean) As Boolean
     
    Dim Database As Object 'The mail database
    Dim Username As String 'The current users notes name
    Dim MailDbName As String 'THe current users notes mail database name
    Dim MailDoc As Object 'The mail document itself
    Dim AttachME As Object 'The attachment richtextfile object
    Dim Session As Object 'The notes session
    Dim EmbedObj As Object 'The embedded object (Attachment)
    Dim test As Boolean
     
    On Error GoTo Label4
    Set Session = CreateObject("Notes.NotesSession")
     
    Username = Session.Username
    Set Maildb = Session.GETDATABASE("", MailDbName)
    If Maildb.ISOPEN = True Then
    'Already open for mail
    Else
    Maildb.OPENMAIL
    End If
    Set MailDoc = Maildb.CREATEDOCUMENT
    MailDoc.Form = "Memo"
    MailDoc.sendto = [mailto:mail des destinataires]
    MailDoc.Subject = "Base d'intervention interne: nouvelle demande"
    MailDoc.Body = "Une nouvelle demande a été faite."
    MailDoc.SAVEMESSAGEONSEND = keep
     
    Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", ActiveWorkbook.FullName, "Attachment")
    MailDoc.PostedDate = Now()
    res = MsgBox("Votre email est prêt à être envoyé "Confirmation")
    If res = vbYes Then
    MailDoc.SEND (False)
    Else
    send_mail = False
    Exit Function
    End If
    'Clean Up
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachME = Nothing
    Set Session = Nothing
    Set EmbedObj = Nothing
     
     
    send_mail = True
    Exit Function
     
     
    Label4:
    send_mail = False
     
    End Function
    On demande la confirmation d'envoi du mail, ce que je ne souhaite pas. Je veux que ceci soit transparent pour l'utilisateur. Mais également que l'envoi du mail soit basé sur la valeur d'un champ. Exemple si le type = 1 envoyer le mail à intel@maboite.fr, si type=2 envoyer à unetelle@maboite.fr.

    Pourriez-vous m'aider à paramétrer le code?
    Merci en tout cas de votre aide

  4. #4
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 465
    Points : 549
    Points
    549
    Par défaut
    Bonjour,

    As-tu bien regardé cette ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Function send_mail(ByVal Subject As String, ByVal Body As String, ByVal keep As Boolean) As Boolean
    Entre les parenthèses, se trouvent des variables. La function/Sub en amont qui appelle cette function Send_mail lui procure une variable keep qui est un booléen. En lisant plus bas tu comprends que ce booléen sert à spécifier si on garde ou pas une copie de l'email envoyé.

    Maintenant que tu sais comment faire passer des variables à une function, tu peux très bien étendre cette ligne pour y include l'adresse email de la personne à qui tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Function send_mail(ByVal Subject As String, ByVal Body As String, ByVal keep As Boolean, ByVal strDestinataire As String) As Boolean
    Le code que tu as trouvé sur internet est déjà prévu pour utiliser un contenu de message et un intitulé de message defini en amont. Regarde bien ces lignes de ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MailDoc.sendto = [mailto:mail des destinataires]
    MailDoc.Subject = "Base d'intervention interne: nouvelle demande"
    MailDoc.Body = "Une nouvelle demande a été faite."
    MailDoc.SAVEMESSAGEONSEND = keep
    C'est ici que les variables sont (ou devraient être) utilisées.

    Notes :
    1. Tu vas devoir spécifier la base de données Lotus Notes qui sert à envoyer les messages. C'est ici que cela se passe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim MailDbName As String 'THe current users notes mail database name
    MailDbName = "JulesCesar.nsf"
    Or, chaque utilisateur Lotus Notes a sa propre boîte email. En d'autres mots, tu ne peux pas installer ce code sur plusieurs ordinateurs, tu dois connaître le nom de la boîte email de l'utilisateur qui envoie l'email. Si tu connais ces noms, tu peux éventuellement les envoyer comme variable dans la ligne Function(.....)

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/05/2014, 23h15
  2. Envoi de mail via Lotus note
    Par Theranthil dans le forum VBA Access
    Réponses: 4
    Dernier message: 24/04/2008, 11h17
  3. Envoi de mail via lotus notes
    Par titof90 dans le forum VBA Access
    Réponses: 13
    Dernier message: 26/06/2007, 13h28
  4. envoi de mail via Lotus Notes 6 a partir d'excel
    Par gilbisti dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/06/2007, 13h41

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