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 :

calculer nombre de matricules dans une colonne


Sujet :

Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 9
    Points
    9
    Par défaut calculer nombre de matricules dans une colonne
    Bonjour,

    Je viens vers vous car j’aurai besoin de votre aide . Je vous explique rapidement la situation .
    J’ai une table qui est construite comme ci-dessous :
    - Je saisie le matricule, une date , un nombre d’heure et un magasin de travail
    - Le même matricule peut travailler plusieurs fois et donc se répéter sur plusieurs lignes ( comme pour mon matricule 1 )

    Matricule Date activite Nombre d'heure Magasin
    1 05/11/2015 5 LECLERC
    1 07/11/2015 9 INTER
    2 14/11/2015 6 AUCHAN


    ----

    J’aimerai dans Access ( 2013 ou 2016 ) , faire une requête ( SQL ou non ) lui demandant la chose suivante :
    - Si je retrouve pour la première fois dans ma liste le matricule ( par exemple ici le 1) , alors je récupère matricule / magasin / nb d’heure et j’alimente une colonne QUESTION avec ACT01 en automatique
    - Si c’est la deuxième fois que je retrouve le même matricule ( toujours exemple le 1 ) alors alimenter la colonne question avec ACT02
    - Etc jusqu’à une éventuelle activité 21

    Pour que ça ressemble à ça :


    Matricule Magasin Nombre d'heure QUESTION
    1 LECLERC 5 ACT01
    1 INTER 9 ACT02
    2 AUCHAN 6 ACT01



    Merci d'avance

    Mise à jour : peut être par une fonction distinct count ? mais je ne sais pas la gèrer

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    personne pour m'aider

  3. #3
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour maxime079,

    Il est possible de faire ce que tu veux avec la fonction CpteDom cependant il faut aussi se créer une fonction pour afficher la date au format US donc:

    Un module avec une fonction publique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function fuUSDate(daDate As Date) As Date
     
        fuUSDate = DatePart("m", daDate) & "-" & DatePart("d", daDate) & "-" & DatePart("yyyy", daDate)
     
    End Function
    Une requête qui ressemblerait à ceci:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T_Table.Matricule, T_Table.Magasin, T_Table.Nbr_Heure, "ACT" & Format(DCount("[Matricule]","[T_Table]","[Date_Activite]<=#" & fuUsDate([Date_Activite]) & "# And [Matricule] = " & [Matricule]),"00") AS Question
    FROM T_Table
    ORDER BY T_Table.Matricule, T_Table.Date_Activite;
    Te donnera le résultat escompté. C'est cette partie de la requête qui fait ce que tu veux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "ACT" & Format(DCount("[Matricule]","[T_Table]","[Date_Activite]<=#" & fuUsDate([Date_Activite]) & "# And [Matricule] = " & [Matricule]),"00") AS Question
    Nom : Act.PNG
Affichages : 261
Taille : 8,5 Ko

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    ca marche parfait merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii , juste je faisais reqûete sql et non pas une simple union

  5. #5
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour maxime079,

    Ça ne m'embête pas de te répondre. Est-ce que tu as modifié les noms de la table et des champs pour qu'ils correspondent à ta bd?

    Voici une base qui fonctionne.

    Bonne journée
    Fichiers attachés Fichiers attachés
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Re-bonjour,

    Je réouvre le sujet , car j'ai fait des test, tout fonctionne mais j'ai un cas qui me pause problème .

    Quand le même matricule travail plusieurs fois sur la même date , derrière il me met la même ACTXX ..

    Sur mon exemple le salarie 1 , travaille sur 4 magasins différents à la même date et du coup ma requête donne ACT04 au lieu de ACT01 ACT02 ACT03 ACT04...




    Il est possible de modifier la requête ?

    Merci

  7. #7
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour maxime079,

    Le résultat est bien celui attendu. Pour avoir un ordre comme tu le désires il faudrait avoir l'heure en plus de la date. Avec ce que tu as je ne vois pas comment faire puisqu'il n'y a pas de logique pour l'ordre de présence dans les magasins.

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Bonjour
    J'ai rajouté une colonne " heure_depart" à part , après je peux la mettre dans la même colonne que mon jour de travail si besoin

    Je mets la capture et le fichier en PJ si vous pouvez m'aider ca serait gentil


    Maxime69_v2.rarNom : Capture.PNG
Affichages : 130
Taille : 6,8 Ko

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Personne

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonsoir Maxime,

    Il faut intégrer ton champ Heure_Depart dans la requête en ajoutant sa valeur avec la date

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T_Table.Matricule, T_Table.Magasin, T_Table.Nbr_Heure, "ACT" & Format(DCount("[Matricule]","[T_Table]","[Date_Activite]+[Heure_Depart]<=#" & fuUsDate([Date_Activite]+[Heure_Depart]) & "# And [Matricule] = " & [Matricule]),"00") AS Question
    FROM T_Table
    ORDER BY T_Table.Matricule, T_Table.Date_Activite,T_Table.Heure_Depart;

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Bonjour,*

    Merci pour votre réponse . Si je fais ca toutes les activités se mettent à ACT00 maintenant ...

  12. #12
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonsoir,

    Autant pour moi, Il faut modifier effectivement le format de la date complète (avec ton heure_depart) à comparer. La fonction qu'avait envoyée Robert ne gère pas le cas. Ci-joint le code SQL modifié :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T_Table.Matricule, T_Table.Magasin, T_Table.Nbr_Heure, "ACT" & Format(DCount("[Matricule]","[T_Table]","[Date_Activite]+[Heure_depart]<=#" & Format([Date_Activite]+[Heure_depart],"yyyy/mm/dd hh:nn:ss") & "# And [Matricule] = " & [Matricule]),"00") AS Question, T_Table.Date_Activite, T_Table.Heure_depart
    FROM T_Table
    ORDER BY T_Table.Matricule, T_Table.Date_Activite, T_Table.Heure_depart;

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

Discussions similaires

  1. Compter un nombre de date dans une colonne
    Par MASK55 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 07/11/2007, 11h17
  2. Calcul du nombre d'occurences dans une colonne
    Par Masmeta dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/09/2007, 15h11
  3. Nombre de lignes <> '' dans une colonne Excel
    Par zemeilleurofgreg dans le forum Delphi
    Réponses: 5
    Dernier message: 10/07/2007, 15h22
  4. nombre de cellule dans une colonne excel
    Par mahboub dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/11/2006, 23h00

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