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 personnalisée [AC-2013]


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Commerçant
    Inscrit en
    Mai 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Commerçant

    Informations forums :
    Inscription : Mai 2014
    Messages : 60
    Points : 21
    Points
    21
    Par défaut Numérotation automatique personnalisée
    Bonjour,

    j'ai Access 2013. Je ne maîtrise pas VBA. Mais j'ai pourtant besoin d'une numérotation automatique personnalisée.

    Une table T_Produits contient le champ [Produit]
    Une table T_Produits_Ingrédients contient le même champ [Produit] et un deuxième champ [ingrédients]. Cette table est en sous-feuille de données de la table T_Produits.

    Je voudrais obtenir automatiquement un numéro de rang pour chaque ingrédient d'un produit. Le numéro de rang ira croissant au fur et à mesure de la saisie des enregistrements d'ingrédients. Mais, ce numéro de rang doit redémarrer à "1" pour chaque produit.

    Aperçu du résultat souhaité:

    Nom : Capture.JPG
Affichages : 1780
Taille : 20,5 Ko

    La numérotation peut apparaître dans une requête ou dans la table, pourvu que des ajouts ou suppressions d'enregistrement dans la table soient suivis de la mise à jour du rang.

    Merci d'avance pour l'aide que vous pourrez m'apporter.

    Pascal

  2. #2
    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 : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    Pourquoi veux-tu cela dans une table ?

    Avoir cette numérotation dans tes formulaires et états ne te suffit pas.

    Pour les formulaires regarde ici : http://www.developpez.net/forums/d97...e/#post5866065

    Pour les états, c'est dans la FAQ : http://access.developpez.com/faq/?pa...rt#NumLignEtat
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Commerçant
    Inscrit en
    Mai 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Commerçant

    Informations forums :
    Inscription : Mai 2014
    Messages : 60
    Points : 21
    Points
    21
    Par défaut Numérotation automatique personnalisée
    Bonjour Claude,

    merci pour ta réponse.

    J'ai besoin en tout cas de récupérer tous ces numéros de rang simultanément. ils serviront pour diviser une quantité qui est calculée pour chaque produit (dans une requête)

    Voici ce que j'attends:

    Nom : Capture2.JPG
