J'ai une table dans MS Access qui a un type AutoNumber
dans le champ ID
Après avoir inséré quelques lignes, le ID
est devenu 200
Ensuite, j'ai supprimé les enregistrements du tableau. Cependant, lorsque j'ai essayé d'insérer une nouvelle ligne, je vois que ID
commence par 201
Comment puis-je forcer le ID
à redémarrer avec 1
, sans avoir à laisser tomber la table et en faire une nouvelle?
Vous pouvez utiliser:
CurrentDb.Execute "ALTER TABLE yourTable ALTER COLUMN myID COUNTER(1,1)"
J'espère que vous n'avez pas de relations qui utilisent cette table, j'espère qu'elle est vide et j'espère que vous comprenez que tout ce que vous pouvez (principalement) compter sur un numéro automatique pour être est unique. Vous pouvez obtenir des écarts, des sauts, des nombres très grands ou même négatifs, selon les circonstances. Si votre numéro automatique signifie quelque chose, vous avez un problème majeur qui attend.
Dans Access 2007 - 2010, accédez aux outils de base de données et cliquez sur Compacter et réparer la base de données, et il réinitialisera automatiquement l'ID.
En plus de toutes les préoccupations exprimées sur la raison pour laquelle vous donnez à un âne de rat quelle est la valeur ID (toutes sont correctes, vous ne devriez pas), permettez-moi d'ajouter ceci au mélange:
Si vous avez supprimé tous les enregistrements de la table, le compactage de la base de données réinitialise la valeur de départ à sa valeur d'origine.
Pour une table où il y a encore des enregistrements et où vous avez inséré dans le champ Numéro automatique une valeur inférieure à la valeur la plus élevée, vous devez utiliser la méthode de @ Remou pour réinitialiser la valeur de départ. Cela s'applique également si vous souhaitez réinitialiser au Max + 1 dans un tableau où les enregistrements ont été supprimés, par exemple, 300 enregistrements, dernier ID de 300, supprimer 201-300, compact ne réinitialise pas le compteur (vous devez utiliser @ Méthode de Remou - ce n'était pas le cas dans les versions antérieures de Jet, et, en effet, dans les premières versions de Jet 4, la première version de Jet qui permettait de manipuler la valeur de départ par programme).
Je pense que les seules façons de le faire sont décrites dans cet article .
L'article explique plusieurs méthodes. Voici un exemple:
Pour ce faire, dans Microsoft Office Access 2007, procédez comme suit:
Supprimez le champ NuméroAuto de la table principale.
Vous êtes sur le point de coller # ligne (s) dans une nouvelle table.
Cliquez sur Oui pour insérer les lignes.