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

VBA Access Discussion :

Incrémenter un champs


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Incrémenter un champs
    Bonjour,

    J'ai beau cherché je ne trouve pas...
    Voila j'ai besoin dans ma Table d'avoir un champs qui s'incrémente automatiquement (un genre de clé primaire) en fonction d'un autre champs.

    J'ai un champs année dans lequel je retrouve du 2008 et du 2009 et je voudrais créer un numéro qui s'incrémenter dans un champs nommé index de sorte à ce que je me retrouve avec un numéro unique allant de 1 à x mais que pour les données de 2009...

    Est ce possible? si oui comment faire? Je suis plus à l'aise en VBA que SQL merci beaucoup pour votre aide

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 338
    Points : 23 797
    Points
    23 797
    Par défaut
    Cela n'existe pas en automatique.

    Tu pourrais utiliser un champ AUtoNum mais il va générer une séquence sans s'occuper des années.

    Donc il va falloir le programmer.

    Personnellement voilà comment je procède :

    Je crée une table des compteurs avec un enregistrement par année :

    Compteur
    Annee (Integer)
    DernierNum (Long Integer)

    Ensuite j'ai une fonction qui va Incrémenter le compteur et retourner la valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    public Function IncrementerCompteur(prmAnnee as integer) as long
       dim result as long
     
       on error goto Err_IncrementerCompteur
     
       dim db as dao.database:set db=currentDb
       dim r as dao.recordset:set r=db.openRecordset("Compteur")
     
    RessayerModifCompteur:
       r.findfirst("[Annee]=" & prmAnnee)
     
       if not r.nomatch then
           r.edit
           result=r![DernierNum]+1
           r![DernierNum]=result
           r.udate
         else
           error 5 :'L'enr de l'année doit exister avant l'appel de la fonction
       end if
     
       r.close:set r=nothing
       db.close:set db=nothing
     
    Exit_IncrementerCompteur:
       IncrementerCompteur=result
       exit function
     
    Err_IncrementerCompteur:
       select case err.number
          case 'Enregistrement verrouillé (désolé je ne me souviens pas du numéro d'erruer)
             'Quelqu'un essaye déjà de modifier le compteur
             resume RessayerModifCompteur
     
          case else
             msgbox "Erreur " & err.number & ", " err.description
             resume Exit_IncrementerCompteur
     
       end select
     
    end function
    La partie délicate vient du moment où il faut déclencher IncrementerCompteur.
    Moi je l'ai fait sur BeforeInsert du formulaire.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. [MySQL] Incrémentation nom champ de formulaire
    Par Maryy dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/11/2006, 17h01
  2. Incrémenter un champ NumeroAuto
    Par tets88 dans le forum Access
    Réponses: 10
    Dernier message: 26/03/2006, 19h44
  3. Réponses: 7
    Dernier message: 01/02/2006, 15h49
  4. Incrémenter un champ
    Par Cyrius dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 01/11/2005, 21h17
  5. Réponses: 3
    Dernier message: 13/12/2004, 14h14

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