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 :

envoyer des lettres de relance automatique


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 312
    Points : 155
    Points
    155
    Par défaut envoyer des lettres de relance automatique
    Bonsoir,

    je bloque sur le problème suivante: J'ai créer une page ou sur clique sur un bouton, toutes les factures dont la date d'échéance est dépassé 's-affiche.

    je peux cocher le/les clients à qui je veux envoyé une lettre de relance.
    au même temps je change le code de fiabilité du client, aussi pour savoir si j'ai déjà envoyé une lettre de relance

    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
    Dim strSql As String
    Dim strUpd As String
     
    DoCmd.SetWarnings False
     
    strFacture = Me.Facture1
    strIdClient = Me.IdClient1
     
    If Me.chxRappel1 = 0 Then
        strSql = "UPDATE tbl_Factures SET tbl_Factures.Rappel = 0 WHERE (tbl_Factures.N°Fact = '" & strFacture & "');"
        DoCmd.RunSQL strSql
        MsgBox ("Votre commande à été executé!")
        GoTo Fin
    Else
        strSql = "UPDATE tbl_Factures SET tbl_Factures.Rappel = -1 WHERE (tbl_Factures.N°Fact = '" & strFacture & "');"
        DoCmd.RunSQL strSql
        MsgBox ("Votre commande à été executé!")
     
    End If
     
     
    Select Case Me.Code1
      Case "AAA"
      strSql = "UPDATE tbl_ClientFournisseur INNER JOIN tbl_Factures ON tbl_ClientFournisseur.CodeIdentifient = tbl_Factures.CodeIdentifient SET tbl_ClientFournisseur.Rappelstatus = 'AAB' " & _
      "WHERE (((tbl_ClientFournisseur.IdClient)= " & strIdClient & "));"
      DoCmd.RunSQL strSql
     
      Case "AAB"
      strSql = "UPDATE tbl_ClientFournisseur INNER JOIN tbl_Factures ON tbl_ClientFournisseur.CodeIdentifient = tbl_Factures.CodeIdentifient SET tbl_ClientFournisseur.Rappelstatus = 'ABB' " & _
      "WHERE (((tbl_ClientFournisseur.IdClient)= " & strIdClient & "));"
      DoCmd.RunSQL strSql
     
      Case "ABB"
      strSql = "UPDATE tbl_ClientFournisseur INNER JOIN tbl_Factures ON tbl_ClientFournisseur.CodeIdentifient = tbl_Factures.CodeIdentifient SET tbl_ClientFournisseur.Rappelstatus = 'BBB' " & _
      "WHERE (((tbl_ClientFournisseur.IdClient)= " & strIdClient & "));"
      DoCmd.RunSQL strSql
     
      Case "BBB"
      strSql = "UPDATE tbl_ClientFournisseur INNER JOIN tbl_Factures ON tbl_ClientFournisseur.CodeIdentifient = tbl_Factures.CodeIdentifient SET tbl_ClientFournisseur.Rappelstatus = 'BBB-' " & _
      "WHERE (((tbl_ClientFournisseur.IdClient)= " & strIdClient & "));"
      DoCmd.RunSQL strSql
    End Select
    Maintenant j'ai une bouton qui va m'ouvrir l'Etat Rappel.

    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
    Dim oDb As DAO.Database
    Dim oRst As DAO.Recordset
     
    strSql = "SELECT tbl_ClientFournisseur.IdClient, tbl_ClientFournisseur.Prénom, tbl_ClientFournisseur.Nom, tbl_ClientFournisseur.[e-mail], tbl_ClientFournisseur.Rappelstatus, " & _
    "tbl_Factures.N°Fact, tbl_Factures.Payé, Sum(tbl_Factures.MontantVirement) AS SommeDeMontantVirement, Sum(tbl_Factures.Port) AS SommeDePort, tbl_Factures.Rappel " & _
    "FROM tbl_ClientFournisseur INNER JOIN tbl_Factures ON tbl_ClientFournisseur.CodeIdentifient = tbl_Factures.CodeIdentifient " & _
    "GROUP BY tbl_ClientFournisseur.IdClient, tbl_ClientFournisseur.Prénom, tbl_ClientFournisseur.Nom, tbl_ClientFournisseur.[e-mail], " & _
    "tbl_ClientFournisseur.Rappelstatus, tbl_Factures.N°Fact, tbl_Factures.Payé, tbl_Factures.Rappel " & _
    "HAVING (((tbl_Factures.N°Fact) Like 'F*') AND ((tbl_Factures.Payé)=No) AND ((tbl_Factures.Rappel)=Yes));"
     
     
    Set oDb = CurrentDb
    Set oRst = oDb.OpenRecordset(strSql, dbOpenDynaset)
     
         If oRst.EOF Then
           MsgBox "il n'y à pas des clients sélectionné"
         Else
               Do While Not oRst.EOF
                 strEmailAddr = oRst(3)
                 strRappelstatus = oRst(4)
                 strFacture = oRst(5)
     
                 strBody = "Voir fichier attachez, svp" & Chr(13) & Chr(10) & Chr(10) & "Bien à vous" & Chr(13) & Chr(10) & Chr(10) & strSignature
     
                 Select Case strRappelstatus
                 Case "AAB"
                  strSubject = "Rappel 1"
                  DoCmd.OpenReport "EtatRappel1", acViewReport, , "[IdClient] = " & oRst(0), acWindowNormal
                 Case "ABB"
                   strSubject = "Rappel 2"
                   DoCmd.OpenReport "EtatRappel2", acViewReport, , "[IdClient] = " & oRst(0), acWindowNormal
                 Case "BBB"
                   strSubject = "Mis en demeure"
                   DoCmd.OpenReport "EtatRappel3", acViewReport, , "[IdClient] = " & oRst(0), acWindowNormal
                 End Select
     
                   oRst.MoveNext
               Loop
         End If
     
    oRst.Close: Set oRst = Nothing
    oDb.Close
    ça ouvre bien l'Etat avec le client souhaité avec ssfEtat les factures et les montant à échéance.

    Mais, quand je pousse sur le bouton Envoyer Mail, il ne change pas les données dans l'Etat et envoyé x-fois le même (la premier) Etat

    qqn peux me mettre sur le chemin comment je peux solutioner ce problème svp?

    Hans

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonjour,
    Désolé mais on ne comprend rien. Sur quels événements sont exécutés ces codes ?
    Citation Envoyé par Salsaboy60
    au même temps je change le code de fiabilité du client, aussi pour savoir si j'ai déjà envoyé une lettre de relance
    C'est pas clair du tout.
    Citation Envoyé par Salsaboy60
    Mais, quand je pousse sur le bouton Envoyer Mail, il ne change pas les données dans l'Etat et envoyé x-fois le même (la premier) Etat
    Et ça encore moins !

    Tu dois te douter que les contributeurs ne vont pas perdre du temps à décrypter ce que tu as voulu dire.
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

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

Discussions similaires

  1. Envoyer des mails automatiquement
    Par celine31190 dans le forum Outlook
    Réponses: 1
    Dernier message: 30/01/2015, 15h36
  2. [XL-2010] Erreur automation pour une macro envoyant des mails automatiquement
    Par MamZelle Coco dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/03/2014, 14h22
  3. Réponses: 17
    Dernier message: 06/04/2007, 11h53
  4. configurer sql pour envoyer des mails
    Par arwen dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/07/2003, 15h28
  5. Script pour envoyer des info a mysql
    Par rhum1 dans le forum Linux
    Réponses: 6
    Dernier message: 15/04/2003, 16h19

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