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érotation automatique particulière


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Points : 17
    Points
    17
    Par défaut Numérotation automatique particulière
    Bonjour à tous,

    Je souhaiterais faire un numérotaion automatique de mes bon de commande au format : BC0702001
    BC: Texte
    07: année
    02: mois
    001: numero (dans le mois)

    Mon problème est le suivant:
    Je n'arrive pas à récuperer le numéro grace à un filtre afin de l'incrémenter pour la saisie suivante.
    J'utilise la formule suivante:

    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var1 = Left([N°BCDE], 6) & "BC" & Format(Right(Year([Date_BCDE]), 2), "00") & Format(Month([Date_BCDE]), "00") & "'"  
     
    numactuel = DMax("Val(Right([N°BCDE],3))", "TblEF", var1)
     
    numsuivant = numactuel + 1
     
    N°BCDE = "BC" & Right(Year([Date_BCDE]), 2) & Format(Month([Date_BCDE]), "00") & Format(numsuiv, "000")

  2. #2
    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
    je vois pas pourquoi le format(month( ne fonctionne pas
    tu l'as essayé seul ?

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    je me suis mal expliqué !!!!
    Mon problème n'est pas le mois mais le numéro dans le mois ...
    En effet, je n'arrive pas à extraire ce munéro pour pouvoir l'incrémenter.
    BC0702001; BC0702002; etc...
    donc BC+ Année + Mois + N°
    Ce N° s'incrémentant aprés chaque saisie, du moins quand j'y arriverais.....

  4. #4
    Membre actif Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Points : 232
    Points
    232
    Par défaut
    Bonjour,

    Je tenterai plutôt un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    numactuel = Right([N°BCDE], 3)
    Comme ca tu as le numéro...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    numsuivant = clng(numactuel) + 1
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    numsuivant = cint(numactuel) + 1
    Mais bon, je suis pas sur de la conversion...
    Et après, tu mets tout dans la meme chaine...

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Merci à Gary_stoupy mais je veux le numéro dans le mois..
    Par exemple:
    En février :B0702001 à BC0702008
    En mars: BC0703001 et non BC0703009 avec ta méthode....
    C'est pour cela que j'essaie de filtrer ma table TblEF afin de trouver la valeur max pour chaque mois..

  6. #6
    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
    max(clng(rigth(maclef,5)))
    where mid(maclef,x,y)=left(year(date),2) & format(month(date),"00")

  7. #7
    Membre actif Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Points : 232
    Points
    232
    Par défaut
    Je vais te proposer une solution complètement bidouillé ^^... mais je le fais bien lol

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim tmp As String
    tmp = [N°BCDE]
    tu fais ton N°BCDE comme dab sans te soucier du mois.
    Donc maintenant, N°BCDE contient ton nouveau numéro à insérer.
    Et après tu compare le mois de l'ancien (tmp) et du nouveau (N°BCDE). Si c'est différent, tu remets le numero à 001 et sinon tu le garde


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if strcomp(right(right(tmp, 5), 2), right(right([N°BCDE], 5), 2) then
        [N°BCDE] = right([N°BCDE], 5) & "001"
    end if
    normalement ca devrait fonctionner... Sinon, j'ai vraiment pas compris ce que tu voulais...

  8. #8
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Merci à random mais comment j'exploite ça ?????,

  9. #9
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Merci Gary_Stoupy mais avec cette seconde méthode ,je n'ai pas de numéro automatique ?????

  10. #10
    Membre actif Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Points : 232
    Points
    232
    Par défaut
    ben je pense que si...
    C'est juste la remise à zéro qui ne sera pas automatique (dirons nous...)

    Puisque avant le test de comparaison, tu construit ton N°BCDE comme auparavant...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    numactuel = Right([N°BCDE], 3)
    numsuiv = clng(numactuel) + 1
    N°BCDE = "BC" & Right(Year([Date_BCDE]), 2) & Format(Month([Date_BCDE]), "00") & Format(numsuiv, "000")
    et après tu fais la comparaison...
    Donc tu auras quoiqu'il arrive ton numéro automatique :
    - si le mois ne change pas, il sera incrémenté et on y touchera pas...
    - si le mois a changé, il sera incrémenté mais on le vire pour le remplacer par 001

Discussions similaires

  1. Numérotation Automatique Personnalisée
    Par Dhumkazaar dans le forum Access
    Réponses: 4
    Dernier message: 10/05/2006, 20h34
  2. Numérotation automatique sous-formalaire
    Par stephane_37 dans le forum Access
    Réponses: 1
    Dernier message: 23/01/2006, 17h05
  3. [JTable] Numérotation automatique des lignes...
    Par lilou77 dans le forum Composants
    Réponses: 2
    Dernier message: 20/12/2005, 10h29
  4. Numérotation automatique de ligne
    Par jag2005 dans le forum Langage
    Réponses: 6
    Dernier message: 02/10/2005, 12h03
  5. Numérotation automatique selon les utilisateurs
    Par Safaritn dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 12/08/2005, 14h11

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