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

VBScript Discussion :

récupération de données d'une base données et envois de mail


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Points : 8
    Points
    8
    Par défaut récupération de données d'une base données et envois de mail
    Bonjour,

    J'ai une base de donnée contrats.mdb avec des contrats. Je voudrais faire un script .vbs qui renvois les informations des contrats (libellé + société) dans la table liste, et qui ensuite envois un mail a un utilisateur.
    Le but est d'éviter à l'utilisateur de lancer access et d'exécuter la requête.

    je suis bloqué pour récupéré les informations libellé + société et les mettre dans le mail.
    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
    Set conn = CreateObject("ADODB.Connection")
    ' Connect to the database
    strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\contrats.mdb"
    conn.Open strConnect
    Set RS=CreateObject("ADODB.Recordset")
    SQL="select liste.société, liste.libellé from liste where DateDiff('D', [date_fin], Date())" 
    Dim Nom
    Dim rapport
    set rapport = fso.CreateTextFile(filetext + ".txt")
    Set fso = CreateObject
    Filetext=Inputbox
    Nom=prestataire
    If D < 110 then
    Dim MAIL, CON
     
        Set MAIL = CreateObject("CDO.Message")
        Set CON = CreateObject("CDO.Configuration")
            'use the address of your outbound smtp server, i.e. mail.yahoo.com or smtp.google.com, etc.
        CON.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "192.168.7.1"
        CON.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
        CON.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        'CON.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "toto"
        'CON.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "windows2003"
        CON.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
        CON.Fields.Update
        Set MAIL.Configuration = CON
        MAIL.From = "tata@totosarl.com"
        MAIL.To = "titi@totosarl.com"
        'MAIL.CC = ""
        MAIL.Subject = "Contrat arrive à échéance dans trois mois"
        'MAIL.AddAttachment "d:\test.txt"  (je pensais mettre le résultat dans un .txt qui serait en pièce jointe)
        MAIL.TextBody = Nom
        MAIL.HTMLBody = "<p>Liste des contrats qui expire dans 3 mois</p>"
        MAIL.Send
    '    Set MAIL = Nothing
    '    Set CON = Nothing
    Ca fait depuis ce matin que j'essaye des trucs, mais aucun ne fonctionne.

    merci d'avance de votre aide.

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Je ne vois pas où tu exécutes ta requête SQL ?

    Il faut que tu utilises un recordset, puis tu boucles dessus (do while not rs.eof...)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par pc75 Voir le message
    Bonjour,

    Je ne vois pas où tu exécutes ta requête SQL ?

    Il faut que tu utilises un recordset, puis tu boucles dessus (do while not rs.eof...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set conn = CreateObject("ADODB.Connection")
    ' Connect to the database
    strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\contrats.mdb"
    conn.Open strConnect
    Set RS=CreateObject("ADODB.Recordset")
    '********************************************************
    SQL="select liste.société, liste.libellé from liste where DateDiff('D', [date_fin], Date())"
    '********************************************************
    l'envois du mail se fait bien

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Avec cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL="select liste.société, liste.libellé from liste where DateDiff('D', [date_fin], Date())"
    tu stocke juste ta requête SQL dans une variable ( SQL) rien de plus...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par bbil Voir le message
    Avec cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL="select liste.société, liste.libellé from liste where DateDiff('D', [date_fin], Date())"
    tu stocke juste ta requête SQL dans une variable ( SQL) rien de plus...
    ah oui, en fait je voudrais mettre les résultats de cette requête dans un .rtf

    ou le nom des prestataire dans le bodyhtml

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Points : 8
    Points
    8
    Par défaut
    Ca y est ca fonctionne enfin

    Merci de votre aide.

    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
    Set conn = CreateObject("ADODB.Connection")
    strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\CONTRATS.mdb"
    conn.Open strConnect
    Set RS=CreateObject("ADODB.Recordset")
    SQL="select * from liste WHERE liste.date_fin<=now()+110 And liste.date_fin>=(now()+103) order by liste.date_fin"
    'pour envoyer un mail au personnes concernées pour les contrats qui se terminent dans 110 jours et 103 jours
    rs.open SQL,Conn
     
    'debut de la condition de test de la requête si requête vide pas d'envois du mail
    if rs.EOF=false Then
    	rs.MoveFirst
    	Do While Not rs.EOF
    		prestataire=rs("prestataire")
    		datedebut=rs("date début")
    		datefin=rs("date_fin")
    		responsable=rs("responsable contrat")
    		html=html& "<TABLE border=1 CELLSPACING=0 CELLPADDING=0 width=400><TR><TD align=center colspan=2 bgcolor=gray>" & prestataire & "</TD></TR><TR><TD>Date Début</TD><TD>" & datedebut & "</TD></TR><TR><TD>Date Fin</TD><TD>" & datefin & "</TD></TR><TR><TD>Responsable</TD><TD>" & responsable & "</TD></TR></TABLE><BR><BR>"
    		rs.MoveNext
    		loop
    'le résultat de la requête sera contenu dans le corps du mail.
     
        Set MAIL = CreateObject("CDO.Message")
        Set CON = CreateObject("CDO.Configuration")
        CON.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "192.X.X.X"
        CON.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = XX
        CON.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        CON.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
        CON.Fields.Update
        Set MAIL.Configuration = CON
        MAIL.From = "toto@SARLy.com"
        MAIL.To = "alex65351@SARLy.com"
        MAIL.Subject = "Attention contrats arrivent à échéance dans trois mois"
        MAIL.HTMLBody = html
        MAIL.Send
     
    	Set MAIL = Nothing
        Set CON = Nothing
     
     
    end If
     
     
        Set RS=Nothing
        Set Conn=nothing

Discussions similaires

  1. [Débutant] transfert des données d'une base données mysql vers logiciel d'historisation de données
    Par thierry2012 dans le forum Accès aux données
    Réponses: 0
    Dernier message: 29/03/2012, 17h13
  2. Réponses: 3
    Dernier message: 10/03/2008, 23h43
  3. Réponses: 1
    Dernier message: 22/10/2007, 17h00
  4. Récupération de données d'une base access
    Par ologele dans le forum VB 6 et antérieur
    Réponses: 39
    Dernier message: 05/08/2006, 13h37
  5. Réponses: 6
    Dernier message: 16/06/2006, 14h20

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