Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/05/2007, 14h57   #1
Membre extrêmement actif
 
Avatar de cortex024
 
Inscription : avril 2005
Messages : 1 244
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 244
Points : 997
Points : 997
Par défaut définir l'auto increment manuellement à un nombre donné

Bonjour,

Je me doute que cette opération est délicate et qu'il faut être sûr de ce que l'on fait...

Comment peut on reseter l'autoincrement, ou le définir à une valeur données....

Tout ceci pour éviter que, après une suppression importante de données si pas toute, l'auto-increment ne continue à + 100, + 1000 alors que ce sont les premières données dans la table...

merci de vors réponses
cortex024 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2007, 15h28   #2
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 232
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 232
Points : 9 930
Points : 9 930
Envoyer un message via Skype™ à Domi2
Bonjour,

Le numéro sert de clé primaire ?

Si oui, la procédure n'est pas simple.

Sinon, en mode création, tu supprimes le champ et tu en recrées un nouveau.

Mais je ne vois pas grand intérêt à ce genre de manip...

Un numéro auto n'est pas un identifiant...

Si c'est pour faire joli

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2007, 15h30   #3
Expert Confirmé
 
Inscription : mai 2005
Messages : 3 419
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 3 419
Points : 3 768
Points : 3 768
Code :
1
2
 
alter table matable alter column nomchamp  counter(numdeb,increment);
ou numdeb et increment sont deux entiers

positifs de préférence
__________________
Elle est pas belle la vie ?
random est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2007, 15h47   #4
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 232
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 232
Points : 9 930
Points : 9 930
Envoyer un message via Skype™ à Domi2
Bonjour Random,

Code :
alter table matable alter column nomchamp  counter(numdeb,increment);
Ce code permet de modifier la valeur de départ d'un champ num auto et son incrément, non ?

Super pratique pour une table vide. Mais cela ne semble pas être le cas.

Et les relations si ce champ num auto sert de clé primaire ?

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2007, 16h06   #5
Membre extrêmement actif
 
Avatar de cortex024
 
Inscription : avril 2005
Messages : 1 244
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 244
Points : 997
Points : 997
Citation:
Envoyé par Domi2
Sinon, en mode création, tu supprimes le champ et tu en recrées un nouveau.
oui c'est ce que je fais lorsque je n'ai plus du tout de données dans la table
j'enlève l'auto increment en mode création puis je le remet pour qu'il retombe à 0.

mais si il y a encore des données?

Citation:
Envoyé par Domi2
Le numéro sert de clé primaire ?

Mais je ne vois pas grand intérêt à ce genre de manip...

Un numéro auto n'est pas un identifiant...

Si c'est pour faire joli

Domi2

bien sur qu'il sert de clé primaire!!!!
bien sur qu'il peut être identifiant!!!!

C'est justement principalement à cela qu'il sert pour moi, c'est pas pour faire joli
cortex024 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2007, 16h16   #6
Expert Confirmé
 
Inscription : mai 2005
Messages : 3 419
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 3 419
Points : 3 768
Points : 3 768
ben cela n'affecte pas les enregistrements existants
pour le reste l'utilisation de telles commandes nécessite un compréhension
solide de leurs conséquences

par contre cela peut rendre des services considérables
en incrémentant avec un pas de 10 par exemple
ou en initiant un compteur à 2007000 au 1 janvier 2007

je ne porte pas de jugement sur la solution je me contente de l'indiquer
__________________
Elle est pas belle la vie ?
random est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2007, 16h17   #7
Membre extrêmement actif
 
Avatar de cortex024
 
Inscription : avril 2005
Messages : 1 244
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 244
Points : 997
Points : 997
merci random, si on peut lancer cette commande alors qu'il y a deja des enregistrements, c'est parfait cela me convient.

je ne sias pas ce que sous-entendais domi2
cortex024 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2007, 16h39   #8
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 232
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 232
Points : 9 930
Points : 9 930
Envoyer un message via Skype™ à Domi2
Re,

Par identifiant, j'entend par exemple numéro (de factures)...

Si on a besoin absolument d'une numérotation sans "trous", il est préférable de créer un champ spécifique et de l'incrémenter par code...

Maintenant, si tu dois absolument renuméroter...

01) Se mettre au calme

02) Faire des copies de sauvegarde

03) Afficher les relations, noter toutes les relations du champ numauto et leurs types

04) Ouvrir la table contenat le champ numauto à modifier

05) Modifier le type du champ numauto ==> numérique entier long

06) Vérifier que les numéros n'ont pas changer

07) Facultatif, trier les enregistrement dans l'ordre alphabétique

08) Ajouter un champ "NumAutoNouveau" ==> NuméroAuto

09) Faire une requête sélection affichant les 2 champs + nom + prénom par exemple, et l'imprimer

10) Faire des requêtes de mise à jour sur toutes les tables en relation avec la table modifiée, en remplaçant l'ancienne valeur de la clé par la nouvelle

11) Aller dans les relations et supprimer les relations entre les tables

12) Ouvrir en modification la table à laquelle on a rajouté un nouveau champ numauto

13) Supprimer l'ancien champ

14) Déplacer le nouveau champ en 1ère position

15) Renommer le nouveau champ comme le précédent

16) Le déclarer comme clé primaire et enregistrer les modifications.

17) Aller dans les relations et toutes les rétablir

18) Tester la base de fond en comble

Je me suis bien relu, j'espère n'avoir rien oublier...

De toute façon à tester avant de faire la conversion définitive

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2007, 16h46   #9
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 232
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 232
Points : 9 930
Points : 9 930
Envoyer un message via Skype™ à Domi2
Re,

Citation:
ben cela n'affecte pas les enregistrements existants
Si tu as déjà des enregistrements dans ta table, ils vont garder leur ancienne numérotation.

Et ce n'est semble-t-il pas ce que tu cherches...

La nouvelle valeur et l'incrément s'appliqueront uniquement aux nouveaux enregistrements (à moins que j'utilise mal cette solution).

Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2007, 16h48   #10
Membre extrêmement actif
 
Avatar de cortex024
 
Inscription : avril 2005
Messages : 1 244
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 244
Points : 997
Points : 997
la solution de random me convenait.

non il ne s'agit pas d'avoir une numérotation sans trous, sinon effectivement les numero-auto ne sont pas à prendre.

En fait, concretement, c'est pour quelques petites applications où la clé primaire est un numéro auto, et qu'elle est affichée dans un tableau par exemple.
Pour les petites tables ou j'ai fais assez bien de modifications antérieures, mais qui dans le futur ne devrait plus en subir de trop (voire plus du tout), par soucis d'affichage et de logique je préfère éviter que mes numéros soient dans une liste telle que celle-ci:

Citation:
1
2
4
6
7
8
21

22
24
cortex024 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2007, 17h30   #11
Expert Confirmé
 
Inscription : mai 2005
Messages : 3 419
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 3 419
Points : 3 768
Points : 3 768
si ce n'est que cela un simple compactage suffit
__________________
Elle est pas belle la vie ?
random est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2007, 12h34   #12
Membre extrêmement actif
 
Avatar de cortex024
 
Inscription : avril 2005
Messages : 1 244
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 244
Points : 997
Points : 997
Citation:
Envoyé par random
si ce n'est que cela un simple compactage suffit
c'est à dire
cortex024 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h43.


 
 
 
 
Partenaires

Hébergement Web