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 :

Numéroter les occurrences des différentes valeurs d'un champ [AC-2003]


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Numéroter les occurrences des différentes valeurs d'un champ
    Bonjour à tous !
    Je sollicite votre aide, car j'ai beau me torturer les méninges et explorer les forums, je n'y arrive pas :

    J'ai une table Access (2003) dans laquelle je voudrais numéroter les occurrences de chaque valeur d'un champ donné.

    Je pense utiliser une requête mise à jour pour "peupler" le champ COMPTEUR mais... laquelle ???

    Voici un exemple de résultat attendu pour le champ COMPTEUR :

    CHAMP_A_COMPTER|COMPTEUR
    Val1                |1
    Val1                |2
    Val1                |3
    Val2                |1
    Val2                |2
    etc...
    Le compteur doit donc partir de 1 pour chaque valeur du champ et s'incrémenter de 1 à chaque nouvelle occurrence d'une valeur donnée.

    J'espère que ma question est claire... et merci d'avance pour votre aide !

    PS : si vous avez une idée, je ne me reconnecterai que lundi...

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 411
    Points : 19 988
    Points
    19 988
    Billets dans le blog
    66
    Par défaut
    Salut,

    L'utilisation d'1 recordset semble une bonne solution dans ton cas. Voici un exemple de fonction VBA à mettre dans 1 module :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Public Function Peupler()
    Dim rst As DAO.Recordset
    Dim cpt As Long
    Dim Valeur As String
     
    Set rst = CurrentDb.OpenRecordset("Table1")
     
    rst.MoveFirst
     
    Valeur = rst!CHAMP_A_COMPTER
    cpt = 1
     
    Do
     
    rst.Edit
    rst!Compteur = cpt
    rst.Update
     
    rst.MoveNext
     
       If rst.EOF Then
          Exit Do
       End If
     
       If (Valeur = rst!CHAMP_A_COMPTER) Then
          cpt = cpt + 1
       Else
          cpt = 1
          Valeur = rst!CHAMP_A_COMPTER
       End If
     
    Loop
     
    rst.Close
    Set rst = Nothing
     
    End Function
    Ou "Table1" désigne la table à peupler...

    A+

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Août 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Salut !

    J'ai testé ta solution ce matin, ça répond parfaitement à mon besoin.

    Merci beaucoup d'avoir répondu si vite !

    Bonne journée et bonnes fêtes de fin d'année !

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/02/2015, 15h02
  2. Réponses: 3
    Dernier message: 13/07/2012, 10h58
  3. Quelles sont les particuliarités des différent file system
    Par pierrot10 dans le forum Administration système
    Réponses: 1
    Dernier message: 18/05/2010, 10h06
  4. Réponses: 1
    Dernier message: 27/02/2010, 10h15
  5. Réponses: 6
    Dernier message: 07/02/2008, 12h33

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