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 :

Access / mailing pour carte fidélité


Sujet :

Access

  1. #41
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Mes meilleurs vœux à Newby74 et tous ceux qui suivraient encore,

    Voici l’algorithme qui permet de calculer la ristourne, dans sa mouture actuelle.

    Les commentaires inclus dans le code doivent te permettre de comprendre le raisonnement qui aboutit, quel que soit le cas, au bon résultat (un algorithme, c’est ça).

    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
    Public Function Ristourne(Achats As Double) As Double
    Dim rst As Recordset, TrancheSup As Double, RistourneTrancheSup As Double, _
             PalierMax As Double, nbreDeTranchesSup As Integer
    ' on se crée une série d'enregistrements Palier/Ristourne,
                                     'classés dans l'ordre croissant des paliers
    Set rst = CurrentDb.OpenRecordset("SELECT tParametresRistourne.Palier," _
                               & "tParametresRistourne.Ristourne " _
                               & "FROM tParametresRistourne " _
                               & "ORDER BY tParametresRistourne.Palier;")
      'le 1er palier est-il atteint ?
         's'il n'est pas atteint --> la ristourne = 0 et on sort
      If Achats < rst("palier") Then Ristourne = 0: Exit Function
         'si un palier est atteint, on lance une boucle qui va lire chaque enregistrement
          ' on cumule les ristournes, tant que le montant des achats reste > au palier lu
      Do Until rst.EOF
           If Achats >= rst("palier") Then
              Ristourne = Ristourne + rst("Ristourne")
           Else
              Exit Function
           End If
         rst.MoveNext
      Loop
      'On arrive ici, si achats > palier maximum
      ' tranches supérieures au plafond
    PalierMax = DMax("Palier", "tParametresRistourne")
    TrancheSup = DLookup("ResultatNum", "tAutresParametres", "Argument=""TrancheSup""")
    RistourneTrancheSup = DLookup("ResultatNum", "tAutresParametres", "Argument=""RistourneTrancheSup""")
    nbreDeTranchesSup = Int((Achats - PalierMax) / TrancheSup)
    Ristourne = Ristourne + nbreDeTranchesSup * RistourneTrancheSup
    End Function
    ----------------

    Voici la nouvelle présentation du formulaire frm_Client

    ----------------

    Il est temps de faire le point.
    Mon intention n’est pas de faire le boulot à ta place, je voudrais à l’aide d’exemples sur un cas concret, te donner le goût d’approfondir tes connaissances en Access. Apprendre en faisant.

    J’ignore quels sont tes progrès depuis le 23/12.
    Avant de continuer, je voudrais savoir.
    Voici deux questions. Tes réponses me permettront de me faire une idée.

    1ère question :
    Imagine que tu adaptes la règle des ristournes.
    La nouvelle règle c’est :
    palier 500 ---> 15€
    palier 1000 ---> 20€
    au-delà : 40€, par tranche de 1.000€ d’achat supplémentaire.
    Quelles modifications apportes-tu ?

    2ème question :
    Ecris une fonction qui donne, pour un vendeur quelconque, le total des ventes réalisées depuis le début.

    A bientôt.
    Images attachées Images attachées  
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  2. #42
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Points : 12
    Points
    12
    Par défaut Access
    Bonjour et bonne année, bonne santé et tout ce qui va avec!

    Question 1:

    Je supprime tout les pallier excepté le 500 et 1000 de la table parametresristourne, je modifie les ristournes leur correspondant ===> 15 et 20.

    Ensuite direction la table autresparametres et je met 1000 dans tranche sup.

    Question 2:

    Me.zdttotalventevendeur1 = Nz(DSum("Num_MontantAchat", "tVentes", _ "Id_Vendeur=" & Id_Vendeur)

    Suis-je un bon élève? Ou suis-je à coté de la plaque?


    NB: Dans le formulaire il manque un bouton pour enregistrer les achats. Est-ce automatique (au quel cas il y a un bug) ou il faut le mettre?

  3. #43
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Suis-je un bon élève? Ou suis-je à coté de la plaque?
    Mes réponses, dans l'ordre : oui, non.

    Pour la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function CAVendeur(idVendeur As Long)
    CAVendeur = Nz(DSum("Num_MontantAchat", "tVentes", "Id_Vendeur=" & idVendeur), 0)
    End Function
    -------------

    NB: Dans le formulaire il manque un bouton pour enregistrer les achats. Est-ce automatique (au quel cas il y a un bug) ou il faut le mettre?
    L'enregistrement est automatique.
    Change d'enregistrement ou ferme le formulaire, tu le constateras.

    Faut-il autre chose ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  4. #44
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Points : 12
    Points
    12
    Par défaut Access
    J'ai testé avec de réelles données, tout semble marcher parfaitement.
    Je vais juste retoucher le visuel de l'interface pour rendre l'ensemble moins brut. Le graphisme c'est plus mon domaine .

    J'en reviens donc se soir au sujet initial de mon appel à l'aide.

    J'ai vu que vous avez inséré un module de courriel, pouvez m'en expliquer l'usage? J'ai regardé et je pense en avoir compris le principe mais la question est comment rendre cette fonction automatique?

    Cela aiderait à mettre au point un outil pour
    1° préparer les éléments à envoyer (texte du message, pièces jointes...)
    2° sélectionner les clients concernés (tous, ceux qui ont une ristourne > à x €, ceux qu'on n'a plus vus...)
    3° envoyer les mails.

    Je dispose d'un modèle Outlook (comprenant un jpeg ou est inscrit le message ex "vous bénéficiez dès votre prochain achat de 5€/15€/... d'avoir") pour chaque pallier, pour les anniversaires.
    Pour la suite c'est la que j'ai besoin d'aide.

  5. #45
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    J'ai vu que vous avez inséré un module de courriel
    Distraction de ma part ! C'est un bout de code qui servira sans doute de base, mais qui n'est pas au point.
    ------------------

    Pour alimenter la réflexion, il me semble que les points suivants devraient être abordés :

    1° Déterminer à qui on envoie
    ----> avoir un module qui permet de sélectionner les clients que l’on veut contacter, suivant les circonstances.
    Par exemple un formulaire de recherche multicritère qui permet d’opérer la sélection « sur mesure ». Telle que :
    - les clients qui ont eu leur anniversaire,
    - ceux qui habitent à tel endroit,
    - ceux qui ont un tel montant d’achat ou de ristourne…

    2° Composer le texte du message
    - partie fixe : la même chose pour tous les destinataires
    - partie personnalisée : civilité, montant de l’avoir…
    - pièces jointes…

    3° Pouvoir vérifier avant l’envoi, pour détecter des erreurs éventuelles

    4° L’envoi proprement dit (le clic sur un bouton)

    5° La gestion des retours : adresses incorrectes, boîtes pleines, demande de radiation …
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  6. #46
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Points : 12
    Points
    12
    Par défaut Access
    Bonsoir,

    L'idée d'un formulaire pour trier les destinataires est une bonne voie je pense.

    Voici comment je vois les choses:
    - Il faudrait programmé des "profils" prédéfinis et les listés dans une liste déroulante sur un formulaire.
    - Dans ce même formulaire faire figurer la liste des personnes sélectionnées ( pour la vérification avant envoie).
    - Ajouter un bouton d'envoi dans le formulaire.

    Les profils:
    - Anniversaire ( sélectionne les client ayant eu leur anniversaire dans la semaine)
    - Capital Avoir Heb. ( sélectionne les client ayant dépensé dans la semaine )
    - Capital Avoir Mens. ( sélectionne tout les client pour leur rappeler leur capital actuel)
    - Mail de masse (sélectionne tout le monde pour divers mailing, nouvelle collection que arrive, pré-soldes...)

    Au final tout serait manuel mais déjà programmé donc gain de temps.
    Le mieux serait de tout automatiser mais il est vrai qu'il n'y aurai aucune vérification avant envoi.

    _________________________________

    Au niveau du contenu des messages, est-il possible de créer un JPEG (cela fait plus propre que du texte brut) comme partie fixe et d'insérer un texte à un endroit prédéfinit dessus comme partie personnalisée?

    Je dispose déjà de la partie fixe mais reste la partie personnalisée (Civilité, Nom, capital avoir) dont je ne sais pas comment l'attribuer pour chaque client auquel on envoi un mail.

    _________________________________

    Niveau gestion des retours je peux gérer cela simplement depuis la boite mail, nous la consultons régulièrement donc si il y un quelqu'onque problème je le réglerai manuellement.

    Qu'en pensez-vous?

  7. #47
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonsoir,

    Je dispose déjà de la partie fixe
    Peux-tu poster ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  8. #48
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Points : 12
    Points
    12
    Par défaut Access
    Peux-tu poster ?
    Voici la partie fixe en JPG. L'idéal serait d'inclure la civilité et le nom en haut puis le capital avoir au centre.
    Images attachées Images attachées  

  9. #49
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,


    Je n’ai pas expérience dans ce domaine.

    Poste une demande du style :

    « J’utilise tel programme pour confectionner une image.
    Je voudrais que cette image contienne un texte paramétrable.
    Ce paramètre serait fourni par Access.
    Quelqu’un aurait-il un bout de code ou une autre idée ? »

    Il serait étonnant qu’aucun devnaute ne se manifeste.

    Bonne chance.

    Ps faites le ---> faites-le
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  10. #50
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Points : 12
    Points
    12
    Par défaut Access
    Bonsoir,

    Après quelques tests je constate que mon Outlook ne marche pas... Il ne fais que recevoir et n’envoie pas.

    Est-il possible de m'expliquer comment avancer sur le formulaire d'envoi et sous formulaire de vérification, et de créer les profils?

    Ainsi le temps que je répare ce problème tout sera presque prêt.

  11. #51
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    Après quelques tests je constate que mon Outlook ne marche pas
    Quels tests ?

    Est-il possible de m'expliquer comment avancer sur le formulaire d'envoi et sous formulaire de vérification, et de créer les profils?
    Laisse-moi un peu de temps !


    Poste une demande du style :

    « J’utilise tel programme pour confectionner une image.
    Je voudrais que cette image contienne un texte paramétrable.
    Ce paramètre serait fourni par Access.
    Quelqu’un aurait-il un bout de code ou une autre idée ? »
    Où en es-tu ?
    Essaie d'être prêt avant que je te propose la suite.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  12. #52
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    hello
    ayant déjà modifié du HTML pour faire du corps de message graphique personnalisé, je tiens le code à votre disposition.
    En gros, il s'agit d'insérer <-- Nom --> dans le HTML pour ensuite pouvoir le remplacer par le nom de la personne.
    il suffit ensuite de se mettre d'accord sur les balises et sur le champ utilisé pour les remplacer. (on peut même mettre tout ça dans une table)
    -------------------Simplifi----------comme si tout était simple--------

  13. #53
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Points : 12
    Points
    12
    Par défaut Access
    Bonsoir,

    Laisse-moi un peu de temps !
    Sans problèmes, excusez moi hier Outlook m'a énervé du cou j’étais un peu "speed"!

    Quels tests ?
    J'ai du faire un mailing hier sur Outlook sur autre chose pour mon entreprise et sa ne fonctionnait pas, mais problème résolu c'était simplement que l'email était un peu lourd donc il prenait du temps à s'envoyé!

    Poste une demande du style :

    « J’utilise tel programme pour confectionner une image.
    Je voudrais que cette image contienne un texte paramétrable.
    Ce paramètre serait fourni par Access.
    Quelqu’un aurait-il un bout de code ou une autre idée ? »
    J'ai posté ce soir une demande, hier je n'ai pas eu le temps.

    ==> http://www.developpez.net/forums/d10...e-via-outlook/

    hello
    ayant déjà modifié du HTML pour faire du corps de message graphique personnalisé, je tiens le code à votre disposition.
    En gros, il s'agit d'insérer <-- Nom --> dans le HTML pour ensuite pouvoir le remplacer par le nom de la personne.
    il suffit ensuite de se mettre d'accord sur les balises et sur le champ utilisé pour les remplacer. (on peut même mettre tout ça dans une table)
    Hello Simplifi, je suis loin d'être un as du html. Peux-tu expliquer en détail ton message précédent?

    Bonne soirée.

  14. #54
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    Voici un 1er jet.


    Intuitivement, tu devrais comprendre comment utiliser.
    Je reviendrai plus tard pour la documentation technique, après tes remarques.
    Images attachées Images attachées  
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  15. #55
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Points : 12
    Points
    12
    Par défaut Access
    Bonjour,

    Mes remarques:

    - Peut-on ajouter une possibilité de supprimer certain destinataires? système de case à cocher avec un bouton "supprimer".

    - Est-il possible de faire un bouton pour extraire les cibles manuellement sous excel ou word pour faire un mailing manuellement ? ( au cas ou Outlook boguerai )

    - Le montant des avoirs apparaît-il déjà dans les mails automatiquement, ou il reste encore à le mettre? Je n'ai vu aucune fonction concernant cet aspect, peut-être l'ais-je ratée?

    - Enfin pour modifier la formule de politesse, la prise de congé etc.. Il ne s'agit que d'une simple zone de texte à modifié si nécessaire si j'ai bien compris?

    Sinon la forme est différente de ce que je pensais mais c'est bien sa que je cherchais!

    En utilisant cet outils hebdomadairement je devrais avoir un bon suivi client.


    ____________________________

    Je revien à la base en elle-même, je profite de vous et vous en remercie (^_^).

    Y a-t-il un moyen de créer un raccourcis sur le bureau Windows qui lancerai directement le formulaire client de notre base? et un autre pour le formulaire Courriel?

    J'ai montrer la base aux caissières du magasin puisque ce seront elles qui vont l'utiliser, elles préféreraient qu'un bouton enregistrer apparaisse à coter des cases "montant" "date" "ristourne". L'enregistrement automatique semble les gêner.

    Enfin existe-t-il une fonction permettant de faire en sorte que la base se sauvegarde (fasse une copie d'elle même) dans un autre dossier automatiquement?
    Au cas ou l'ordinateur plante et ne redémarre jamais.

  16. #56
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Points : 12
    Points
    12
    Par défaut access
    Bonsoir,

    J'ai été absent durant un moment du forum pour des raisons personnelles préoccupantes.

    Je viens donc aux nouvelles pour reprendre la ou nous nous étions donc arrêté.

    Pouvons nous reprendre à mon dernier poste?

    Je rajoute au passage que j'ai détecté un bogue dans le formulaire d'envoi de mail:
    Le débogage m'indique une erreur au niveau de "MonMessage.send" lorsque je tente d'envoyé un mail sur mon adresse en créant un client avec mon email.

    Encore une fois je vous remercie de m'aider.

  17. #57
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut Formulaire Envoi Courriel
    Présentation



    Le formulaire frm_Courriel se compose de deux parties :

    • à gauche, le sous-formulaire sfrm_Destinataires : on y prépare la liste des mails à envoyer ;
    • à droite, le sous-formulaire sfrm_message : on y construit le message proprement dit.
    1 sfrm_Destinataires
    Trois boutons permettent de construire la liste des destinataires.
    - les clients qui ont eu leur anniversaire récemment
    Le clic va déclencher l’exécution d’une requête qui positionnera à « OUI » le champ [AnnivRecent] dans la table tClients.
    Une fonction permet de déterminer les clients concernés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Function AnnivRecent(DateNaissance As Date, Delai As Integer) As Boolean
    If Date - DernierAnniversaire(DateNaissance) <= Delai Then
      AnnivRecent = True
    Else
      AnnivRecent = False
    End If
    End Function
    Son principe est simple : une date et un nombre de jours sont passés en paramètres.
    La fonction renvoie « True » (en fait -1) si, par rapport à aujourd’hui, la date donnée est située dans l’intervalle donné.

    Cette fonction est utilisée comme ceci dans la requête :



    Remarquez qu’on positionne [FlagEnvoi] à « OUI »

    Le sql de cette requête est construit comme ceci, dans le code associé au clic du bouton :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    sql = "UPDATE tClients SET tClients.AnnivRecent = " _
            & "AnnivRecent([Dte_DateNaissance]," _
            & DLookup("ResultatNum", "tAutresParametres", "Argument=""NbreJrsAnnivRecent""") _
            & "), tClients.FlagEnvoi = -1 " _
            & "WHERE (((tClients.Dte_DateNaissance) Is Not Null) " _
            & "AND ((tClients.Txt_Email) Is Not Null));"
    Remarquez que le paramètre Nombre de jours n’est pas codé directement. Il est logé dans la table tAutresParametres. On le récupère avec une fonction de domaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DLookup("ResultatNum", "tAutresParametres", "Argument=""NbreJrsAnnivRecent""")
    Lorsque le flag [AnnivRecent] a été positionné, on va construire la requête source du sous-formulaire sfrm_Destinataires.



    - les clients qui ont fait des achats récemment
    On procède exactement de la même façon que pour le cas précédent.

    - tous
    Idem sauf qu’on sélectionne tous les clients qui possèdent une adresse [Txt_Email].

    N.B. L’utilisateur peut décocher des clients pour neutraliser leur sélection.

    2 sfrm_message
    Trois zones permettent de composer certaines parties du message :
    • le sujet ;
    • le corps ;
    • l’attache éventuelle (avec recherche assistée du fichier à joindre).
    La formule d’en-tête personnalisée et de prise de congé est codée en « dur » dans le processus « Envoyer les Messages ».

    3 Processus d’envoi des messages avec Outlook

    On construit un message en récupérant les données du sous-formulaire sfrm_message.
    On y ajoute :
    - un en-tête personnalisé : Bonjour [civilité] [Prénom] [Nom] ;
    - une formule fixe de prise de congé ;
    - l’information du montant de ristourne disponible.


    Voici le code, associé au clic sur le bouton.
    J’y ai inclus des commentaires qui doivent permettre à des débutants de comprendre le processus.
    C’est l’occasion de rappeler l’utilisation de la touche <F1> : sélectionner un mot de code et enfoncer la touche <F1>, l’aide d’Access s’ouvre à la bonne page.

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Private Sub btEnvoyer_Click()
    Dim Reponse As Integer
    Dim ListeAdresses As Recordset, i As Integer
    Dim MonOutlook As Object, MonMessage As Object, Destinataires As String
    Dim Attachement As String, Personnalisation As String, Body As String, MsgRistourne As String
    'Actualiser le sous-formulaire Destinataires
    Me.sfrm_message.Form.Refresh
    'demande de confirmation d'un envoi sans fichier attaché
    If IsNull(Me.sfrm_message!Attachements) Then
         Reponse = MsgBox("Vous envoyez un mail sans attacher un fichier?", vbYesNo + vbCritical + vbDefaultButton2, _
            "!!! Absence de fichier attaché !!!")
           If Reponse = vbNo Then Exit Sub
    Else
    Attachement = Me.sfrm_message!Attachements
    End If
    'Aménager un recordSet avec les destinataires
    Set ListeAdresses = Me.sfrm_Destinataires.Form.RecordsetClone
    'Compter les messages à envoyer
    ListeAdresses.MoveFirst
    While Not ListeAdresses.EOF
        ' on ne compte que les destinataires cochés
        If ListeAdresses("FlagEnvoi") = -1 Then i = i + 1
        ListeAdresses.MoveNext
    Wend
    'demande de confirmation de l'envoi
    Reponse = MsgBox("Voulez-vous vraiment envoyer " _
                      & i & " messages ?", _
                        vbYesNo + vbCritical + vbDefaultButton2)
    If Reponse = vbNo Then Exit Sub
    If i = 0 Then Exit Sub
    'Aménagement de l'attachement éventuel
    If Not IsNull(Me.sfrm_message!Attachements) Then Attachement = Me.sfrm_message!Attachements
    'Aménagement du corps paramétrable
    If Not IsNull(Me.sfrm_message!Ligne1) Then Body = Me.sfrm_message!Ligne1
    If Not IsNull(Me.sfrm_message!Ligne2) Then Body = Body & Chr(13) & Chr(10) _
                       & Me.sfrm_message!Ligne2
    If Not IsNull(Me.sfrm_message!Ligne3) Then Body = Body & Chr(13) & Chr(10) _
                       & Me.sfrm_message!Ligne3
    If Not IsNull(Me.sfrm_message!Ligne4) Then Body = Body & Chr(13) & Chr(10) _
                       & Me.sfrm_message!Ligne4
    'aménagement de la formule de prise de congé
    Body = Body & Chr(13) & Chr(10) & "A Bientôt." & Chr(13) & Chr(10) & "L'équipe SportStyle"
    'ouvrir une session outlook
    Set MonOutlook = CreateObject("Outlook.Application")
     
    'Boucle d'envoi
    ListeAdresses.MoveFirst
    While Not ListeAdresses.EOF
        Set MonMessage = MonOutlook.createitem(0)
        MonMessage.To = ListeAdresses("Txt_Email")
        MonMessage.Subject = Nz(Me.sfrm_message!Sujet, " ")
         'personnalisation de la formule de politesse
        Personnalisation = "Bonjour " & ListeAdresses("txt_Civilite") & " " _
                   & ListeAdresses("Txt_Prenom") & " " _
                   & ListeAdresses("Txt_Nom") & "," _
                   & Chr(13) & Chr(10) & Chr(13) & Chr(10)
         'personnalisation du message Ristourne
        MsgRistourne = "Votre ristourne s'élève actuellement à € " & ListeAdresses("Ristourne")
     
          'composition de corps
        MonMessage.Body = Personnalisation & Body _
                 & Chr(13) & Chr(10) & Chr(13) & Chr(10) & MsgRistourne
         'Aménagement de l'attachement éventuel
        If Attachement <> "" Then MonMessage.Attachments.Add Attachement
         'envoi du message
        MonMessage.send
         'boucler
        ListeAdresses.MoveNext
    Wend
    'fermer Outlook
    Set MonOutlook = Nothing
    Set ListeAdresses = Nothing
    Set MonMessage = Nothing
    End Sub
    --------------------------

    Je rajoute au passage que j'ai détecté un bogue dans le formulaire d'envoi de mail:
    Le débogage m'indique une erreur au niveau de "MonMessage.send" lorsque je tente d'envoyer un mail sur mon adresse en créant un client avec mon email.
    Je n’ai pas ce problème. Peut-être les paramètres de ton Outlook.
    --------------------------

    Y a-t-il un moyen de créer un raccourci sur le bureau Windows qui lancerait directement le formulaire client de notre base? et un autre pour le formulaire Courriel?
    Tu trouves tout ici :

    - options de démarrage de la ligne de commande
    http://loufab.developpez.com/tutorie...lignecommande/

    Cordialement.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  18. #58
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Points : 12
    Points
    12
    Par défaut Access
    Bonsoir

    Alors j'ai regardé l'ensemble, fais des test etc.. Tout semble fonctionner excepté 2 points:

    - la dé-sélection ne fonctionne pas.
    - le bug "MonMessage.send" erreur 287 subsiste mais uniquement lorsqu'il n'y a aucune attache ( pièce jointe)
    - les message sont-ils envoyés en CCi? Afin de ne pas faire figurer les adresses de tout le monde.

    Sinon aucun problème, pour les raccourcis je me débrouille!

  19. #59
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    - la dé-sélection ne fonctionne pas.
    Désolé pour cette erreur : (manquait le test pour by-pass des décochés).
    Correction en annexe.

    le bug "MonMessage.send" erreur 287 subsiste mais uniquement lorsqu'il n'y a aucune attache ( pièce jointe)
    J'ai retesté : chez moi c'est OK avec ou sans pièce jointe.


    les messages sont-ils envoyés en CCi? Afin de ne pas faire figurer les adresses de tout le monde.
    Les messages sont adressés individuellement. Sans CC ni CCi.
    Fichiers attachés Fichiers attachés
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  20. #60
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Points : 12
    Points
    12
    Par défaut Access
    Bonjour,

    Excusez moi du temps de réponse c'est les soldes et j'ai du travail en masse au magasin!

    A priori tout marche sur la dernière version de la base. J'ai toutes les options qu'il faut, je vais donc tester le tout au travail avec les vrai données dès que possible.

    Je vous redis juste après s'il n'y à pas de problèmes de dernières minutes!

    Sinon un grand MERCI pour votre aide sans lequel je me serait probablement planté.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/11/2005, 22h30
  2. Driver pour carte reseau d`un portable toshiba
    Par redabadache3 dans le forum Dépannage et Assistance
    Réponses: 2
    Dernier message: 24/11/2005, 17h47
  3. Programme audio (microphone) pour carte Embarquée
    Par littlesquall dans le forum C
    Réponses: 9
    Dernier message: 20/10/2005, 09h16
  4. [Mail] Pour faire une newsletter ?
    Par Thierry8 dans le forum Langage
    Réponses: 1
    Dernier message: 19/09/2005, 21h59
  5. table acces champ mail pour mailing ???
    Par jockey1 dans le forum Access
    Réponses: 3
    Dernier message: 17/09/2005, 21h19

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