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 :

Script vbs de comparaison


Sujet :

VBScript

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

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut Script vbs de comparaison
    Bonjour a tous.

    Je cherche a faire un script .vbs qui compare dans une base de donnée (située dans le C:/Contrats.mdb)la date fin a la date d'aujourd'hui. Dès que la différence entre la date aujourd'hui et la date fin = 90 jours envois d'un mail a toto@XXYY.com.

    Le script pour l'envoi du mail semble fonctionnait.

    Je ne suis pas un pro de la programmation.
    Merci pour vos conseil.

    Alexandre.

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

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

    Pour la différence entre deux dates, c'est la fonction DateDiff()

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

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

    Pour la différence entre deux dates, c'est la fonction DateDiff()
    Pour se connecter a la base de données?

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

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim date_fin
    dim d
    date_fin = "2/29/2009"
    DateDiff(d,Date(),date_fin)
    if d<=90 then
    msgbox"il reste"
    end if

    J'ai fais ce script mais il ne fonctionne pas, je n'arrive pas à trouver le problème.

    Comment je peux faire pour me connecter a la base de données, pour aller récupérer la date_fin?
    Merci.

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim date_fin
    Dim Differance
    date_fin = "30/03/2009"
    Differance = DateDiff("d", Date, date_fin)
    If Differance <= 90 Then
    MsgBox "il reste " & Differance & " jour(s)"
    End If
    date_fin = "2/29/2009", en 2009, il n'y a que 28 jours en février
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

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

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    ok merci

  7. #7
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Citation Envoyé par Alex65351 Voir le message
    ok merci
    Si c'est resolu, il te faut utiliser le bouton
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

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

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    résolue pas totalement car j'essaie de me connecter a la base de donnée, date_fin est une valeur récupérée dans cette base de donnée dans le c:\ et à comparer avec la date d'aujourd'hui.
    Je suis noob en développement.

  9. #9
    Membre chevronné Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Par défaut
    t'es allé visiter la FAQ?

    Y a pleins d'informations pour t'aider, notamment pour les connexions aux bdd.

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

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    j'ai lu la FAQ et rien trouver, en cherchant dans google j'ai trouvé quelque chose avec DSN_BASE

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Re,

    Regarde ADODB.Recordset

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

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    voila le script, j'ai pris la fonction 'chemin' (d'après ce que je comprend elle cherche le chemin de la sur un autre script, dans le where après la connexion a la BDD je sais pas quoi mettre.
    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
    Function chemin(a)
    test=Split(a,"\")
    For i=LBound(test) To UBound(test)-1
    If i=0 Then
    chemin=chemin & test(I)
    Else
    chemin=chemin & "\" & test(I)
    End if
    Next
    chemin=chemin & "\"
    End Function
    Function ajuste(text,caractere1,caractere2)
    tt=Split(text,caractere1)
    For i=LBound(tt) To UBound(tt)
    If i<>0 Then
    out=out & caractere2
    End if
    out=out & UCase(Left(tt(i),1)) & lcase(Right(tt(i),Len(tt(i))-1))
    Next
    ajuste=out
    End Function
    La suite
    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
    '----------
    'connexion
    DSN_BASE= "DBQ=" & chemin(wscript.ScriptFullName) & "base de donnée.mdb" & ";driver={Microsoft Access Driver (*.mdb)};driverId=25"
    Set CONN = createobject("ADODB.Connection")
    CONN.open DSN_BASE
    Set RS=CreateObject("ADODB.Recordset")
    SQL="select * from liste where "
    Differance = DateDiff("d", Date, date_fin)
    If Differance = 90 Then
    '-------------
    'envoi du mail
    Set MAIL.Configuration = CON
        MAIL.From = "nana@totosarl.com"
        MAIL.To = "titi@totosarl.com"
        'MAIL.CC = ""
        MAIL.Subject = "Testing CDO"
        MAIL.AddAttachment "d:\test.txt"
        MAIL.TextBody = "Dans 90 jours le contrat s'expirera"
        'MAIL.HTMLBody = "<p>This is the sample body for the message</p>"
        MAIL.Send
    End If
     
    Rs.open Sql, conn
     
        Set MAIL = Nothing
        Set CON = Nothing

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Re,

    Une piste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DSN_BASE= "DBQ=" & chemin(wscript.ScriptFullName) & "base de donnée.mdb" & ";driver={Microsoft Access Driver (*.mdb)};driverId=25"
    Set rs = CreateObject("ADODB.recordset")
    SQL="select * from liste where DateDiff("d", Date, date_fin) >= 90 "
    rs.open SQL, DSN_BASE, 1, 3
    Et pour l'envoi d'un mail regarde CDO

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

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    ok merci, je vais voir la chose, c'est plus compliqué que je croyais.

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

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    ou sinon je pensais faire une requête
    SELECT *
    FROM liste
    WHERE DateDiff("d", now(), date_fin) = 90;

    et la lancer de manière automatisée, je pense que ca serait plus simple, non??

    la il trouve un erreur ici caractère 42
    Set rs = CreateObject("ADODB.recordset")

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

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    bonjour, j'ai réussi a faire fonctionné l'envoi du mail
    Mais il y a que cette erreur qui me bloque, vous auriez pas une idée?

    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
    Function chemin(a)
    test=Split(a,"\")
    For i=LBound(test) To UBound(test)-1
    If i=0 Then
    chemin=chemin & test(I)
    Else
    chemin=chemin & "\" & test(I)
    End if
    Next
    chemin=chemin & "\"
    End Function
    Function ajuste(text,caractere1,caractere2)
    tt=Split(text,caractere1)
    For i=LBound(tt) To UBound(tt)
    If i<>0 Then
    out=out & caractere2
    End if
    out=out & UCase(Left(tt(i),1)) & lcase(Right(tt(i),Len(tt(i))-1))
    Next
    ajuste=out
    End Function
    '---------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'condition
    DSN_BASE= "DBQ=" & chemin(wscript.ScriptFullName) & "base de donnée.mdb" & 
     
    ";driver={Microsoft Access Driver (*.mdb)};driverId=25"
    Set rs = CreateObject("ADODB.recordset")
    SQL="SELECT * FROM liste WHERE DateDiff("d", now(), date_fin) >= 90; "
    rs.open SQL, DSN_BASE, 1, 3

  17. #17
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Mais il y a que cette erreur qui me bloque
    Quelle erreur, à quelle ligne ?

    Si c'est l'ouverture conditionnelle de ta BD et/ou l'ouverture de ta table, regardes ce code et essais d'adapter, chez moi, sur une base qui me sert a faire des essais pour repondre au questions posées sur ce forum, sa fonctionne
    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
    dim ConnDataBase
    dim TablES1
    dim CheminNomDelabase
    dim NomDeLaTable
    dim SQL
    dim DateMaxFin  'pour comparer avec Champ4DateTime
    dim T
     
    '***** à adapter ***************************************
    CheminNomDelabase = "C:\PersoFrancis\BDpourEssais.mdb"
    NomDeLaTable = "Principal"
    '***** fini à adapter **********************************
     
    Set ConnDataBase = createobject("ADODB.Connection")
    SQL="PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source= " & CheminNomDelabase & ";"
    ConnDataBase.open SQL
     
    DateMaxFin = now() + 90
    Set TablES1=CreateObject("ADODB.Recordset")
    SQL="select * from " & NomDeLaTable & " where Champ4DateTime >= #" & DateMaxFin & "#"
    TablES1.open SQL, ConnDataBase, 3, 2
     
    'pour debug, enumeration des enregistrements
    for t = 1 to TablES1.RecordCount
     msgbox TablES1.fields("Champ4DateTime")
     TablES1.MoveNext
    next
     
    TablES1.Close
    ConnDataBase.Close
    Bien sûr il faut adapter, ce code renvoi x nombre d'enregistrement en comparent le champ Champ4DateTime avec la variable DateMaxFin
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

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

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    ok merci je vais voir ca, il me sortait une erreur a ligne 26 caractère 42

    error EXpected end of Statement

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/12/2005, 13h39
  2. Script VBS - Focus garder la fenêtre en premier plan
    Par Furius dans le forum VBScript
    Réponses: 4
    Dernier message: 12/12/2005, 23h27
  3. Réponses: 2
    Dernier message: 19/07/2005, 14h14
  4. Probleme recuperation d'une valeur : script vbs -> .bat
    Par pinpin_du_net dans le forum Windows
    Réponses: 3
    Dernier message: 10/05/2005, 12h43
  5. Imprimer un fichier texte avec un script vbs
    Par Persons dans le forum Windows
    Réponses: 3
    Dernier message: 23/12/2004, 16h47

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