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

Macros et VBA Excel Discussion :

[VBA-E] Comparaison date / datetime


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Points : 35
    Points
    35
    Par défaut [VBA-E] Comparaison date / datetime
    Bonjour,

    Je travail en vba sous excel sur une bd mysql.

    J'ai un problème avec mes dates, dans ma base j'ai un champs qui est au format datetime, et je souhaiterai effectuer une requete en vba sur ce champ avec seulement une date mais pas d'heure.

    En sql j'ai obtenu le code suivant qui marche parfaitement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          SQL =    "select SUM(quantite) as 'prix_total_vente'
          from       vente
          where      date_format(jour_select, '%d-%m-%Y')='11-03-2006'"
    Mais par contre en vb ca ne marche pas du tout et j'ai pas réussi à trouver sur le net

    Avant j'avais utilisé une formule qui marchait quand le champs de la base était au format date:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jour_select='" + Format$(date_test, "dd/mm/yyyy") + "'"
    @++

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    En sql, je ne sais pas mais en VBA, tu dois utiliser Cdate(Ledonnée)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LaDate = Format(cdate(Ladonnée),"dd/mm/yyyy")
    Tu dis

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    Bonjour après avoir trituré tout ca, j'ai obtenu ceci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL = "
    select       SUM(quantite) as 'prix_total_vente' 
    from         vente
    where      " & Format$(Cells(4, 1).Value, "dd-mm-yyyy") & " = 
                   '" & Format(CDate(Jour_select), "dd-mm-yyyy") & "'"
    Maintenant lorsque j'exécute je n'ai plus d'erreur de compilation, mais ca ne marche tjs pas. Lorsque je fait afficher la requête j'obtiens ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select SUM(quantite) as 'prix_total_vente' 
    from vente 
    where 11-03-2006 = '30-12-1899'
    Mais je ne sais pas ou c'est qu'il a trouvé cette date 30-12-1899, car dans ma base je n'ai inséré que 11-03-2006 comme champs pour tester ma requête

    Lorsque je met vente.Jour_select pour voir s'il prend bien la colonne de la table, j'ai une erreur comme quoi il n'y a pas d'objet

  4. #4
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Jour_select est vide ou =0 >> 30-12-1899

  5. #5
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Mais je ne sais pas ou c'est qu'il a trouvé cette date 30-12-1899
    1900 est l'année de référence d'Excel.
    30-12-1899 devrait normalement être la date de 2 jours avant le 01/01/1900 ! (donc -2) ... Comprends pas !

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonjour à tous

    sans garantie , tu peux tester en modifiant le format Date

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(CDate(Jour_select), "mm-dd-yyyy")

    bonne journée
    michel

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Oui, ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(CDate(Jour_select), "yyyy-mm-dd")
    ... à tout hasard aussi...

    A+

  8. #8
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par MSDN
    expression de date
    Toute expression pouvant être interprétée comme une date. Ceci comprend toute combinaison de littéraux de date, de nombres ou de chaînes ressemblant à des dates, et de dates retournées par des fonctions. Une expression de date est limitée aux nombres ou chaînes, sous toute forme de combinaison, qui représentent une date comprise entre le 1er janvier 100 et le 31 décembre 9999.
    Les dates sont enregistrées comme partie d'un nombre réel. Les valeurs à gauche de la virgule représentent la date, tandis que les valeurs à droite représentent le temps. Les valeurs négatives correspondent aux dates antérieures au 30 décembre 1899.
    j'en reviens dons a ce que je disais plus haut
    ce n'est pas un pb de format, c'est le paramètre Jour_select qui est =0 !!!

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    Je viens de tester les différentes modification du format et rien ne fonctionne.

    Le problème viendrais du fait que poura lui jour_select est une variable et ne le reconnais pas comme étant élément de table vente

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    OUAIS g réussi enfin

    vla le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SQL = "SELECT SUM( quantite ) AS 'prix_total_vente' 
    FROM       vente 
    WHERE    date_format( jour_selec, '%d-%m-%Y' ) = 
                  '" & Format$(date_test, "dd-mm-yyyy") & "'"

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

Discussions similaires

  1. Comparaison date et datetime
    Par Kropernic dans le forum Développement
    Réponses: 13
    Dernier message: 23/01/2012, 16h28
  2. [VBA-E]Comparaison de date
    Par Bernardtapis dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/03/2006, 21h54
  3. [VBA]excel comparaison de chaine de caractere
    Par ogenki dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/01/2006, 15h32
  4. [Dates] problème Comparaison dates
    Par gwen-al dans le forum Langage
    Réponses: 4
    Dernier message: 06/01/2006, 11h24
  5. Problème de select sur une date (DATETIME....)
    Par zeldoi5 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/05/2005, 11h19

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