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 :

Numérotation automatique Access A0001, A0002


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Numérotation automatique Access A0001, A0002
    Bonjour à toutes et à tous.

    Rapidement, je souhaite créer un champ de numérotation à l'intérieur d'une entité (table).

    Je souhaite que les 3000 premières entrées soient numérotées ainsi :

    A0001
    A0002
    A0003
    A0004 et ainsi de suite.

    Les 5000 suivantes seront numérotées ainsi

    B0001
    B0002
    B0003
    B0004
    B0005
    B0006 et ainsi de suite.

    Les 10 000 suivantes seront numérotées ainsi

    C00001
    C00002
    C00003
    C00004
    C00005 et ainsi de suite.

    Et ce jusqu'à la lettre Z.

    Merci d'avance pour les réponses apportées.

    En l'attente.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Ta numérotation accepte-t'elle les trous et les 0 ?

    Si oui tu peux utiliser un AutoNum + un champ calculé
    Un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chr(int([NomChampAutoNum]/5000)+asc("A")-1) & right(format([NomChampAutoNum],string(10; "0")); 4)
    qui donne pour 12500 : B2500 et pour 10000 : B0000.

    L'autonum fait le décompte (avec trous éventuellement) et le champ calculé l'affiche comme tu le veux.

    Si non il faut que tu te programmes cela à la main. Il me semble qu'il y a une FAQ ou/et un tutorial là dessus. Attention la solution simple avec DMax() proposées dans la FAQ NE MARCHE CORRECTEMENT QUE si tu es en environnement monoutilisateur.

    Si tu utilises la méthode DMax() en environnement multi-utilisateur tu risque d'avoir 2 fois le même numéro. Ce n'est pas forcément un drame mais il faut ajouter du code pour gérer cela.

    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.

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Access 2007
    Bonjour et merci de correspondre.

    Je souhaite effectuer cette numérotation depuis Access 2007.
    Oui, la base de données est administré pour qu'un seul utilisateur puisse accéder à la base... mono-utilisateur... Par défaut sur ACCESS 2007.

    Pour ma base de données, qu'il y ait des trous ou des 0, cela peu m'importe.
    Ce que je veux, c'est débuter la base par A0001 jusque qu'en je décide de passer à B0001. Et ainsi de suite. Facilité pour effectuer une recherche par la suite.

    Merci vraiment pour ta réponse mais pourrais-tu, s'il te plaît, m'indiquer où j'introduis le code ?

    Merci.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Dans une requête dont tu te sers ensuite pour afficher tes données. Dans la table tu ne garde que le numeroauto.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select [TaTable].[TonAutoNum], chr(int([TonAutoNum]/5000)+asc("A")-1) & right(format([NomChampAutoNum],string(10, "0")), 4) as [TonNum] from [TaTable]

    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.

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Numérotation Auto Access 2007
    Bonjour René, et merci des réponses apportées.

    Voici mon champs N° (photo 1) Pièce Jointe

    J'ai bien créer une requête via l'assistant Requête.
    ...

    Une fois ma requête créée, je clique sur l'onglet Entrées Requête (photo 2) Pièce Jointe, clique gauche souris, et le menu contextuel me propose un mode SQL.

    Il y a d'inscrit ;

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Entrées.[N°]
    FROM Entrées;
    Est-ce ici que je dois entrer votre code ?

    Merci René, parce que je débute, et je suis seul.
    Images attachées Images attachées   

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    À vrai dire si tu débutes (et même après) il est plus facile d'éviter le SQL et d'utiliser le designer. Cela fait généralement gagner un temps fou.

    Donc dans le mode "designer" (Conception) tu va te placer dans une colonne vide et écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NoAlfaNum : chr(int([Entrées].[]/5000)+ASC("A")-1) & RIGHT(format([Entrées].[],string(10, "0")), 4)
    Cela va te créer un champ calculé nommé NoAlfaNum qui va afficher le resultat de la formule.

    Petite explication du calcul :
    • Chr() transforme un nombre en son caractère correspondant dans la table ASCII (de 0 à 255)
    • Asc() transforme un caractère en un nombre (son code ASCII, de 0 à 255)
    • Int() prend la partie entière d'un nombre décimal (toujours la partie entière, pas d'arrondi)


    Note que Access va traduire en francais les noms des fonctions.

    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.

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Numérotation Auto Access 2007
    Bonsoir,

    Je suis tes recommandations à la lettre.
    Mais en vain. J'ai une version française d' ACCESS.
    Alors, j'ai trois mode de création.
    TABLE, FORMULAIRE, REQUÊTE.

    Lequel dois-je choisir.


  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    1. Il faut que tu choississe la création de requête.
    2. Tu choisi le type requête de sélection (c'est celaui par défaitut)
    3. Tu fait la requête que tu as mentionnée.
    4. Tu ajoute une colonne ou tu te place sur une colonne vide.
    5. Et tu mets dans cette colonne vide le texte mentionné plus haut.
    6. Ainsi tu ajoutes un champs calculé à une requête.


    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.

  9. #9
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Numérotation Auto Access 2007
    Bonsoir et merci pour le suivi que vous apportez à mes demandes.

    Alors, j'ai suivi pas à pas vos instructions, et j'ai un message d'erreur.
    J'aimerai vraiment réussir.
    C'est pour cette raison, que j'ai capturé toutes les étapes...

    Cela vous permettra aisément de comprendre ou je butte...


    Assistant Requête.png (57,5 Ko)
    Assistant Requête Simple.png (82,1 Ko)
    Assistant Requête Simple N°.png (79,4 Ko)
    Assistant Requête Simple Modifier.png (94,9 Ko)
    Messages d'Erreur.png (30,5 Ko)

    Merci encore pour tout.
    Images attachées Images attachées      

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Désoé je me suis encore fait avoir par Access en contexte francophone. Il faut remplacer les , par des ; pour les séparateurs de paramètres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NoAlfaNum : chr(int([Entrées].[]/5000)+ASC("A")-1) & RIGHT(format([Entrées].[];string(10; "0")); 4)
    Attention si tu écris directement du SQL ou du VBA il faut garder la , comme séparateur de paramètres.

    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. Numérotation Automatique Personnalisée
    Par Dhumkazaar dans le forum Access
    Réponses: 4
    Dernier message: 10/05/2006, 20h34
  2. Numérotation automatique sous-formalaire
    Par stephane_37 dans le forum Access
    Réponses: 1
    Dernier message: 23/01/2006, 17h05
  3. [JTable] Numérotation automatique des lignes...
    Par lilou77 dans le forum Composants
    Réponses: 2
    Dernier message: 20/12/2005, 10h29
  4. Numérotation automatique de ligne
    Par jag2005 dans le forum Langage
    Réponses: 6
    Dernier message: 02/10/2005, 12h03
  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