Autonumber dans access

Autonumber dans access - SQL/NoSQL - Programmation

Marsh Posté le 28-01-2009 à 17:59:46    

Bonjour,
 
Je suis vraiment débutant sur Access et je voudrai connaître un moyen simple de toujours générer un auto number correspondant au dernier enregistrement + 1 dans une table ou un formulaire.  
Je m'explique. Si je rentre un enregistrement et qu'àprès je le supprime, le prochain autonumber généré ne tient pas compte de la suppression et donc provoque un saut dans les autonumber.
 
Merci par avance pour votre aide
 
Antoine

Reply

Marsh Posté le 28-01-2009 à 17:59:46   

Reply

Marsh Posté le 28-01-2009 à 18:01:47    

Question bête, mais pourquoi as-tu besoin d'éviter les trous en fin de table?

Reply

Marsh Posté le 28-01-2009 à 18:05:33    

Parce que le 1er champs de ma table est la référence client et c celui ci qui est de type autonumber. En fait je ne veux pas avoir de trou dans ma référence client si jamais pour une raison une autre je supprimer un enregistrement faux.

Reply

Marsh Posté le 28-01-2009 à 18:14:52    

Et entre nous, tu vas faire quoi si l'enregistrement faux n'est plus le dernier quand tu le supprimes? Tu modifies ensuite les références clients de tes derniers clients? Ils seront contant alors de savoir que tu n'es plus capable de retrouver leurs factures à partir de leur référence client.
 
D'ailleurs même si tu n'aimes pas avoir de trous dans les références clients, à par un léger impact psychologique personnel, ça aura quoi comme conséquence s'il y en a un un jour ou l'autre?
Tes clients ne s'en rendront pas compte et il y a d'autres moyen beaucoup plus propre de compter les clients.
 
Avant que tu te lances dans une erreur de ce genre, laisse moi te dire que ce que tu veux faire pose d'énormes problèmes et n'en règle aucun.

Reply

Marsh Posté le 28-01-2009 à 18:19:50    

Tu as tout a fait raison mais tu n'as pas bien compris ce que je souhaitais faire. C bcp plus simple que ca. Je cherche juste à reprendre mes ref clients à la suite lorsque j'efface le dernier enregistrement. Et en aucun cas un enregistrement en plein milieu de ma table.

Reply

Marsh Posté le 28-01-2009 à 18:26:51    

Tu cherches à avoir :
ref_client
1
2
3
 
Et pas :
ref_client
1
3
 
Lorsque tu supprimes le ref client d'ID 2, et que tu en crées un par la suite ? Je crois que c'est de çà d'omega2 parle ;)

Reply

Marsh Posté le 28-01-2009 à 18:28:52    

Salut,
Non moi je veux  
si je crée
1
2
3
 
que je supprime 3 (le dernier enregistrement)
pouvoir avoir de nouveau
 
1
2
3 et non pas 4

Reply

Marsh Posté le 28-01-2009 à 18:30:07    

Pareil, mais quel est l'intérêt ?

Reply

Marsh Posté le 28-01-2009 à 18:33:33    

Je comprend ce que tu veux, mais crois moi, ça n'a aucun intérêt. [:airforceone]  
Tu vas gagner au final? Au mieux 10 numéros sur plusieurs milliers de clients.  
 
Entre nous, il vaut mieux éviter de perdre son temps sur ce genre de chose et se concentrer sur des éléments plus importants et il y en a énormément dans un système de gestion de clientelle.

Reply

Marsh Posté le 28-01-2009 à 18:36:44    

Ok merci du conseil.

Reply

Marsh Posté le 28-01-2009 à 18:36:44   

Reply

Marsh Posté le 28-01-2009 à 23:01:14    

En effet, c'est inutile.  
Le seul moyen est de faire un champ numérique, et au moment de la création d'un enregistrement, tu récupères le champ numérique du dernier client et tu ajoutes 1.


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
Reply

Marsh Posté le 28-01-2009 à 23:22:42    

Salut,
 
Sinon, tu fais une suppression logique, comme ça tu as toujours tes numéros qui se suivent, mais tu as, par exemple, un champ qui s'appelle "Supprime", que tu passe à 1 quand le client est supprimé. Ca necessite par contre de revoir tout le code pour ajouter des WHERE Supprime = 0.
 
Ca peut être pratique si tu as beaucoup de liaisons entre tes tables et que tu ne peux pas supprimer une donnée (je pense par exemple à une commande, que tu ne peux pas supprimer même si tu supprimes le client).
 
Dans tous les cas, si tu vas à la main faire un DELETE dans ta base, ça va supprimer la ligne, et comme tout le monde l'a dit au dessus, personne à part toi ne pourra savoir qu'il n'y a pas de client n°3 dans la base...
 
Bon courage,

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed