Juste curieux, lorsque j'ai importé des données d'une feuille de calcul avec 519 lignes dans une table vide, pourquoi mes clés de numérotation automatique ont-elles débuté à 56 557 618? Quelle taille peut-il avoir? Je ne veux pas finir par manquer de chiffres pour mon domaine clé primaire car je n'ai même pas commencé le projet et je m'attends à faire des feuilles de calcul régulièrement.MS Access AutoNumber à l'importation
Répondre
L'accès se souvient du dernier identifiant qu'il a donné même sur une table vide. Pour réinitialiser le autonumber vous devez compact/réparer la base de données après avoir vidé la table
De plus, le autonumber est un entier long qui dans Access peut aller jusqu'à 2147483647
Vous pouvez réinitialiser le autonumber sans compact et réparation à l'aide:
CurrentDb.Execute "ALTER TABLE tblTable ALTER COLUMN ID COUNTER(1,1)"
vous devez vous assurer que la table est vide avant d'exécuter le SQL ou vous aurez accès à essayer de créer en double AutoNumbers.
Est-ce que cela doit être exécuté dans VBA? Je pensais que ALTER TABLE était une commande SQL, mais elle ne fonctionnerait pas pour moi. – NickSentowski
Comme il est écrit ci-dessus, il fonctionnera dans VBA, mais vous pouvez coller ALTER TABLE tblTable ALTER COLUMN ID COUNTER (1,1) dans la vue SQL de la fenêtre de conception de la requête et il sera exécuté. Vous ne devez pas utiliser Counter (1,1) sauf si vous souhaitez redémarrer à partir de 1, 100,1 serait bien. – Fionnuala
Vous pouvez également réinitialiser le numéro automatique en créant une requête Ajout qui inclut la colonne NuméroAuto. Une fois qu'une ligne est ajoutée, le numéro est défini sur la valeur + 1 ajoutée.
Cela étant, vous devez faire attention à ce que la valeur ne soit pas inférieure à la valeur actuelle la plus élevée.
Par exemple.
INSERT INTO tblName (id)
SELECT [tblName]![id]+1 AS [New Value]
FROM tblName
GROUP BY [tblName]![id]+1, tblName.id
HAVING (((tblName.id)=(Select max(id) from tblName)));
Permet de réinitialiser le numéro automatique sur + 2 du dernier numéro. Notez que vous devez inclure toutes les colonnes obligatoires et supprimer la nouvelle ligne par la suite.
- 1. INSERT d'ASP.NET à MS Access
- 2. Comment créer une valeur de champ AutoNumber dans Access?
- 3. Portage application MS Access
- 4. ms-access 2007 .exe
- 5. Compilateur MS-Access .mdb?
- 6. Colonnes pivot MS-Access
- 7. MS Access Atomic Transactions
- 8. MS Access Propriétés
- 9. MS Access Limit
- 10. Portage à partir de MS Access
- 11. Lier MS Excel aux requêtes MS Access
- 12. MS Access interop - Data Import
- 13. Trace Activité MS Access DB
- 14. ms-access: erreur d'exécution 3354
- 15. MS ACCESS - Tri arborescent hiérarchique
- 16. Migrer MS Access vers MySQL
- 17. xml en ms access 2007
- 18. Paramètres MS Access Crosstab Query
- 19. Comment distiguish entre MS Access Fullversion avec Access Run-Time
- 20. MS Access 2003 - Importation d'un fichier texte dans la base de données MS Access Tableau
- 21. ms access création par rapport cases à cocher
- 22. Liaison d'un ListBox à une requête dans MS Access 2003
- 23. MS-Access connexion ODBC à Oracle pour SQL
- 24. Aide à la conception de requête dans MS-Access
- 25. MS-Access: Sélection des lignes à supprimer via les jointures
- 26. Application Web Mono et ASP.NET connectée à MS Access
- 27. Enregistrement d'un horodatage de VB 2005 à MS Access
- 28. Contrôle d'éditeur HTML à utiliser dans les formulaires MS Access
- 29. Alternative à Application.LoadFromText pour les requêtes MS Access
- 30. fusionner des cellules dans ms-access
Une table vide? Ce vidage de feuille de calcul était la première fois que la table était touchée. – NickSentowski
Vous voulez dire que vous laissez tomber et créez la table à chaque fois? ou réutilisez-vous la table? –
La première fois que j'ai utilisé la table, ma clé était 56mil. Après avoir vu cela, j'ai tué la table, l'ai recréée, jetée à nouveau, et j'ai obtenu des résultats similaires. Quand je compacte et répare, vais-je récupérer les clés "effacées"? – NickSentowski