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 :

recherche d'une donnée la plus proche, inférieur ou supérieure à une autre


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 56
    Points
    56
    Par défaut recherche d'une donnée la plus proche, inférieur ou supérieure à une autre
    Bonjour,
    j'ai une colonne avec une liste de données numériques, et j'ai besoin de trouver dans cette colonne la valeur égale ou plus proche de 2.
    Je ne sais pas comment faire pour dire à access de selectionner la valeur inférieure ou supérieure la plus proche dans la liste....
    De plus, s'il y a plusieurs valeurs égales, j'aurais besoin de les selectionner toutes
    ex : dans mon fichier :
    F1
    1,959
    1,959
    1,959
    1,99
    1,99
    1,99
    2,019
    2,019
    il faut que je puisse selectionner les 3 lignes avec 1,99 ( le plus proche de 2)
    Merci mille fois d'avant à celui ou celle qui me dit quelle fonction va me selectionner ça.

  2. #2
    seb92400
    Invité(e)
    Par défaut
    Personnellement, je pense que j'utiliserai des requêtes paramétrées (voir le tutoriel à ce sujet).
    - Dans un premier temps, faire une requête de sélection sur la valeur 2
    - Si aucun enregistrement n'a comme valeur 2, trouver la valeur immédiatement supérieur et immédiatement inférieur (< et >)
    - Faire une comparaison de ces deux valeurs pour trouver laquelle est la plus proche de 2
    - Faire une requête de sélection sur cette valeur afin de sélectionner tous les enregustrements correspondants.

    Mon idée me parait être une "usine à gaz", mais je ne vois pas de fonction toute faite pour ce que tu cherches... Mais je ne connais pas tout...

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 56
    Points
    56
    Par défaut
    je vois ce que tu veux dire, mais est-ce que tu pourrais me donner un peu plus de détails sur comment faire ces requetes ? ça serait cool, je suis pas douée...

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 56
    Points
    56
    Par défaut
    - Dans un premier temps, faire une requête de sélection sur la valeur 2
    ça, ok, c'est fait

    - Si aucun enregistrement n'a comme valeur 2, trouver la valeur immédiatement supérieur et immédiatement inférieur (< et >)
    ça ok aussi

    - Faire une comparaison de ces deux valeurs pour trouver laquelle est la plus proche de 2
    Je fais ça comment ?

  5. #5
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 522
    Points
    14 522
    Par défaut
    Bjr,

    ça peut se faire avec une sous-requête :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT F1 FROM MaTable
    WHERE (((Abs([Valeur Recherchée]-[F1]))=(select min(abs([Valeur Recherchée] - [F1])) from MaTable)));

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 56
    Points
    56
    Par défaut
    ouh là, ça devient compliqué pour moi là ...

    bon, voici ma requete qui me dit quel est le nombre inferieur le plus proche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Max(Test1.F2) AS Inf from Test1 WHERE (((Test1.F2)<=2));
    Et ça pour le nombre supérieur le plus proche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Min(Test1.F2) AS Sup from Test1 WHERE (((Test1.F2)>=2))
    Arkham46 : Comment je fais une sous-requete à partir de ce que tu me dis ?

  7. #7
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 522
    Points
    14 522
    Par défaut
    Citation Envoyé par zeloutre
    Arkham46 : Comment je fais une sous-requete à partir de ce que tu me dis ?
    ben je t'ai donné le SQL...

    la sous-requête c'est :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    (SELECT min(abs([Valeur Recherchée] - [F1])) FROM MaTable)
    c'est le minimum de la différence entre la valeur recherchée et la valeur du champ (en valeur absolue)
    on s'en sert comme critère pour trouver les enregistrements dont la valeur absolue de la différence entre la valeur recherchée et la valeur du champ est égale à ce minimum

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 56
    Points
    56
    Par défaut
    en fait je sais pas quoi mettre dans "valeur recherchée" .. (qui a dit "baltringue" ?)

  9. #9
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 522
    Points
    14 522
    Par défaut
    Citation Envoyé par zeloutre
    en fait je sais pas quoi mettre dans "valeur recherchée" .. (qui a dit "baltringue" ?)
    [Valeur Recherchée] c'est un paramètre

    Soit tu le laisses comme ça pour avoir une popup de saisie de la valeur recherchée
    Soit tu le remplaces par la valeur que tu veux (2 dans ton exemple)

  10. #10
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 56
    Points
    56
    Par défaut
    ta ta taaaa, il est 10h et ma petite appli fonctionne !
    merci mille fois du coup de main Arkham46 !!! noawsen aussi

  11. #11
    seb92400
    Invité(e)
    Par défaut
    Oh, de rien, de rien... Je débute aussi... J'essaye juste d'apporter ma petite contribution quand je le peux, et surtout quand je connais la solution... ce qui est quand même très rare pour le moment...

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

Discussions similaires

  1. [Google Maps] Trouver les markers les plus proches en fonction d'une adresse donnée
    Par xillibit dans le forum APIs Google
    Réponses: 9
    Dernier message: 24/11/2011, 13h00
  2. PostGis : Recherche d'une ligne la plus proche d'un point
    Par mister3957 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 22/08/2011, 14h03
  3. Réponses: 2
    Dernier message: 25/09/2010, 09h38
  4. Réponses: 3
    Dernier message: 20/07/2009, 12h15
  5. [Complexité] recherche des n points les plus proches d'un point dans une liste
    Par Benoit_T dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 20/06/2009, 16h55

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