Affichages : 1757
Taille : 27,1 Ko

    Si cela peut se faire en passant par un formulaire, cela me va tout à fait.

    Pascal

  4. #4
    Membre régulier Avatar de zoopsys
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 68
    Points : 80
    Points
    80
    Par défaut
    bonjour,

    Donc, si tu supprimes ta ligne CACAO du produitB, la tomate doit passer au rang 2 et le jambon au rang 3 ?

  5. #5
    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 : 282 192
    Points
    282 192
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  6. #6
    Membre à l'essai
    Homme Profil pro
    Commerçant
    Inscrit en
    Mai 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Commerçant

    Informations forums :
    Inscription : Mai 2014
    Messages : 60
    Points : 21
    Points
    21
    Par défaut Numérotation automatique personnalisée
    Citation Envoyé par zoopsys Voir le message
    bonjour,

    Donc, si tu supprimes ta ligne CACAO du produitB, la tomate doit passer au rang 2 et le jambon au rang 3 ?
    Bonjour Zoopsys,

    merci de t'intéresser à mon problème.

    Oui, la suppression de Cacao entraînera exactement ce que tu dis.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Commerçant
    Inscrit en
    Mai 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Commerçant

    Informations forums :
    Inscription : Mai 2014
    Messages : 60
    Points : 21
    Points
    21
    Par défaut Numérotation automatique personnalisée
    Citation Envoyé par ClaudeLELOUP Voir le message
    Non Claude, je ne connais pas ça, je vais le regarder, c'est sans doute proche de mon sujet.

    Merci pour le tuyau.

  8. #8
    Membre régulier Avatar de zoopsys
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 68
    Points : 80
    Points
    80
    Par défaut
    voici ce que je peux te proposer :
    1 - supprimes les accents des noms de tables et des champs
    2 - Ajoute un champ NO_AUTO dans la table T_PRODUITS_INGREDIENTS qui servira de tri uniquement

    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
    42
    43
    44
    45
    46
    47
    48
    49
    Sub NumAuto()
     
    Dim rs                  As DAO.Recordset 'necessite la reference
    Dim strSQL              As String
    Dim lngRang             As Long
    Dim Debut_Lecture       As String
    Dim Record_precedent    As String
     
    strSQL = "SELECT PRODUIT, INGREDIENTS, RANG FROM T_PRODUITS_INGREDIENTS ORDER BY PRODUIT, NO_AUTO"
     
    Set rs = CurrentDb.OpenRecordset(strSQL)
     
    lngRang = 1
    Record_precedent = ""
    Debut_Lecture = ""
     
     
    While Not rs.EOF
     
        Debut_Lecture = rs!PRODUIT
     
        'Meme produit
        If Debut_Lecture = Record_precedent Then
     
                lngRang = lngRang + 1
                rs.Edit
                rs!rang = lngRang
                rs.Update
     
        'Changement de produit
        Else
     
                'Initialise le rang a 1
                lngRang = 1
                rs.Edit
                rs!rang = lngRang
                rs.Update
     
        End If
        Record_precedent = Debut_Lecture
        rs.MoveNext
     
    Wend
     
    rs.Close
    Set rs = Nothing
     
     
    End Sub
    c'est un peu bourrin comme méthode, puisque çà renumérote toute la table.
    Il est possible de rajouter un filtre sur le produit en-cours.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Commerçant
    Inscrit en
    Mai 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Commerçant

    Informations forums :
    Inscription : Mai 2014
    Messages : 60
    Points : 21
    Points
    21
    Par défaut Numérotation automatique personnalisée
    Merci Zoopsys.

    Désolé de poser les deux questions suivantes, qui sont d'un niveau faible:

    1 Supprimer les accents : est-ce qu'Access va corriger les noms de champs et de tables dans toutes les tables et requêtes dépendantes?

    2 Je vais tester la solution que tu as mise au point. Pardonne mon ignorance stp, mais je dois coller ton code dans quoi? une table? une requête?

  10. #10
    Membre à l'essai
    Homme Profil pro
    Commerçant
    Inscrit en
    Mai 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Commerçant

    Informations forums :
    Inscription : Mai 2014
    Messages : 60
    Points : 21
    Points
    21
    Par défaut Numérotation automatique personnalisée
    Bonjour Zoopsys,

    j'ai exécuté tes recommandations.

    J'ai supprimé les accents. Je verrai bien s'il faut corriger d'autres tables/requêtes, ce n'est pas insurmontable.

    J'ai collé le code dans un module, et créé une requête avec un champ qui contient :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    NO_AUTO: NumAuto("SELECT PRODUIT, INGREDIENTS, RANG FROM T_PRODUITS_INGREDIENTS ORDER BY PRODUIT, NO_AUTO")
    J'ai l'impression d'être sur la bonne voie car je reçois le message "undefined function Number Auto in expression" (oui, mon Access est en anglais). J'ai déjà rencontré cette difficulté dans le passé et j'en étais venu à bout, je ne sais plus comment (mais grâce à ce forum, ça c'est sûr) Je creuse cette question avant de te faire part du résultat.

    Merci encore et bonne journée.

  11. #11
    Membre régulier Avatar de zoopsys
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 68
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par 24071959 Voir le message
    J'ai collé le code dans un module, et créé une requête avec un champ qui contient :
    "NO_AUTO: NumAuto("SELECT PRODUIT, INGREDIENTS, RANG FROM T_PRODUITS_INGREDIENTS ORDER BY PRODUIT, NO_AUTO")"
    Je ne suis pas sûr de comprendre ce que tu essayes de faire.

    Quand tu renseignes ta table, tu le fais bien depuis un formulaire de saisie ?
    C'est à partir de ce formulaire de saisie, que tu peux appeler la procédure NumAuto sur l'évènement "Après MAJ" par exemple.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Commerçant
    Inscrit en
    Mai 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Commerçant

    Informations forums :
    Inscription : Mai 2014
    Messages : 60
    Points : 21
    Points
    21
    Par défaut Numérotation automatique personnalisée
    Bonjour Zoopsys,

    oui, je renseigne le champ ingrédient à partir d'un formulaire.
    J'ouvre le formulaire "Produit", et le sous-formulaire basé sur la table T_Produits_ingredients y est inclus. Je saisis dans ce sous-formulaire.

    Je n'ai pas besoin de lire directement le n° de rang dans ce sous-formulaire. J'ai besoin qu'il existe car il sera appelé dans une requête qui classera les ingrédients qui figurent dans des Compositions de plusieurs produits.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Commerçant
    Inscrit en
    Mai 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Commerçant

    Informations forums :
    Inscription : Mai 2014
    Messages : 60
    Points : 21
    Points
    21
    Par défaut Numérotation automatique personnalisée
    Zoopsys,

    je précise que le sous-formulaire affiche la table Produits_Ingredient en mode feuille de données.
    Images attachées Images attachées  

  14. #14
    Membre régulier Avatar de zoopsys
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 68
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par 24071959 Voir le message
    Zoopsys,

    je précise que le sous-formulaire affiche la table Produits_Ingredient en mode feuille de données.
    Tu peux appeler cette procédure "NumAuto" dans ton sous-formulaire lors de l'évènement "Après MAJ" (ou after update) par exemple.

  15. #15
    Membre à l'essai
    Homme Profil pro
    Commerçant
    Inscrit en
    Mai 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Commerçant

    Informations forums :
    Inscription : Mai 2014
    Messages : 60
    Points : 21
    Points
    21
    Par défaut Numérotation automatique personnalisée
    Zoopsys,

    merci pour ta persévérance.

    J'ouvre le formulaire en mode design.

    Les propriétés "Evènements" du sous-formulaire ingredients, ne proposent que "on enter" et "on exit" (pas aprs MAJ). Ce n'est pas vraiment un sous-formulaire, c'est une vue de la table.

    Je continue néanmoins, et je choisis "on exit", puis j'attribue le choix "procédure évènementielle", et que je clique sur "...".

    J'obtiens l'écran suivant:

    Nom : Capture evenement.JPG
