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 :

Requête access numéroter lignes


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut Requête access numéroter lignes
    Bonjour à tous et à toutes,

    Après moult recherches sur internet je me tourne vers vous afin de m'aider à résoudre un problème.

    J'ai une requête Access dont le but est de faire des regroupements. Jusque la pas de problème pour réaliser cette requête. J'aimerai cependant attribuer un numéro à chaque ligne de cette requête (de 1 à N dans l'ordre).

    Je ne sais pas comment réaliser cela, j'ai bien essayé de créer une table en rajoutant un champs NumAuto, avec une requête update et une autre requête delete. Cependant le NumAuto ne revient jamais à 0 même après effacement. Peut être existe-t'il une méthode toute simple dont je ne connais pas l'existence.

    En tout cas merci d'avance pour votre aide!

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Bonjour,

    Une requete ne peut pas se numéroter simplement car cela dépend du tri...
    S'il s'agit du recordset d'une fenêtre, me.currentrecord renvoie le n° de ligne courante
    Sinon il faut 'bricoler' une fonction qui compte le nombre de lignes 'plus petites' que la ligne en cours (suivant la clé de tri choisie) et ajouter cette fonction à la requete, dans le style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select dcount('*','matable','macle<=' & macle) as rang, macle, monchamp from matable order by macle
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Merci pour ta réponse, en effet, il faut que cela apparaisse dans la requête puisque ce chiffre est par la suite utilisé pour être lié à une autre table.

    Du coup j'ai ma requête avec code SQL organisé de la sorte :

    SELECT ....
    FROM ....
    GROUP BY ...
    HAVING...

    où mettre le bout de code que tu m'as donné ?

    select dcount('*','matable','macle<=' & macle) as rang, macle, monchamp from matable order by macle

    En tout cas merci de prendre le temps de m'aider

  4. #4
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Bonjour

    tu peux aussi créer une nouvelle table a chaque fois et la supprimer en ajoutant un N° auto
    il suffit de créer cette requête pour créer le N° auto
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE Nom de ta table
    ADD COLUMN N° COUNTER;
    Remplace nom de ta table par le nom de ta table
    (Tu lance la création de ta table et ensuite tu lance cette requête)

  5. #5
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Merci pour ton aide je vais tester ça. Il n'y a pas un moyen plus simple pour créer une table à partir d'une requête que de passer par 2 requêtes (suppression + création)?


    Edit: Je viens de tester et les numéros ne redémarrent pas à 1 après effacement

  6. #6
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Citation Envoyé par John Parker Voir le message
    où mettre le bout de code que tu m'as donné ?
    un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select dcount(...), ... FROM (
    SELECT ....
    FROM ....
    GROUP BY ...
    HAVING...
    ORDER BY macle)
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  7. #7
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Je viens de tester en supprimant la table, la recréant avec le numAuto. Cela marche pour la table, sauf que j'utilise cette table dans une autre requête et en la supprimant ma requête ne fonctionne plus...

  8. #8
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par nico84 Voir le message
    un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select dcount(...), ... FROM (
    SELECT ....
    FROM ....
    GROUP BY ...
    HAVING...
    ORDER BY macle)
    Merci pour ton aide.

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Commande.NumCommande
    FROM Commande
    WHERE (((Commande.Type)<>"2"))
    GROUP BY Commande.NumCommande;
    Je ne comprends pas bien la syntaxe de dcount()...

  9. #9
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 257
    Points
    34 257
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  10. #10
    Membre régulier
    Inscrit en
    Avril 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 465
    Points : 97
    Points
    97
    Par défaut
    Parfait ça marche! Un grand merci. Par contre c'est assez long à lancer...

    Une question cependant. Est-ce que je suis obligé de passer par une nouvelle requête ou puis simplement rajouter dans ma requête source "Commande"?

    Voila ce que ça donne en créant une autre requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT NumCommande,
     
           (SELECT COUNT(NumCommande)
     
            FROM NbrCommandeMagasin AS NombreCommande
     
            WHERE NumCommande <  NbrCommandeMagasin.NumCommande)+1 AS IDCouleur
     
    FROM NbrCommandeMagasin 
     
    ORDER BY NumCommande;

Discussions similaires

  1. [Requête] numérotation ligne
    Par dde78 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 06/06/2007, 08h45
  2. Réponses: 2
    Dernier message: 04/11/2005, 11h35
  3. Fusion requête Access 2003 vers document word
    Par davidf dans le forum Access
    Réponses: 2
    Dernier message: 17/06/2005, 13h46
  4. Réponses: 7
    Dernier message: 18/05/2005, 15h09
  5. Convertir une requête Access en MySQL
    Par iomega dans le forum Langage SQL
    Réponses: 5
    Dernier message: 06/03/2004, 09h47

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