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 numéro automatique


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Points : 22
    Points
    22
    Par défaut Incrémentation numéro automatique
    Bonjour,

    je souhaire incrémenter dans ma base de données Access un numéro automatique qui soit de la forme suivante:

    "S" & année en cours& "_" &numéro incrémenté(0001,0002....)

    Le principe est que lorsque l'on réalise une nouvelle réservation via un formulaire, ce numéro automatique vient s'incrémenter automatiquement ds une table comportant d'autres champs.

    Comment est-il possible d'arriver à cela?

    Cordialement.

    Thomas DUSART

  2. #2
    Membre actif
    Homme Profil pro
    développeur amateur
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France

    Informations professionnelles :
    Activité : développeur amateur
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 211
    Points
    211
    Par défaut re
    bonjour
    essaie cette solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Control_ini = "0002"
    Control_new = "S" & Year(Date) & "_" & Format([Control_ini] + 1, "0000")
    Control_new = S2010_0003

    ahmad

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Points : 22
    Points
    22
    Par défaut Incrémentation Numéro Access
    Merci.

    Mais le problème c que j'aimerai que le contrôle_ini soit le résultat d'une requête.

    C'est possible?

  4. #4
    Membre actif
    Homme Profil pro
    développeur amateur
    Inscrit en
    Octobre 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France

    Informations professionnelles :
    Activité : développeur amateur
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 109
    Points : 211
    Points
    211
    Par défaut re
    bonjour,

    je ne suis pas sur d'avoir bien compris mais une piste possible
    -si par requete tu entend variable ca ne pose pas probleme
    -et si control_ini= S2010_0002
    avec la fonction
    control_ini = right(control_ini,4) tu isoles 0002
    ensuite tu incremente ton controle dans control_new
    ??

    ahmad

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Points : 22
    Points
    22
    Par défaut Requête d'une table
    Non en fait j'ai fait une requête à partir d'une table, dans lequel j'ai stocker le numéro 0001 par exemple.

    Et je voudrai que ce 0001 soit stocker dans ce formulaire. Sachant que ce formulaire ne contient pas en source la requête.

    Voila.

    Cordialement.

  6. #6
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Peut-être en regardant du coté de la
    Comment créer son propre numéro automatique

    Bonne continuation

  7. #7
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 155
    Points : 196
    Points
    196
    Par défaut
    Bonjour,

    Ton numéro automatique est le champ d'une table n'est-ca pas ?
    Control_ini = "0002"
    Control_new = "S" & Year(Date) & "_" & Format([Control_ini] + 1, "0000")
    Ceci est un bon départ, mais le problème est déterminer la valeur de Control_Ini, c'est à dire la dernière valeur attribuée au numéro automatique. Tu peux essayer quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Control_Ini = DMax("Right$(TonChampNuméroté,4)","TaTable")

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 26
    Points : 22
    Points
    22
    Par défaut Numéro incrémenté sous Access
    J'ai réussi à incrémenter le numéro dans le formulaire à l'aide d'une requête.

    Le problème est que je travaille sur plusieurs postes en même temps.

    Quand deux personnes ouvrent le formulaire en même temps, ce numéro ne s'actualise pas ce qui donne une erreur car le deuxième enregistrement ne se fait pas.

    Plusieurs personnes seront amenés à réaliser une réservation en même temps et le numéro doit s'actualiser.

    Quel est le moyen d'y arriver?

    Cdt.

    Thomas DUSART

  9. #9
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 155
    Points : 196
    Points
    196
    Par défaut
    Il peut y avoir conflit s'il s'écoule "un certain temps" entre la détermination de ton nouveau numéro et la création effective de ton enregistrement. Un autre opérateur a le temps de créer un nouveau numéro égal au tien. Au moment de la création de l'enregistrement, comme ton champ numéro est sûrement une clé primaire, alors Boum !!!

    Je te suggère de créer l'enregistrement dès que ton nouveau numéro est calculé avec un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DoCmd.SetWarnings False
    DoCmd.RunSQL "INSERT INTO TaTable (TonChampNuméroté) VALUES ('" & ControlNew & "');"
    DoCmd.SetWarnings True
    où l'on suppose que la nouvelle valeur du numéro se trouve dans la variable ControlNew

    Ensuite, il ne te reste plus qu'à ouvrir ton formulaire sur ce numéro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.OpenForm "TonFormulaire", , , "[TonChampNuméroté]='" & ControlNew & "'"
    Ainsi un autre opérateur n'a quasiment pas le temps de créer un numéro égal au tien.

Discussions similaires

  1. Incrémentation numéro automatique
    Par thomas.dusart dans le forum Sybase
    Réponses: 4
    Dernier message: 05/07/2010, 09h34
  2. [Toutes versions] Empêcher incrémentation automatique numéro automatique
    Par Lyude dans le forum IHM
    Réponses: 2
    Dernier message: 30/03/2010, 09h21
  3. Réponses: 8
    Dernier message: 26/02/2009, 20h24
  4. Incrémentation d'un numéro automatique
    Par gawgab dans le forum VBA Access
    Réponses: 10
    Dernier message: 27/10/2008, 09h15
  5. Incrémentation "numéro automatique" defaillante
    Par maryola dans le forum Access
    Réponses: 1
    Dernier message: 05/10/2006, 13h19

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