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

Requêtes et SQL. Discussion :

récupéré une date dans une liste déroulante [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut récupéré une date dans une liste déroulante
    Bonjour,
    je suis nouveau sur le forum et novice dans Access 2007.
    Je construit une base de données, et j'aurais besoin d'aide ...

    Voilà dans un formulaire, j'ai deux listes déroulantes faisant appel à une table contenant des dates de mesures (nommée tblDate)

    Mon but est que l'utilisateur puisse filtrer les mesures entre une date minimum et une date maximum.

    Donc l'utilisateur sélectionne ces 2 dates grâce aux deux listes déroulante..
    j'ai donné les noms DateMin et Datemax pour ces deux listes.

    et ensuite j'en étais à créer une requête afin de filtrer ma table tblDate...
    Mais impossible de récupérer la valeur sélectionnée par l'utilisateur

    Si je fait demande les dates avant 1995 et que je tape
    * < #01/01/1995# ça marche bien....
    * mais impossible de récupérer la valeur dans DateMin
    avec < [DateMin]

    Merci beaucoup pour votre aide car là je bloque

  2. #2
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    (Re) Bonjour...


    euh après un test avec une valeur numérique toute bête...
    je me rend compte que ce n'est pas le format de la date qui pose problème...

    Mais tout simplement que je n'arrive pas à récupérer la valeur indiquée par l'utilisateur (dans une zone texte par exemple)...
    et afin afin de l'utiliser comme critère dans une requête

    PS: je précise j'utilise pas VBA, mais acces pour définir mes requêtes

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Points : 80
    Points
    80
    Par défaut
    tes données sont variables, il serait plus facile de passer par VBA, dans ce cas la propriété Value des zones de liste déroulante te renverraient la valeur de celles-ci

    pour la récupérer dans la variable DateMin par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateMin = Me.[Le nom de ta liste].Value
    s'il s'agit d'une zone de liste Non déroulante, tu peut passer par la propriété ListIndex, qui te renvoie la valeur du champ selectionné dans la liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateMin = Me.[Le nom de ta liste].listIndex
    Enfin, pour récuperer une valeur en particulier dans une zone de liste à plusieurs colonnes, la fonction Column est très utile. Par exemple, je veut récuperer la valeur dans la 3e colonne, ligne 10, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateMin = Me.[Nom de la liste].Column(3,10)
    par contre je ne sais pas comment faire sans passer par vba...

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    merci pour ta réponse...

    je vais reformuler.
    Disons que j'ai une table contenant des dates de mesures :
    par ex la table MESURE contient les dates 1980 1981 ..etc . 2008 2009

    j'ai un formulaire où je souhaite que l'utilisateur puisse indiquer entre quelle date et quelle date on doit analyser les mesures.
    Liste déroulante 1 :on sélectionne la date de début (ex: Datemin= 2000)
    Liste déroulant 2 : celle de fin (ex Datemax = 2005)...

    Etant novice j'aurais préféré arriver à le faire directement sous access sans passer par le vba, mais bon si j'ai pas le choix... .
    Que dois écrire en VBA pour pouvoir :
    *sélectionner les dates de ma table mesure comprises entre mes 2 dates ?
    * Puis enregistrer ça sous une table temporaire nommée MESURE_Temp contenant les dates 2000 2001 2002 2003 2004 et 2005 ?
    * mon idée étant de pouvoir repartir de cette table pour faire d'autre requête mais cette fois ci avec access

    merci de votre aide

    PS: je suis surpris que access ne sache pas faire un truc pareil faire une requête sélection à partir d'un contrôle de type liste déroulante...

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 108
    Points : 80
    Points
    80
    Par défaut
    re !
    je ferais une boucle entre ta date de début et ta date de fin :

    1 / récuperer les dates des deux listes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DateMin = Me.listedebut.Value
    DateMax = Me.listefin.Value
    2/ Faire un parcours entre DateMin et DateFin, avec insertion dans la table 'MESURE_Temp' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ' la variable Parcours prend comme valeur l'année de départ
    Parcours = DateMin
     
    ' tant que l'on a pas atteint la date de fin
    Do While Parcours <= DateFin 
         ' On insert la date en cours dans la table
         Docmd.RunSQL = "INSERT INTO MESURE_Temp (Annee) VALUES (" & Parcours & ") "
         ' La variable Parcours s'incrémente a chaque tour, elle prend donc 1 an de plus
         Parcours = Parcours + 1
    Loop
    en espérant que ca puisse t'aider

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 428
    Points : 20 007
    Points
    20 007
    Billets dans le blog
    67
    Par défaut
    Bonsoir,

    Peux tu nous donner une image de ton formulaire:

    Ton filtre, souhaites-tu l'appliquer aux données d'un sous-formulaire ou aux données de ton formulaire principal ?

    En gros pour un sous-formulaire tu peux agir sur la propriété RecordSource (source) de ton sous-formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.tonsousform.Form.RecordSource="Select * from tblDate where Annee between " & Me.DateMin & " And " & Me.DateMax

    Sinon, pour filtrer sur ton formulaire principal tu as:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Filter = "Annee between " & Me.DateMin & " And " & Me.DateMax
    Me.FilterOn = True
    Dans ce cas la table tblDate est source de ton formulaire principale.

    De plus pour l'ajout dans la table temporaire, il y a le code de Slici.

    A+

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonsoir,
    en t'inspirant de ce modèle à adapter ?

  8. #8
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci à tous pour vos réponses...

    je vais essayer de digérer vos explications...

    Le vieux, merci pour ton fichier joint, il a l'air de faire ce que je recherche, je vais essayer de m'en inspiré...

    la seule différence étant que je n'ai pas de sous formulaire mais un seul formulaire principal...


    Je vais donc analysé ton document,et essayé de voir pourquoi je n'arrive pas à récupérer la valeur sélectionné dans ma liste déroulant DateMin...
    j'ai l'impression que ça ce joue au niveau des évênement de ce contrôle car j'ai pas encore bien saisie les suptilités entre sur clic avant MAJ, parès MAJ etc...


    j'analyse ça et vous tiens au courant !!!

    Un grand merci à tous !!

  9. #9
    Futur Membre du Club
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    C'est bon, mon prb est résolu !!!

    merci à tous...

    Le vieux ta pièce jointe m'a bcp servie :merci beaucoup !!!


    En fait j'avais presque la solution,mais je n'étais jamais allez au bout...

    Je m'explique lorsque je crée ma requête filtrant mes dates entre Datemin et datemax (je vais chercher ces valeurs dans le formulaire), et que je l'exécute :
    y'a la boite de dialogue simplifié de access qui me demande quelle valeur prends Datemin....
    Je m'arrêtais là car je pensais que ça ne marchait pas vu que mon formulaire était bien rempli...

    En fait elle marchait bien la requête, fallait juste la lancer depuis le formulaire afin qu'elle ce lance sans avoir à rentrer des valeurs manuellement

    merci à tous !

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

Discussions similaires

  1. [MySQL] insérer une date dans une table dans un format compréhensible
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 16/08/2014, 12h10
  2. insérer une date dans une table dans un format compréhensible
    Par laurentSc dans le forum Langage SQL
    Réponses: 5
    Dernier message: 08/08/2014, 17h31
  3. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 11h13
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 14h48
  5. Inserer une date d'une table dans une autre table
    Par petitetre dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/04/2007, 21h16

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