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 :

Connaitre le nbr d'enregistrement dans toutes les tables de la base


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 34
    Points : 25
    Points
    25
    Par défaut Connaitre le nbr d'enregistrement dans toutes les tables de la base
    Bonjour,

    J'aimerais connaitre la requete pour m'afficher le nbre d'enregistrement dans chaque table avec colonne 1 = nom de la table et colonne 2 = nbre d'enregistrement.

    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 72
    Points : 80
    Points
    80
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Count(1) AS Total
    FROM Hotel
    WITH OWNERACCESS OPTION;
    Observation : Ce code SQL vous permet de compter le nombre d'enregistrements de la table 'Hotel' et d'afficher le résultat dans une colonne
    dont l'entête est personnalisée. Dans mon exemple, l'entête de colonne s'intitule 'Total'.

    Dans votre cas précis vous pouvez substituer l'intitulé 'Total' par le nom de votre table.

  3. #3
    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 594
    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 594
    Points : 34 266
    Points
    34 266
    Par défaut
    salut,
    les informations concernant la liste des tables se trouvant dans MSysObjects.

    Pour le nombre de lignes, tu peux créer une rapide fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function NbLigne(strTableName As String) As Double
    Dim RS As RecordSet
    set RS = CurrentDb.OpenRecordSet("SELECT COUNT(*) AS Total FROM [" & strTableName & "]")
    NbLigne = RS!Total
    End Function
    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

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Oui on peut utiliser la table système MsysObjects pour récupérer toutes les tables de la base en cour mais avec quand même une boucle pour la suite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    Dim RSTable As RecordSet, RSCount As RecordSet
    'Récupération de toutes les tables non système
    set RSTable = CurrentDb.OpenRecordSet("SELECT MsysObjects.Name as NomTable FROM MsysObjects
    WHERE (((MsysObjects.Type)=1) AND ((Mid([Name],1,4))<>"Msys"));
    ")
    'Boucle pour compter
    Do Until RSTable.EOF
         set RSCount = CurrentDb.OpenRecordSet("SELECT Count(*) as NbreEnreg," & RSTable("NomTable") & " as MaTable From " & RSTable("NomTable"))
     
         'Récupération du résultat
          RSCount("NbreEnreg") & " Table " & RSCount("MaTable")
     
    RSTable.MoveNext
    Loop
    PS : Il est peut être possible d'avoir le résultat avec une seule requête !

    Mais oui c'est bien POSSIBLE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT DCount("*",[MsysObjects.Name]) AS Nbre, MsysObjects.Name
    FROM MsysObjects
    WHERE (((MsysObjects.Type)=1) AND ((Mid([Name],1,4))<>"Msys"));
    Amicalement

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/04/2015, 09h29
  2. Réponses: 5
    Dernier message: 12/12/2010, 23h04
  3. Réponses: 1
    Dernier message: 06/11/2009, 16h54
  4. Réponses: 2
    Dernier message: 14/11/2008, 17h42
  5. Réponses: 7
    Dernier message: 05/11/2008, 16h33

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