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

Macros Access Discussion :

Probleme pour créer un compteur


Sujet :

Macros Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Probleme pour créer un compteur
    Bonjour a tous,

    j'ai une table et surtout un champ de la forme suivante :
    |CellId|
    |110  |
    |110  |
    |110  |
    |110  |
    |111  |
    |111  |
    |112  |
    |113  |
    |114  |
    
    je souhaite mettre un compteur qui s'incremente a chaque fois qu'il trouve le meme cellId
    |CellId| Champ Souhaité
    |110  |          1
    |110  |          2
    |110  |          3
    |110  |          4
    |111  |          1
    |111  |          2
    |111  |          3
    |112  |          1
    |113  |          1
    |114  |          1
    |114  |          2
    
    N'hesitez pas a revenir vers moi si vous souhaitez des explication plus detaillées.

    Julien.

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 117
    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 117
    Points : 5 244
    Points
    5 244
    Par défaut
    Bonjour,

    Y a-t-il un autre champ dans la table pour distinguer les lignes avec cellid identiques ? Sinon ça va être difficile en sql...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Il faut que j'ajoute un AUTO_INCREMENT quand je crée ma table?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci, tu m'as donner la clé ("c'est le cas de le dire").

    J'ai mis un autoincrement.

    J'ai fait une fonction qui cherche le min de l'id en fonction du cell id

    et j'ai fait une soustraction entre le min de l'id et l'id.

    Julien.

  5. #5
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 117
    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 117
    Points : 5 244
    Points
    5 244
    Par défaut
    C'est le principe mais c'est plus compliqué car en théorie il peut y avoir des trous dans l'auto-incrément (en cas de suppression de ligne)

    Donc le plus sûr est de compter le nombre de lignes qui ont le même cellid et un id plus petit

  6. #6
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Pour obtenir ca au moment de la creation du record on peut utiliser une DataMacro "BeforeChange"

    If isnull([Champ Souhaité])
    SetField [Champ Souhaité]
    Value=Nz(DMax("Champ Souhaité","TableName","CellId=" & [CellId])+1,1)

    Note: le chanp [Champ Souhaité] de la table ne doit pas avoir de valeur par defaut

  7. #7
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par accessisgood Voir le message
    Pour obtenir ca au moment de la creation du record on peut utiliser une DataMacro "BeforeChange"

    If isnull([Champ Souhaité])
    SetField [Champ Souhaité]
    Value=Nz(DMax("Champ Souhaité","TableName","CellId=" & [CellId])+1,1)

    Note: le chanp [Champ Souhaité] de la table ne doit pas avoir de valeur par defaut
    Et dés que vous faites une suppression, votre compteur deviens HS.

    Il est préférable d'avoir un auto_increment associé à une requête qui permettra de compter les doublons et de les ordonner. On est ainsi sûr d'avoir toujours un décompte correct.

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

Discussions similaires

  1. [Spring 2.1]Probleme pour créer ma beanFactory
    Par Shogun dans le forum Spring
    Réponses: 4
    Dernier message: 10/03/2008, 15h32
  2. Réponses: 3
    Dernier message: 17/11/2006, 15h35
  3. [WinForms]Probleme pour créer le setup
    Par rafou28 dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 13/09/2006, 17h26
  4. Probleme pour créer un base de données...
    Par _matt_44 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 03/06/2005, 15h36

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