Affichages : 1716
Taille : 87,3 Ko

    On voit en arrière plan la fin de ton code.

    Est-ce dans la fenêtre de premier plan que j'écris "NumAuto", ou bien ton code?

    Je reviens un peu plus haut dans la discussion:
    - Ai-je bien fait de coller ton code dans un module?
    - Pourquoi est-ce que je reçois le message "Undefined function in expression"?
    - Le NO_AUTO va-t-il être créé dans la table T_Produits_ingredients? ou bien ailleurs?

    En résumé, je ne sais pas vraiment comment on se sert d'un code.

  16. #16
    Membre régulier Avatar de zoopsys
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 68
    Points : 80
    Points
    80
    Par défaut




    Je reviens un peu plus haut dans la discussion:
    - Ai-je bien fait de coller ton code dans un module? OUI
    - Pourquoi est-ce que je reçois le message "Undefined function in expression"? il te surlignes pas l"endroit exact qui pose problème ?
    - Le NO_AUTO va-t-il être créé dans la table T_Produits_ingredients? ou bien ailleurs? Il faut que tu rajoute le champ manuellement dans la table T_PRODUITS_INGREDIENTS
    cf mon message : "2 - Ajoute un champ NO_AUTO dans la table T_PRODUITS_INGREDIENTS qui servira de tri uniquement"

  17. #17
    Membre à l'essai
    Homme Profil pro
    Commerçant
    Inscrit en
    Mai 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Commerçant

    Informations forums :
    Inscription : Mai 2014
    Messages : 60
    Points : 21
    Points
    21
    Par défaut Numérotation automatique personnalisée
    L'écran propriétés que je vois est différent du tien. il est comme ça:

    Nom : Capture propriétés.JPG
Affichages : 1726
Taille : 53,2 Ko

    Pour avoir le même écran que toi, il faut peut-être que je crée un formulaire pour remplacer la feuille de données actuelle. OK, je vais le faire.

    Non, pas de précision sur "Undefined function". La dernière fois que j'ai eu ça, il fallait cocher une référence dans les outils 'Alt+F11) Il manquait DAO (ou ADO?). Aujourd'hui, c'est coché.

    Oui, j'avais bien créé le champ NO_AUTO dans la table. Je n'étais pas sûr qu'il allait être calculé dans la table même. En tout cas, il existe.

  18. #18
    Membre régulier Avatar de zoopsys
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 68
    Points : 80
    Points
    80
    Par défaut
    oui, Microsoft DAO ... doit être activé

  19. #19
    Membre à l'essai
    Homme Profil pro
    Commerçant
    Inscrit en
    Mai 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Commerçant

    Informations forums :
    Inscription : Mai 2014
    Messages : 60
    Points : 21
    Points
    21
    Par défaut Numérotation automatique personnalisée
    Nous progressons.

    Table remplacée par formulaire.

    Après mise à jour, j'obtiens:

    Run-time error 3061
    Too few parameters. Expected 1

    Nom : Capture ECHEC.JPG
Affichages : 1728
Taille : 99,0 Ko

  20. #20
    Membre régulier Avatar de zoopsys
    Homme Profil pro
    Inscrit en
    Août 2008
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 68
    Points : 80
    Points
    80
    Par défaut
    Vérifie si les noms des champs correspondent bien à ceux de ta table.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2007] Numérotation Automatique personnalisée
    Par Rogatic dans le forum VBA Access
    Réponses: 7
    Dernier message: 26/06/2012, 12h55
  2. Numérotation automatique personnalisée
    Par pat_che dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/01/2008, 09h05
  3. Numérotation automatique personnalisée
    Par Nancyfr dans le forum Access
    Réponses: 0
    Dernier message: 24/07/2007, 09h52
  4. Numérotation Automatique Personnalisée
    Par Dhumkazaar dans le forum Access
    Réponses: 4
    Dernier message: 10/05/2006, 20h34
  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