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 :

Incrémentation d'un numéro pièce


Sujet :

Access

  1. #21
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Points : 79
    Points
    79
    Par défaut
    Merci pour l'info.

    Quand j'éxecute la requete, j'obtiens le message suivant "Impossible de modifier le champ MonChamp. IL fait partie d'une ou plusieurs relations.

    J'ai peu être oublié d'indiquer que le champ que je veux incrémenter est impliqué dans une relation 1-n avec une autre table dans laquelle j'entre des composantes (sous-pièce) de la pièce principale. Le principe est simple. La deuxième table fait partie d'un sous formulaire.

  2. #22
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Tu ne peux pas modifier manuellement un champ compteur, le principe c'est que c'est Access qui s'en occupe pas toi.

    Random ce que tu fais c'est modifier un champ Autonum ? Il y a t'il des risques de trous (c-à-d des numéros manquant) quand on créé un nouvel enr et qu'ensuite on décide de l'annuler (ex par escape) ?

    A+

  3. #23
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Citation Envoyé par egg3774
    Merci pour l'info.

    Quand j'éxecute la requete, j'obtiens le message suivant "Impossible de modifier le champ MonChamp. IL fait partie d'une ou plusieurs relations.

    J'ai peu être oublié d'indiquer que le champ que je veux incrémenter est impliqué dans une relation 1-n avec une autre table dans laquelle j'entre des composantes (sous-pièce) de la pièce principale. Le principe est simple. La deuxième table fait partie d'un sous formulaire.
    Avant de faire le alter il faut supprimer ta relation puis, le alter fait, la recréer.

  4. #24
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    bien sur qu'il existe des risques de trous
    en fait même si on laisse access prendre en charge la gestion du compteur (sans alter column) il y a des risques de trous
    soit on les prend en charge par programmation si on souhaite impérativement
    une série continue
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Min(compteur) AS prochaineclef
    FROM matable 
    WHERE DLookUp("compteur","matable","compteur =" & ([compteur]+1))  Is Null;



    soit on les laisse en place , les trous c'est génial ("un génie <je suis le gruyère>" A Rimbaud.

    le vrai risque est de redéfinir une plage déjà existante
    par exemple nofacture contient les numéros 1 à 121267
    si je fais
    alter table matable alter column nofacture counter(100,1);
    je vais avoir des doublons et comme access ne propose pas d'interdire les doublons sur les champs compteurs soit je place ce champ en clef soit
    je l'utilise avec d'autres champs format(datefacture,'yyyymm') & nofacture

  5. #25
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Merci.

  6. #26
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Points : 79
    Points
    79
    Par défaut
    j'execute cette requête et j'obtient le message d'erreur "Type de champ de données non valide".

  7. #27
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    [QUOTE=random]
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Min(compteur) AS prochaineclef
    FROM matable 
    WHERE DLookUp("compteur","matable","compteur =" & ([compteur]+1))  Is Null;
    Attention cela ne marche qu'en environement mono-utilisateur, en multi utilisateur tu risque des doubons.

  8. #28
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Citation Envoyé par egg3774
    j'execute cette requête et j'obtient le message d'erreur "Type de champ de données non valide".
    Quelle requète, celle d'altération ?

  9. #29
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Points : 79
    Points
    79
    Par défaut
    la requete en question est:

    ALTER TABLE MaTable ALTER COLUMN [MonChamps] counter(50000,100);

    La base de donnée est en monoutilisateur.

  10. #30
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    C'est quoi le type MonChamp, un NumeroAUto ?

  11. #31
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Points : 79
    Points
    79
    Par défaut
    Voici la description de ma table:

    ID_numéro: autonomber
    NumPiece: Numérique
    Description: texte
    Commentaires: Memo

    C'est le numéro de pièce que je veux incrémenter de 100 à chaque ajout. Le numéro de pièce commence à 50000.

  12. #32
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Rassures-moi, tu as bien adapté le code exemple proposé ... du genre ....

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER TABLE [LA TABLE TRUC MACHIN] ALTER COLUMN [ID_Numéro] counter(50000,100);

  13. #33
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Citation Envoyé par egg3774
    Voici la description de ma table:

    ID_numéro: autonomber
    NumPiece: Numérique
    Description: texte
    Commentaires: Memo

    C'est le numéro de pièce que je veux incrémenter de 100 à chaque ajout. Le numéro de pièce commence à 50000.
    Access n'accepte pas 2 NumAuto dans une même table or je pense que le Alter suggérer s'applique à un champ NumAuto.

    Quand tu parle de numéro de pièce c'est bien ID_Numéro dont tu parles ou NumPiece ?


    A+

  14. #34
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Points : 79
    Points
    79
    Par défaut
    le champ que je veux incrémenter de 100 à chaque ajout est le NumPiece (2ième champ de ma table). Le champ ID_numéro (premier champ de ma table et en meme temps ma clé) est déjà de type autonumber.

    Je viens de réaliser avec votre aide biensur que je voulais travaille avec 2 champs autonumber dans la meme table. Quand j'exécute le code sur mon ID_piece ca fonctionne. Désoler j'aurais du vous préciser ce point au départ.

  15. #35
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par mout1234
    Rassures-moi, tu as bien adapté le code exemple proposé ... du genre ....

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ALTER TABLE [LA TABLE TRUC MACHIN] ALTER COLUMN [ID_Numéro] counter(50000,100);
    j'ai écris mon code de cette facon:

    ALTER TABLE tbl_piece ALTER COLUMN [NumPiece] counter (50000,100);

  16. #36
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Citation Envoyé par egg3774
    j'ai écris mon code de cette facon:

    ALTER TABLE tbl_piece ALTER COLUMN [NumPiece] counter (50000,100);
    OK, ça répond à ma question, tu ne peux pas faire cela sur un Numérique, il faut que ce soit un AutoNum donc il va falloir le faire par code.

    A+

  17. #37
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Points : 79
    Points
    79
    Par défaut
    Excellent ! j'ai réussi avec le code de mout1234 à la première page.

    Le code est :

    const cstIncrément as long = 100

    Me![Numéro Pièce] = DMax("[Numéro Pièce]","MaTable") +cstIncrément

    Merci à tous pour votre travail et votre support !

    A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [AC-2003] Incrémentation d'un numéro auto
    Par Cam78 dans le forum Access
    Réponses: 8
    Dernier message: 25/06/2010, 10h58
  2. Incrémentation d'un numéro automatique
    Par gawgab dans le forum VBA Access
    Réponses: 10
    Dernier message: 27/10/2008, 09h15
  3. [A-00] Incrémentation d'un numéro auto
    Par aketo1082 dans le forum IHM
    Réponses: 2
    Dernier message: 14/10/2008, 16h42
  4. [MySQL] Incrémentation automatique de numéro en PHP
    Par nita2006 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 15/01/2008, 17h30
  5. Incrémentation d'un numéro dans une colonne.
    Par Chauveau dans le forum Access
    Réponses: 4
    Dernier message: 26/01/2007, 09h54

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