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

Access Discussion :

Probleme requete Date Vba Access [AC-2007]


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 12
    Points
    12
    Par défaut Probleme requete Date Vba Access
    Bonjour,

    Voila j'ai une table produit avec les champs suivant : Produit, CRM, CAP_APD, Date_Debut, Date_Fin

    La clé de cette table est (Produit,Date_debut) sachant qu'un meme produit a des infos CRM et CAP_APD qui changent en fonction des dates.

    Dans un formulaire je recupere le nom du produit et la date.

    Mon but est d'utiliser une requete sql sous vba qui me renvoie un seule ligne mais je galere au niveau du test de la date

    En gros ma requete donne ca mais je comprend pas pourquoi elle ne me renvoie rien.

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Set db = CurrentDb
    strSQL = "SELECT * FROM Tbl_Produit  "
    strSQL = strSQL & " WHERE [Produit]=  '" & Produit_2 & "' and [Date_Debut]<= '" & Date_2 & "' and  [Date_Fin]>= '" & Date_2 & "'  "
    Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)
    Or quand je compile ca me donne une erreur a la derniere ligne du fait que la requete ne donne pas le résultat qu'elle devrait donner.

    Quelqu'un a une idée ?

    Merci d'avance.

    Cyrille

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 612
    Points
    58 612
    Billets dans le blog
    11
    Par défaut
    Une piste, en VBA c'est le format anglais MMDDYY, donc il faut faire attention que toutes les dates soient formatées en anglais...

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    J'ai formaté toute les date en Format français grace à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(Now, "dd/mm/yyyy")
    Donc je doute que ce soit un probléme de format.

    Merci quand meme pour la réponse :=)

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 612
    Points
    58 612
    Billets dans le blog
    11
    Par défaut
    Tu devrais utiliser la fonction CDate, dans tes requêtes et dans le code VBA.

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Merci de cette intuition mais CDate n'a rien changé à mon probléme..

    J'ai affiché la date sous vba pour vérifier et elle est bien du meme format que celle dans la table. Je pense que c'est une erreur dans la raquete en elle même, je suis pas sure qu'elle fasse vraiment ce que je veux, c'est à dire trouver la ligne ou la date récupérer est entre les deux dates.

    Merci

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Comme indiqué par Zoom61 (que je salue au passage), c'est un problème de format de date.
    Sous VBA, les dates utilisées sont au format US. Qu'importe si vous paramétrez toutes vos dates dans votre DB au format français (et ce n'est que du formatage), les données dates sont lues au format US, donc le variable Date_2 doit passer au format US comme proposé dans la section du FAQ ici

    Un code comme ci-dessous devrait faire l'affaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set db = CurrentDb
    strSQL = "SELECT * FROM Tbl_Produit  "
    strSQL = strSQL & " WHERE [Produit]=  '" & Produit_2 & "' and [Date_Debut]<= #" & Format(Date_2,'mm/dd/yyyy') & "# and  [Date_Fin]>= #" & Format(Date_2,'mm/dd/yyyy') & "#  "
    Set rst = db.OpenRecordset(strSQL, dbOpenDynaset)
    et vous avez oublié les # - croisillons pour indiquer que ce sont des dates.

    Cordialement
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Ah oui je comprend mieux maintenant, je vous remercie tout les deux.

    Bonne continuation.

    a+

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

Discussions similaires

  1. [XL-2010] [VBA] Probleme Requete SQL Excel -> Access
    Par Polycraft dans le forum Excel
    Réponses: 3
    Dernier message: 08/06/2015, 07h43
  2. Réponses: 7
    Dernier message: 26/04/2008, 10h48
  3. probleme requete date
    Par damiano84 dans le forum SQL
    Réponses: 3
    Dernier message: 29/05/2007, 16h01
  4. Probleme de date sur access
    Par DjBeGi dans le forum Access
    Réponses: 3
    Dernier message: 29/05/2006, 18h00
  5. Problem de Date (Delphi/Access)
    Par mobeida dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/04/2005, 18h14

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