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 :

Référence Outlook pour un front-end [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Homme Profil pro
    Apprendre
    Inscrit en
    Avril 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Apprendre
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 147
    Points : 175
    Points
    175
    Par défaut Référence Outlook pour un front-end
    Bonjour,

    Mon problème est le suivant:

    J'ai une base front end/back end. 5 utilisateurs utilisent le front end. Par contre, lorsque j'utilisent la fonction d'envoi de courriel via Access, dépendamment du poste, la référence de bibliothèque est soit Microsoft Outlook 14.0 ou Microsoft Outlook 15.0.

    J'imagine que ça dépend de la version d'Outlook. Par contre mon problème est que si je choisit la référence 15.0 sur mon poste, cela enlève l'accès à la référence 14.0 et donc fait planter Access pour ceux dont la version demande la 14.0.

    Y-a-t'il moyen d'intégrer les deux références pour éviter ce genre de problème?

    Merci

  2. #2
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,
    Arrête moi si je me trompe, ce que tu appelles, fron end/back end, c'est le dorsale/frontale ? (je suis une bille en anglais ^^).
    En ce qui concerne ton problème, effectivement, tu devrais choisir les deux références en même temps (ce qui est impossible je crois) ou alors ne choisir aucune référence (ça c'est possible)

    Ce qu'il faut faire :
    Step One : décocher la référence outlook
    Step Two : Utiliser ce genre de code pour générer un mail avec Outlook :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub EnvoyerMail()
        Dim appOutlook As Object
        Dim objOutlook As Object
     
        Set appOutlook = CreateObject("Outlook.Application")
        Set objOutlook = appOutlook.createitem(0)
     
        With objOutlook
            .To = "g.dolige@en1clic.fr"
            .display
        End With
    End Sub
    Explications :
    En choisissant des variables de types Object, je peux leur attribuer n'importe quel type d'objet.
    Le CreateObject me permet d'utiliser Outlook et avec le createitem(0), je créé un nouveau mail.
    Le reste se fait comme avec la référence.

    C'est du latebinding ou je sais plus comment cela s'appelle.

    Cordialement,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  3. #3
    Membre habitué
    Homme Profil pro
    Apprendre
    Inscrit en
    Avril 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Apprendre
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 147
    Points : 175
    Points
    175
    Par défaut
    Bonjour,

    C'est effectivement la fonction que j'utilise, avec une variante pour aller chercher une liste de contacts. Par contre, j'aurais aimé faire appel à la version d'Outlook lors de l'appel de la fonction et y référer la bonne bibliothèque ou référence.

    Pour référence, si quelqu'un d'autre souhaite avoir la fonction, je met la mienne avec l'ajout d'un état et la gestion des emails par groupe, à ajuster au besoin.

    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
    Sub EnvoiCourriel2(fichierJoint As String, Courriel As String, Courriel1 As String, Objet As String)
     
    Dim olApp As Outlook.Application
    Dim olMail As MailItem
    Dim RS As Recordset                         ' Identifier le recordset
    Dim Valeurchamp As String                   ' Adresse courriel
    Dim i As Integer                            ' Itérateur
    Dim CourrielMain As String                  ' Pour le BCC du courriel
    Set olApp = New Outlook.Application
    Set olMail = olApp.CreateItem(olMailItem)
     
    ' Générer liste de contact pour le CCI
    Set RS = CurrentDb.OpenRecordset("SELECT [AdresseCourriel],[groupe] FROM Usager WHERE [Groupe]='SAV'", dbOpenDynaset)
     
    ' Démarrer le compteur
    i = 1
     
    ' tant que la fin du recordset n'est pas atteint
    While Not RS.EOF
     
        ' Récupérer valeur de champ Courriel
        Valeurchamp = Nz(RS.Fields("AdresseCourriel"), "")
     
        ' Vérifier l'état du compteur
        If i = 1 Then
            CourrielMain = Valeurchamp
        Else
            CourrielMain = CourrielMain & ";" & Valeurchamp
        End If
     
        ' Suivant
        i = i + i
     
        ' Passer à l'enregistrement suivant
        RS.MoveNext
     
    ' Jusqu'à la fin du recordset
    Wend
     
    With olMail
        .To = Courriel
        .CC = Courriel1
        .BCC = CourrielMain
        .Subject = Objet
        .Attachments.Add fichierJoint
        .Display
        '.Send
    End With
     
    Set olMail = Nothing
    Set olApp = Nothing
     
    End Sub
    Pour l'instant, j'ai contourné le problème en créant une frontale pour chaque usager, ce qui n'est pas l'idéal pour une mise à jour du code

    Merci

  4. #4
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,
    La solution que je te proposais permettait d'éviter le problème de références.
    J'ai développé pour mon entreprise une base de données en dorsale/frontale et comme on peut avoir n'importe quelle version d'Office sur nos postes, il était plus que conseillé d'oublier cette histoire de références et de faire du late binding (ça doit être le nom).
    Le principe de ceci est de tout passer en objet, ce qui évite de faire appel aux références de la base de données et d'avoir des conflits car la version la plus récente sera prise en compte.
    De plus, lors de mes essais (rapides), dans le cas où deux versions sont connectées en même temps, il y aura conflit je crois.

    Il me semble qu'il y a un tutoriel là-dessus sur le forum et les modifications à apporter sur l'intégralité du code, sont plutôt rapides et simple dans la majorité des cas.

    Cordialement,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  5. #5
    Membre habitué
    Homme Profil pro
    Apprendre
    Inscrit en
    Avril 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Apprendre
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 147
    Points : 175
    Points
    175
    Par défaut
    bonjour,

    Je viens de tester, effectivement, j'avais pas saisi la subtilité

    Merci, ça corrige mon problème!

  6. #6
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/05/2012, 19h10
  2. Quelle référence inclure pour Outlook ?
    Par ThunderBolt_ dans le forum VBA Access
    Réponses: 3
    Dernier message: 12/07/2007, 13h00
  3. Ou trouver un front-end freeware pour MSDE ?
    Par Assimil dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/06/2005, 22h14
  4. Front End graphique pour GDB sous windows
    Par KORTA dans le forum GDB
    Réponses: 8
    Dernier message: 20/08/2003, 09h52

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