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

Requêtes et SQL. Discussion :

Generer matricule en VBA en Access


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut Generer matricule en VBA en Access
    salut
    je vient de debuter la programmation en vba en access
    et elle me parait plus compliqué que les autres languages de haut niveau.
    est ce que je me trompe?
    Mais en entendant, voici ma préocupation:
    j'ai une table
    eleve(matricule,nom,prenom,sexe,anneNaiss)
    et un champ anneScolaire appartenant a un autre formulaire qui contient l'année scolaie (ex: 2015-2016)
    et je voudrais réaliser une marticule automatique pour l'instertion d'un nouvel élève de la sorte: 2015/005M
    oû :
    * "2015" provient du champ anneScolaire
    * "/" un caractère ajouter
    * "005" une numero auto incrémenter de 1 a chaque ajout
    * "M" provenant du champ sexe

    ne pouvant pas demarer, est ce que quelqu'un pourait-il m'aider!
    merci.

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut
    une solution en requête sql au problème ci-dessus serait aussi la bienvennue!

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code Sql Access! : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT  Left('2015-2016',4) & '/' & format(5,'000') & iif(Sex=1,'M','F') AS matricule FROM [élève];

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut
    Left('2015-2016',4)..........
    Mon '2015-2016' est stoker dans une zone de liste deroulante nommée anneSco!
    et anneSco n'a pas de source de contrôle (vide)
    jai donc penser à copier la valeur de anneSco seélectionée dans un zone de texte nommé temp afin de faire
    Left(temp,4)...
    Mais temp prend la valeur 1 si s'est le 1er element qui est séletionner et 2 si c'est le 2ième ...

    Ensuite
    format(5,'000')
    ceci est s'ensé incrémenter de 1 a chaque nouvel enregistrement?

    pour terminer
    iif(Sex=1,'M','F')
    pourquoi pas simplement ...& sexe & ...
    parce que le champ sexe contient deja une valeur 'M' ou 'F'.

  5. #5
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Bonsoir,
    Tu as une table T_eleve une table avec les colonnes(matricule,nom,prenom,sexe,anneNaiss)

    tu veux pour chaque nouvel élève un matricule de la sorte '2017/005M'

    Question 1 : le compteur (005) est-il par année scolaire ou quelle que soit l'année ?
    Hypothèse : c'est un compteur par année scolaire

    Alors il te faut créer une fonction publique dans un module standard qui te retourne le nouveau matricule pour l'élève
    A cette fonction tu passes 2 arguments en entrée : l'année scolaire (un entier de 4 chiffres) et le sexe ('M' ou 'F')
    comme
    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
    Public Function CreerMatricule(ByVal lngAnnee As Long, ByVal sSexe As String) As String
    ' un matricule est de la forme yyyy/nnn[M,S] où nnn est un compteur dans l'année scolaire
    '
    ' pour utiliser:    nouveauMatricule = CreerMatricule(2016, "F")
    '
        Dim s1 As String, n As Long
     
        'chercher le compteur maxi utilisé pour l'année scolaire
        s1 = Nz(DMax("Matricule", "T_eleve", " Left(Matricule,4) ='" & Cstr( lngAnnee) & "'"))
     
        If s1 = "" Then
            ' si s1 est vide alors aucun matricule n'a encore été créé cette année
            n = 1
        Else
            ' le matricule maxi existant est trouvé, on récupère le n° maxi
            ' 3 car à partir du 6éme et on convertit la chaine en Long
            n = CLng(Mid(s1, 6, 3)) + 1
        End If
     
        ' le résultat
        CreerMatricule = lngAnnee & "\" & Format(n, "000") & sSexe
     
    End Function
    Essaie de suivre en t'aidant de l'aide ACCESS via la touche F1
    CDLT
    "Always look at the bright side of life." Monty Python.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut
    ok merci beaucoup m'aider!
    merci bien.

  7. #7
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Toogda,

    Je suis content que tu aies pu utiliser ma réponse car ce n'était vraiment pas évident pour quelqu'un qui débute en VBA.
    Alors bravo !

    CDLT
    "Always look at the bright side of life." Monty Python.

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

Discussions similaires

  1. Ajouter un enregitrement a une table vide en VBA avec access
    Par Mateache dans le forum VBA Access
    Réponses: 4
    Dernier message: 03/01/2006, 15h36
  2. Réponses: 1
    Dernier message: 01/12/2005, 14h30
  3. Ouverture d'un fichier Excel en VBA par Access
    Par illight dans le forum Access
    Réponses: 2
    Dernier message: 02/11/2005, 11h14
  4. Macro VBA sur Access
    Par beurnoir dans le forum Access
    Réponses: 3
    Dernier message: 12/10/2005, 16h46
  5. Réponses: 3
    Dernier message: 06/09/2005, 10h27

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