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 :

Comment afficher le rang des résultats d'une requête sous Access 2002


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Par défaut Comment afficher le rang des résultats d'une requête sous Access 2002
    J'ai une requête que j'affiche dans un formulaire et j'aimerais afficher le numéro de la ligne de résultat pour afficher le rang.

    Comment je fais pour l'afficher dans mon formulaire si je n'ai pas de champ "rang" dans mes tables car le rang est établit selon le résultat de la requête ???

    Voici ma requête:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Tb_Indicateurs.[C/A], Tb_Indicateurs.[Indicateur-Desc], Tb_Etablissement.No_Etablissement, Tb_Etablissement.Des_Etablissement, Sum(Tb_Indicateurs.Donnee) AS SommeDeDonnee
    FROM Tb_Indicateurs INNER JOIN Tb_Etablissement ON (Tb_Indicateurs.[C/A] = Tb_Etablissement.[C/A]) AND (Tb_Indicateurs.No_Etablissement = Tb_Etablissement.No_Etablissement)
    GROUP BY Tb_Indicateurs.[C/A], Tb_Indicateurs.[Indicateur-Desc], Tb_Etablissement.No_Etablissement, Tb_Etablissement.Des_Etablissement
    HAVING (((Tb_Indicateurs.[C/A])=[Formulaires]![Frm_Classement_Croisé]![Lst_CA]) AND ((Tb_Indicateurs.[Indicateur-Desc])=[Formulaires]![Frm_Classement_Croisé]![Lst_Indic]) AND ((Sum(Tb_Indicateurs.Donnee))<>0))
    ORDER BY Sum(Tb_Indicateurs.Donnee);

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 434
    Par défaut
    As-tu une clef primaire croissante ?

    Le truc consiste à compter le nombre d'enr qui sont <= à ta clef.

    C'est un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DCount("[MaClef]","MaTable","[MaClef]<=" & [MaClef])
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Par défaut
    Non je n'ai pas de clé primaire et cette requête va piger dans plus d'une tables. Y'a pas un moyen en créant un champ temporaire du genre "AS" ou un truc du genre pour numéroter à partir de "1" les résultats de ma requête ?

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 434
    Par défaut
    Peut-être en utilisant une fonction avec une variable static mais je n'ai jamais essayer. Le code serait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public function CompterEnr as long()
      static cpt as long
      cpt=cpt+1
      CompterEnr=cpt
    end function
    Le pb ça va être l'initialisation de Cpt.

    La barre qui affiche les boutons de déplacement en bas à gauche de ton form affiche l'enr courrant dans la sélection affiché donc ton comptage fait un peu double enploi.

    Peut-être peux-tu créer une clef primaire artificielle en combinant plusieurs champs.

    Tu peux aussi créer une table temporaire qui contiendra le resultat de ta requète avec un champ Autonum.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Par défaut oui mais...
    Merci !! très apprécié !!!

    Je sais que ma barre en bas de mon form affiche l'enregistrement courant mais j'ai besoin d'un rang pour afficher la position d'un résultat en particulier de ma requête. Je dois l'utiliser par la suite dans un état.

    est-ce que c'est possible de créer un champ temporaire directement dans ma requête (voir le premier post) et pouvoir l'utiliser par la suite dans mon formulaire ou mon état ?

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 434
    Par défaut
    Comme je te l'ai dit ce n'est pas possible directement.

    Par contre si tu as besoin de l'ordre uniquement dans un état alors fait le calcul dans l'état c'est extrémement facile. Dans un état tu peux utiliser une variable globale initialiser à l'ouverture et faire une fonction qui calcul +1 sur cette variable.

    Je pense qu'il y a une FAQ là dessus.

    Je te dis cela de tête car je suis à la maison et je n'est pas Access mais si tu utilise un form pour affiicher tes résultats tu peux peut-être définir un champ caculer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[Form].[CurrentRecord]
    qui va te donner le numéro de l'enr courrant. Ça devrait marché dans un form en mode continu mais je ne sais pas si cela marche dans un form en mode feuille de données.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/12/2010, 00h26
  2. Réponses: 0
    Dernier message: 12/07/2009, 14h46
  3. Réponses: 4
    Dernier message: 05/12/2007, 20h06
  4. Réponses: 2
    Dernier message: 04/10/2006, 15h03
  5. Calcul à partir des résultats d'une requète
    Par Sendo dans le forum Access
    Réponses: 1
    Dernier message: 29/09/2005, 18h46

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