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 :

[VBA] algo pour incrémentation type mois-num


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 43
    Points : 24
    Points
    24
    Par défaut [VBA] algo pour incrémentation type mois-num
    Lut' a tous

    Voila mon probléme: quand j'ouvre un formulaire je dois génerer un code de type M-X, M étant le numero du mois en cours et X et le Num d'une commande durant le mois. Voila le code que j'ai établie en m'aidant de la FAQ (http://php.developpez.com/faq/?page=dates#date_jma)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $date = "now";
    list($jour, $mois, $annee) = sscanf($date, "%d-%d-%d")
    code = DMax("codecommandefournisseur", "gecommandefournisseur")
        dmois = Left(code, Len(code) - 4)
        ref = Right(code, 3)
        if ($mois > dmois) then
            dmois = $mois
        End If
    resultat = dmois & ref + 1
     
    nouv![codecommande] = resultat
    il s'agit de la table: gecommandefournisseur avec pour champs:
    numcommndefournisseur (num auto), codecommandefournisseur et date
    mais alors mon code marche pas du tout!!!
    si quelqu'un pouvait m'aider?

  2. #2
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 150
    Points : 169
    Points
    169
    Par défaut
    hum, tu aurais pas repiqué un code en php ? parce que la syntaxe que tu utilises ne risque pas de marcher en vba

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 43
    Points : 24
    Points
    24
    Par défaut
    oups!!!! maintenant que tu le dis!!! j'avais pas vu que j'etait dans la faq PHP!!

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 150
    Points : 169
    Points
    169
    Par défaut
    en terme de syntaxe ça serait plutôt du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    strMois = DatePart("m", Now)
    code = DMax("codecommandefournisseur", "gecommandefournisseur")
        dmois = Left(code, Len(code) - 4)
        ref = Right(code, 3)
        If (strMois > dmois) Then
            dmois = strMois
        End If
    resultat = dmois & ref + 1
     
    nouv![codecommande] = resultat
    par compte ton code à 1ère vue ne gère pas le cas où la dernière commande date du mois précédent. Je pense qu'il manque un test du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        If (strMois > dmois) Then
            resultat = strMois & 1
        else
            resultat = dmois & ref + 1
        End If

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 43
    Points : 24
    Points
    24
    Par défaut
    oui c'est vrai, j'avais oublier le cas du mois de janvier et decembre, merci
    ca marche nickel, sauf que je cherche la comment faire pour que ref soit un chiffre de type 003 et non 3. je pense teste la valeur a chaque fois et si la valeur et en dessous de 10 alors je rajoute deux zeros, et ainsi de suite
    encore merci!

  6. #6
    Membre habitué
    Inscrit en
    Juillet 2002
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 150
    Points : 169
    Points
    169
    Par défaut
    chiffre de type 003
    jusqu'à présent les zéros à gauche sont non significatifs en mathématique

    ce que tu veux c'est en réalité une chaîne de caractères

    tu fais par ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ref = String(3 - len(ref), "0") & ref
    donc si ref vaut 1 ça donne 001
    si ref vaut 12 ça donne 012
    si ref vaut 123 ça donne 123

    @+

  7. #7
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    et Format(Nombre, "000") aussi
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  8. #8
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 43
    Points : 24
    Points
    24
    Par défaut
    en fait pour les nombres j'ai fait comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     If (ref + 1 < 10) Then
               resultat = dmois & 0 & 0 & ref + 1
        ElseIf (ref + 1 < 100 And ref + 1 > 9) Then
               resultat = dmois & 0 & ref + 1
        End If
    pour l'instant ca marche pour le premier cas.
    merci a tous

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

Discussions similaires

  1. [AC-2003] [VBA] Opération non autorisée pour ce type d'objet.
    Par ludobalu dans le forum VBA Access
    Réponses: 7
    Dernier message: 31/10/2012, 08h26
  2. [XL-2003] Souci de code VBA pour trier par mois.
    Par NoobProg dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/07/2011, 16h45
  3. Pondération de feuilles pour un algo Min/Max (type Tron)
    Par Cypher666 dans le forum Intelligence artificielle
    Réponses: 1
    Dernier message: 17/03/2011, 22h38
  4. Réponses: 1
    Dernier message: 15/11/2007, 07h04
  5. [VBA-E] code pour incrémentation
    Par tarmin dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 23/02/2007, 15h58

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