formateur informatique

Corriger les ruptures dans la suite des numéros de table

Accueil  >  Bureautique  >  Access  >  Access Astuces  >  Corriger les ruptures dans la suite des numéros de table
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :

Abonnez-vous gratuitement à la chaîne Youtube Rossetti Stéphane .
Sujets et formations similaires :


Incrémentation sans trous

Lorsque la clé primaire d'une table Access est bâtie sur un numéro auto-incrémenté, ce dernier est ignoré dès lors que l'enregistrement est supprimé. Pour des raisons de sécurité, comme ce numéro a déjà été utilisé, il n'est plus jamais rappelé. Et même s'il est conseillé de s'en accommoder, certains contextes peuvent justifier de rétablir une numérotation respectant une suite logique. Cette astuce montre comment la recréer simplement.



Source et procédure
Pour dérouler les opérations, nous proposons d'appuyer nos démonstrations sur une petite base de données. Comme le résume le volet de navigation sur la gauche de l'écran, cette toute petite base de données n'est constituée que de deux tables. Seule la première nous intéresse car elle porte la clé primaire.
  • Dans le volet de navigation, double cliquer sur la table Commerciaux,
Nous l'affichons ainsi en mode Feuille de données.

Table Access avec clé primaire automatiquement incrémentée et ruptures dans l-énumération

Cette table recense donc quelques commerciaux d'une entreprise, sur un niveau de détail très sobre. Vous notez deux ruptures dans la suite des numéros du premier champ. Il s'agit du champ de la clé primaire. La première rupture occasionne le passage de l'identifiant 9 à 11. La seconde provoque le passage du numéro 15 au numéro 18. Dans le premier cas, c'est un enregistrement intercalé qui a été supprimé. Dans le second, ce sont deux commerciaux consécutifs qui ont été éliminés. Si vous ajoutez un commercial à la suite avec sa civilité, son nom et son prénom, la numérotation se poursuit naturellement à partir de l'indice 19. Le champ c_num n'est effectivement pas à renseigner, il s'auto-génère.
  • Cliquer droit sur l'étiquette de ligne de l'enregistrement numéro 4,
  • Dans le menu contextuel, choisir Supprimer l'enregistrement,
  • Puis, valider le message de confirmation qui suit,
Supprimer un enregistrement de table Access pour créer une rupture dans les numéros du champ de la clé primaire



Nous venons d'occasionner une nouvelle rupture dans l'énumération. Le numéro 4 ne sera plus jamais utilisé, sauf si nous en décidons autrement. L'astuce consiste à supprimer ce champ de la clé primaire puis à le recréer. La numérotation auto-incrémentée se regénérera naturellement même a posteriori.
  • En haut à gauche du ruban Accueil, cliquer sur le bouton Affichage,
Nous basculons ainsi en mode création de la table.
  • Sélectionner le tout premier champ c_num en cliquant sur son étiquette de ligne,
  • Puis, enfoncer la touche Suppr du clavier,
Supprimer le champ de la clé primaire en mode conception de table Access pour effacer la numérotation automatique

Nous touchons à la structure de la table donc de la base de données. Cette manipulation est loin d'être anodine. C'est la raison pour laquelle un message d'alerte se déclenche.
  • Confirmer en cliquant sur le bouton Oui une première fois puis une deuxième fois,
La table est désormais dénuée d'identifiant. Nous devons les recréer.
  • Cliquer droit sur l'étiquette de ligne du champ c_civ,
  • Dans le menu contextuel, choisir Insérer des lignes,
Créer un nouveau champ dans la table Access pour accueillir la nouvelle clé primaire regénérée et automatiquement incrémentée

C'est ainsi que nous créons un nouveau champ vide au-dessus du champ c_civ.
  • Dans la zone Nom du champ, taper l'intitulé c_num,
  • Dans la zone Type de données, choisir NuméroAuto avec la liste déroulante,
  • Ensuite, cliquer droit sur l'étiquette de ce champ c_num,
  • Dans le menu contextuel, choisir clé primaire,
Ajouter la clé primaire numérique automatiquement incrémentée sur un champ de la table Access



Il est aussi possible de cliquer sur le bouton Clé primaire dans le ruban Création. Le champ doit toujours être préalablement désigné.

Bref, c'est ainsi que nous définissons ce champ comme celui des identifiants auto-incrémentés. Avec cette clé, il autorise les relations, il interdit les doublons et il est indexé.
  • Enregistrer les modifications avec le raccourci clavier CTRL + S,
  • Puis, cliquer de nouveau sur le bouton Affichage tout à fait à gauche dans le ruban,
Nous revenons ainsi en mode Feuille de données. Et comme vous pouvez le voir, tous les trous ont disparu dans l'énumération des identifiants. De fait, celle-ci se stoppe plus tôt.

Recréer une liste numérique sans trous en remplaçant le champ de la clé primaire dans la table Access

Par contre, il est absolument primordial de comprendre que ce type de manipulation ne peut et ne doit intervenir qu'en début de conception de la base de données. Elle peut être justifiée après l'importation de données externes mal ordonnancées par exemple. Une fois les relations établies entre les tables, Access vous empêche de procéder ainsi fort heureusement. Les relations préservent l'intégrité des données. Ne soyez jamais tenté de briser ces relations, même temporairement. Une fois les numéros réattribués dans la table parent, de nombreux enregistrements risqueraient de se retrouver orphelins dans la table enfant, faute de concordance. Sans les supprimer et donc perdre des données, les relations ne pourraient être rétablies.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn