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]problème de date dans une requete


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Points : 71
    Points
    71
    Par défaut [VBA-E]problème de date dans une requete
    bonjour à tous,

    je voudrais vérifier qu'une date est égale au mois d'aujourd'hui - 1 (donc janvier)

    quand je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MONTH(NOW()) & YEAR(NOW())
    ça marche bien, ça me renvoie les lignes qui correspondent au meme mois qu'aujourd'hui (donc février)
    mais quand je mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MONTH(NOW())-1 & YEAR(NOW())
    ça ne marche pas

    QQun qait il pourquoi???

    Merci

  2. #2
    Membre actif
    Avatar de repié
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    335
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 335
    Points : 281
    Points
    281
    Par défaut
    j'ai testé ton code chez moi en le mettant dans une variable string et il m'a bien donné :
    12006
    voila ce que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
    Dim montest As String
    montest = Month(Now()) - 1 & Year(Now())
    MsgBox (montest)
    End Sub
    tout simplement

    mais c'est peut être pas ce que tu veux?

  3. #3
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Points : 71
    Points
    71
    Par défaut
    non car en fait il me faut ça dans une requete microsoft query

    exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MONTH(table.champ) & YEAR(table.champ)=MONTH(NOW()) & YEAR(NOW())
    mais je le veux en -1 (pour janvier)

  4. #4
    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
    Tu es sûr du type de ton champ de données ?
    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CStr(Month(Now()) - 1) & CStr(Year(Now()))
    Si ça passe, le type n'est pas le bon...
    A tout hasard, sinon, je ne vois pas

    A+

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    dateserial(year(monchamp);month(monchamp);1)=dateserial(year(now));month(now());1)
    en plus rigolo à tester
    month(monchamp)+[entrez le décalage]

    il suffit d'entrer 1 ou -12 pour piloter le résultat

  6. #6
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Points : 71
    Points
    71
    Par défaut
    je viens d'essayer les 2, ça ne marche pas.

    quand je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MONTH(NOW())-1 & YEAR(NOW())
    dans une feuille excel ça me donne bien 12006

    mais dès que je la met dans une requete dans microsoft query, ça ne marche pas.

  7. #7
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Salut

    Et si au lieu de mettre Now() qui te donne date et heure tu prennais Date qui te donne que la date

    Est-ce que cela résoud ton problème

    Juste une idée comme cela en passant

    Igloobel

  8. #8
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Points : 71
    Points
    71
    Par défaut
    j'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MONTH(DATE)-1 & YEAR(DATE)
    ça me met

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MONTH('DATE')-1 & YEAR('DATE')
    donc il connait pas

    et j'ai essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MONTH(DATE())-1 & YEAR(DATE())
    et là j'ai carrément une erreur, il connait pas

  9. #9
    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
    Je ne sais pas si tu peux le faire mais as-tu essayé de passer par une variable ?

    Juste une idée

  10. #10
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Points : 71
    Points
    71
    Par défaut
    Le problème c'est que je ne fais que des requetes, ya pas de code derrière donc pas de variable, enfin je ne sais pas si c'est possible.

  11. #11
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Salut,

    Je suis désolé que cela ne marche pas
    La seule chose que je peux te dire c'est qu' en VBA Excel ce code marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
         dat_jour = Date
        mois_date = Month(Date)
        mois_date = Month(Date - 1)
        mois_lib = MonthName(Month(Date), True)
    Maintenant comme c'est une requête avec microsoft query et ça je n'ai jamais utilisé je ne peux pas t'aider plus.

    juste un dernier point es-tu obligé de faire une requête ne peux-tu pas le faire en VBA

    Bon courage

    Igloobel

    Ps : Si ici tu ne trouve pas de réponse peut-être que les copain du forum SQL (langage) peuvent te répondre eux !

  12. #12
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Points : 71
    Points
    71
    Par défaut
    merci de ton aide, je vais voir ça.
    pour le forum sql, je me suis fait jeté car ils m'ont dit que c'était du excel.

  13. #13
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Attend,

    je viens de relire ton premier post

    Citation Envoyé par tu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MONTH(NOW())-1 & YEAR(NOW())
    et si tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MONTH(NOW()-1) & YEAR(NOW())
    Est-ce que cela marche mieux

    Cette fois ci c'est ma dernière idée

    Igloobel

  14. #14
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Points : 71
    Points
    71
    Par défaut
    en relisant ton poste je viens justement de l'essayer.
    malheureusement au lieu de me donner 12006 il me donne 22006
    il ne fait pas le -1

    je comprend pas pourquoi, c'est vraiment très bizarre

  15. #15
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Aujourd'hui nous somme le 24 a mon avis il faut retrancher 24
    et tu auras 12006
    sous VBA (désolé je ne maitrise pas query) il me faut retrancher 24 pour avoir le mois de janvier

    Si tu veux le mois n-1 tu peux encore essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (MONTH(NOW())-1) & YEAR(NOW())

  16. #16
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Points : 71
    Points
    71
    Par défaut
    non j'avais essayé déjà mais ça ne marche pas, je désespère

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

Discussions similaires

  1. [AC-2010] Format Date dans une requete SQL en VBA
    Par tveniere dans le forum Access
    Réponses: 2
    Dernier message: 02/04/2021, 11h54
  2. [oracle][delphi] Problème format de date dans une requete
    Par le_parrain dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/07/2005, 10h12
  3. ajouter 1 mois à une date dans une requete
    Par alain.lc dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 04/04/2005, 12h05
  4. [SQL] Conditions sur une date dans une requete
    Par poufouille dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/03/2004, 14h25
  5. test la valeur d'une date dans une requete
    Par TuxP dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 14h53

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