Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Définir le début de la numérotation
Avec une
clé primaire typée en
numéroAuto, la numérotation commence forcément à partir de l'indice 1. Si le client créé est supprimé, le nouvel indice attribué est le numéro 2 pour le prochain client. Un numéro déjà employé, même supprimé, n'est jamais réutilisé dans une
clé primaire auto-incrémentée.
L'idée est de débuter la numérotation des clients ou des factures à partir d'une valeur définie manuellement pour ne pas donner l'illusion que la société est fraichement créée. Mais naturellement, il est exclu de reproduire le précédent procédé des centaines de fois. Et comme vous le savez, il n'est pas possible de saisir une valeur dans un
champ auto-incrémenté. C'est la raison pour laquelle cette nouvelle
astuce Access montre comment solutionner cette problématique.
Base de données source
Les démonstrations peuvent s'établir à partir d'une petite
table vide offrant un
champ de clé primaire auto-incrémenté. Néanmoins, nous suggérons de récupérer une table existante.
- Télécharger le fichier debut-numerotation-identifiant.rar en cliquant sur ce lien,
- Le décompresser dans le dossier de votre choix,
- Double cliquer sur la base de données résultante pour l'ouvrir dans Access,
- Cliquer sur le bouton Activer le contenu du bandeau de sécurité,
- Puis, dans le volet de navigation sur la gauche de l'écran, double cliquer sur la table T_Clients,
Comme vous pouvez le voir, cette
table est constituée de trois
champs. Le premier est effectivement celui de la
clé primaire.
- Saisir un nom dans le champ C_nom et un prénom dans le champ C_Prenom,
Le premier numéro est effectivement attribué et il débute à l'indice 1.
- Cliquer droit sur l'étiquette de ligne de l'enregistrement ainsi créé,
- Dans le menu contextuel, choisir Supprimer l'enregistrement,
- Puis, valider l'alerte qui suit,
Nous retrouvons une table vierge.
- Saisir de nouveau un nom et un prénom dans les champs dédiés,
Sans surprise, c'est bien le numéro 2 qui est automatiquement attribué à ce nouvel
enregistrement remplaçant le précédent.
- Supprimer de nouveau cet enregistrement puis fermer la table T_Clients,
Créer le premier numéro par requête
Pour imposer le
début de la numérotation sur un indice bien défini, l'
astuce consiste à exploiter une
requête Ajout avec un
champ calculé. Ce champ calculé doit demander à l'utilisateur de préciser le
numéro de départ, au moment de l'exécution. Ce
numéro doit être forcé dans le champ de la
clé primaire puisque l'inscription manuelle n'est pas possible.
- En haut de la fenêtre Access, cliquer sur l'onglet Créer pour activer son ruban,
- Dans la section Requêtes du ruban, cliquer sur le bouton Création de requête,
- Dans la boîte de dialogue qui suit, cliquer sur le bouton Fermer,
Ainsi, nous n'ajoutons aucune
table. En effet, la
requête à construire est spécifique. Elle est destinée à ajouter des données dans une
table à définir en aval.
- Dans le ruban Créer, cliquer sur le bouton Ajout,
- Dans la boîte de dialogue qui suit, choisir la table T_Clients avec la liste déroulante,
Nous venons de transformer la
requête. Il ne s'agit plus d'une simple
requête sélection, mais d'une
requête destinée à insérer des données. A ce titre, vous voyez apparaître la
ligne Ajouter à dans la
grille de requête, en bas de l'éditeur.
- Dans la zone Champ de la première colonne, saisir la syntaxe suivante :
Depart:[Quel numéro ?]
Nous venons de créer un
champ calculé paramétré. Il se nomme
Depart. Et comme le veut la
syntaxe Access, il est suivi du symbole des deux points (:). Ils annoncent le traitement à suivre. En guise de traitement, nous lui passons un
champ, en attestent les crochets. Mais ce champ n'existe pas. Ce leurre imposera d'afficher son contenu au moment de l'exécution. L'utilisateur n'aura plus qu'à renseigner la valeur, en l'occurrence du numéro, pour que l'insertion se produise. Mais encore faut-il indiquer à la
requête dans quel champ l'insertion doit avoir lieu.
- Dans la zone Ajouter à , taper le nom du champ C_num,
Il s'agit bien du
champ de la clé primaire.
- A gauche du ruban Créer, cliquer sur le bouton Exécuter,
- A l'invite, taper par exemple la valeur 999 pour le champ paramétré puis valider,
Une alerte apparaît puisqu'il s'agit de toucher au coeur des données.
- Valider l'alerte en cliquant sur le bouton Oui,
- Fermer la requête sans l'enregistrer,
- Dans le volet de navigation, double cliquer sur la table T_Clients,
Un
enregistrement non abouti existe. Il s'agit de celui créé par notre
requête. Seul l'identifiant est renseigné.
- Cliquer droit sur son étiquette de ligne,
- Dans le menu contextuel, choisir la commande : Supprimer l'enregistrement,
- Créer un nouvel enregistrement en renseignant le nom et le prénom,
Comme vous pouvez le voir, nous avons parfaitement réussi à décaler le point de départ de la
numérotation automatiquement incrémentée. Elle débute désormais à Mille.