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 :

Attribution d'un numero pour chaque nouvelle entrée [AC-2007]


Sujet :

Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Attribution d'un numero pour chaque nouvelle entrée
    Bonjour,

    Je suis entrain de créer une base de données pour gerer les immobilisation dans ma société
    j'aimerais donc avoir un numéro d'immobilisation pour chaque nouvelle entrée il devra être dans ce genre BIO10001 ou BIO le département sera renseigné dans une liste déroulante, 10 l'année en cours et 001 numéro incrémenté
    Par contre il faut que l'incrémentation tienne compte du département et de l'année il doit y avoir BIO10001 et ROB10001 ou encore BIO11001

    Est ce possible?

    merci d'avance

  2. #2
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    1 794
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 85
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 794
    Points : 3 094
    Points
    3 094
    Par défaut
    Bonjour,

    Dans un premier temps un lien qui peut vous ouvrir la voie à suivre.

    http://access.developpez.com/faq/?pa...reerSonNumAuto
    Cordialement.

    RJ

  3. #3
    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
    bonjour
    Une piste a adapter

    Code :
    Dep="BIO" ou autre valeur
    *
    Control_ini = "002"
    Control_new = Dep & Year(Date) & Format([Control_ini] + 1, "000")
    *
    *
    Control_new = BIO10003

    ahmad

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour rjamin,

    J'ai essayé de suivre ton lien. Sans succès.

    Bonjour gilome,

    Je ferais comme ceci

    - dans la table des immobilisations un champ autoNum ----> parmi tous les enregistrements BIOyy , le dernier ajouté est celui qui a le plus grand autonum parmi ses paires.
    - dans ton formulaire d’encodage d’un nouveau poste :
    ** construire une chaîne BIOyy
    ** rechercher le plus récent dont le matricule est comme BIOyy & "*"
    si pas trouvé ---> matricule = BIOyy001
    si trouvé ---> ajouter 1 au dernier matricule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Matricule = left(Matricule,5) &  format( Right(Matricule,3)+1,"#,#000")
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci pour vos réponse

    mais le problème c'est que j'ai plusieurs département et que pour chaque département ma numérotation doit repartir de 001

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Où est le problème ? "BIO" ce n'est pas le département ?

    donne un exemple concret pour le 33ème de cette année.
    Qu'y a t-il dans la table pour le 32ème ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Le problème c'est que BIO n'est pas le seul département il y en a 4 autre

    Au niveau des exemples c'est pas évident mais le 32eme dans la table peut s'appeler ROB10005 ou encore GA10008 ca dépend du nombre d'élément enregistrer dans chaque départements

    c'est pour ca que j'ai un peu de mal car le numéro d'immobilisation doit tenir compte du département de l'année et du nombre d'élément qu'il y a au sein de ce département

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    OK, j’adapte mon 1er texte
    Je ferais comme ceci

    - dans la table des immobilisations un champ autoNum ----> parmi tous les enregistrements DEPARTEMENTyy , le dernier ajouté est celui qui a le plus grand autonum parmi ses paires.
    - dans ton formulaire d’encodage d’un nouveau poste :
    ** construire une chaîne DEPARTEMENTyy
    ** rechercher le plus récent dont le matricule est comme DEPARTEMENTyy & "*"
    si pas trouvé ---> matricule = DEPARTEMENTyy001
    si trouvé ---> ajouter 1 au dernier matricule

    Où département = soit BIO, soit ROB ….

    le 32 ème ROB de cette année s’appelle ROB10032 ok ?
    Si je comprends ton exemple le département ce n’est pas toujours 3 caractères ? (ex GA)
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Je pense qu'en theorie ca devrait marcher
    Par contre sans vouloir abuser est que vous pouvez m'abuser pour le code

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    autant pour moi m'aider pour le code et la marche a suivre

  11. #11
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    J'ai besoin de plus de détail.
    Peux-tu poster une DB compatible Access2000 ?
    et me dire le nom du formulaire et celui de la table ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Malheureusement access ne veut pas l'enregistrer sous un format compatible access 2000

    sinon la table se nomme IMMO et le formulaire Details Immo

    si vous ne pouvez pas sans la DB c'est pas grave j'y arriverai bien un jour ou l'autre

  13. #13
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    poste l'image du formulaire ouvert

    poste l'image de la définition de la table.

    Je reviens après 19:30
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Voila les images de ma base

    Merci d'avance
    Fichiers attachés Fichiers attachés

  15. #15
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Je ne connais pas les écrans de Access2007

    Question 1
    Sur Base Immo.jpg les noms que je lis au-dessus des colonnes : N_immo, Département …. sont-ils les noms des contrôles dans le formulaire ?

    Question 2
    Comment déclenches-tu la mise à jour de la table (clic sur un bouton ?, lequel ?)


    IMMO creation.jpg le nom de la table est "‘IMMO" OK ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Question 1
    oui

    Question 2
    Pour entrer une nouvelle Immo je clique sur enregistrer et nouveau dans le fomulaire

    et le nom de la table est bien IMMO

  17. #17
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Je te propose ceci :

    1° tu crées une requête appelée : "rIMMO" dont voici le sql

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TOP 1 IMMO.Enregistrement, IMMO.N_IMMO
    FROM IMMO
    WHERE (((IMMO.N_IMMO) Like "*" & [Formulaires]![IMMO]![Département] & Format(Date(),"yy") & "*"))
    ORDER BY IMMO.Enregistrement DESC;
    Lorsque le formulaire IMMO est ouvert et que le champ Département est complété, la requête donne le matricule précédent pour ce département ou null si c’est le 1er investissement de cette année pour ce département.
    Vérifie que cette requête fonctionne chez toi.


    2° Dans ton formulaire, crée un bouton de commande appelé "btnMettreAJour" , auquel tu associes le code suivant pour l’événement "sur clic"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub btnMettreAJour_Click()
    Dim Matricule As String
    'si N_Immo est null, c'est qu'il s'agit d'un nouvel enregistrement  --> calculer le matricule
    If IsNull(Me.N_Immo) Then
       Matricule = Nz(DLookup("N_immo", "rImmo"), "") 'vide si pas dans la table
         If Matricule = "" Then 'si vide --> 1er de cette année
              Me.N_Immo = Me.Département & Format(Date, "YY") & "001"
         Else                   'si précédent existe --> +1
              Me.N_Immo = Left(Matricule, Len(Matricule) - 3) & Format(Right(Matricule, 3) + 1, "#,000")
         End If
    End If
    End Sub
    pour tester :

    ouvre ton formulaire
    affiche un existant
    clic sur le bouton ----> rien ne se passe

    Crée un nouveau pour un département qui a déjà investi cette année --->
    on ajoute 1

    Crée un nouveau pour un département qui n'a pas encore investi cette année ---> département001.

    Préviens quand OK.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  18. #18
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Alors la requête fonctionne

    Mais quand je clic sur le bouton associe au code que tu as fait rien ne se passe quand le champ N_Immo est vide

    Autant pour moi les macro VBA était désactive mais il reste quand même un problème access me dit qu'il ne trouve pas le champs Me.departement

    Problème du champ département réglé en fait il faut ecrire Me!département
    Par contre il me dit qu'il y a un probleme aau niveau
    Matricule = Nz(DLookup("[N_Immo]", "rIMMO"), "") 'vide si pas dans la table

    Dernier EDIT : problème résolu c'était un problème dans le code SQL de la requête

    Donc ca marche Merci Beaucoup

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/03/2013, 17h10
  2. Réponses: 9
    Dernier message: 30/01/2012, 11h56
  3. Réponses: 3
    Dernier message: 20/09/2011, 17h46
  4. Réponses: 6
    Dernier message: 27/08/2006, 18h57
  5. MAJ d'un attibut pour chaque nouvelle entrée
    Par yoshï dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 24/03/2006, 13h06

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