Access - numérotation - Logiciels - Windows & Software
Marsh Posté le 29-07-2009 à 14:09:32
Bonjour
Plusieurs solutions :
- Mettre un champ AutoNumber (NuméroAuto). A chaque fois que tu saisis un contact, il va s'incrementer de 1 tout seul. Inconvenient : Si tu en supprimes un, le numéro reste en mémoire jusqu'a compactage de la base. Donc tu peux avoir des trous.
- Passer par une table intermédiaire :
- Créer un champ vide, numérique, dans ta table Contacts
- Créer deux tables, avec un champ AutoNumber (NumAuto) et un champ qui correspondra a la clé de table contact (NumContact).
- Les nommer, les tables, par exemple comme cela : CpteContact et CpteContactV
- Créer une requete ajout, qui va aller ajouter tous tes contacts dans la table CpteContact, dans le second champ (Ta clé de ta table contact sera dans le champ NumContact de la table CpteContact)
- Créer une requete mise a jour, qui va aller mettre a jour le champ numérique de ta table Contacts par le second champ de la table CpteContacts, en fonction de la clé de la table CpteContacts
- Créer une macro Access, avec un :
- CopierObjet, Base destination : rien ; Nouveau nom : CpteContact ; Type de l'objet source : Table ; Nom de l'objet source : CpteContactV
- Ouvrir Requete, Nom requete : Ta table ajout
- Ouvrir Requete, Nom requete : Ta table mise a jour
- En VBA
- Ajouter un champ, numérique, à ta table Contact
- Créer un RecordSet sur ta table contact
Code :
|
- Créer une boucle sur le nb d'enregistrements de ta table Contacts
Code :
|
- Incrémenter de 1 ton champ a chaque passage, mais en fait on lui donne la valeur de x, puisque x va de 1 à ton nombre d'enregistrement.
Code :
|
- Passer a l'enregistrement suivant
Code :
|
Ce qui donnerait en complet :
Code :
|
Si tu as des questions, no soucy
Cordialement
Marsh Posté le 06-08-2009 à 14:35:17
Super merci, l'autonumber a l'air intéressant.
Comment faire pour que l'autonumber affiche A1, A2, A3, An....pour tous les contacts donc le nom commence par A, B1, B2, B3, Bn pour tous les contacts dont le nom commence par B...etc...
Merci
Marsh Posté le 06-08-2009 à 16:05:38
Hello
alexstain a écrit : Super merci, l'autonumber a l'air intéressant. |
Ici :
SuppotDeSaTante a écrit : - Incrémenter de 1 ton champ a chaque passage, mais en fait on lui donne la valeur de x, puisque x va de 1 à ton nombre d'enregistrement.
|
Remplacer par :
Code :
|
Marsh Posté le 02-10-2009 à 11:25:04
super ! Est ce que je dois continuer à utiliser mon autonumber comme clé primaire, ou est ce que je supprime le champ?
Marsh Posté le 02-10-2009 à 13:56:23
Ca depend de ce que tu souhaites utiliser comme index
Marsh Posté le 19-11-2009 à 17:13:20
Bonjour,
J'ai créé un module en suivant la procédure, sauf que j'ai mis un champ texte au lieu du némrique (vu qu'il y a des lettres).
Malheureusement ça ne marche pas, la colonne reste vide.
le module:
Sub contactRef()
Set bds = CurrentDb
Set RstTableEnr = CurrentDb.OpenRecordset("T_contacts" )
With RstTableEnr
Cpte = .RecordCount
For x = 1 To Cpte
!contact_Ref = Left(!contact_name, 3) & x
MoveNext
Next x
End With
End Sub
Qu'est ce qui ne va pas???
Merci
Marsh Posté le 19-11-2009 à 17:36:00
je trouve que vous vous compliquez la vie pour rien!
- Un numéro auto suffit amplement.
- Des trous dans les numéros (après suppression),
ca n'a jamais été un probleme.
Je ne comprends pas très bien????
- Pourquoi vouloir une clé alphanumérique A1, A2 etc????
Marsh Posté le 19-11-2009 à 17:45:34
J'ai envie de pouvoir identifier le pays d'un contact facilement rien qu'en regardant son numéro de référence.
Par exemple le 8ème contact italien sera ita0008
Comment faire?
Merci
Marsh Posté le 19-11-2009 à 17:46:35
ça permet de distinguer facilement les homonymes par exemple
Marsh Posté le 19-11-2009 à 20:49:06
Bonsoir
Deja il y a une erreur dans le code.
Cela vient peut etre de ca :
.MoveNext
et pas
MoveNext
Ensuite si vraiment la valeur de x pose souci au format numérique, ce dont je doute (vu que la variable n'a pas de type déclaré), tu peux faire :
Cstr(x)
pour le transformer en chaine vu que ton champ est du texte.
Cordialement.
PS : pour ce qui est de se compliquer la vie, plusieurs solutions ont été proposées plus haut. Dont le autonumber.
Marsh Posté le 20-11-2009 à 11:26:00
Merci, mais sincèrement, je ne comprends rien.
Je ne suis pas développeur, je suis dans le marketing...
Marsh Posté le 20-11-2009 à 11:34:50
Il y a mon mail dns mon profil, envoie ta base et ce que tu souhaites concretement, je jette un oeil d'ici a ce week end.
Je reposterais ici, interrogation, solution etc.
Cordialement.
Marsh Posté le 28-07-2009 à 16:25:01
Bonjour,
Je suis en train de construire une base de données de mes contacts (pour apprendre à utiliser access).
J'aimerais pouvoir numéroter ces contacts pour leur donner un identifiant unique.
Comment faire, pourqu'à chaque fois que j'ajoute un nouveau contact, le numéro suivant le dernier entré lui soit affecté automatiquement??
Je n'y connais rien en VBA...
Merci