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 :
- 'Liaison a la table
- Set bds = CurrentDb
- Set RstTableEnr = CurrentDb.OpenRecordset("Contacts" )
|
- Créer une boucle sur le nb d'enregistrements de ta table Contacts
Code :
- 'Boucle
- With RstTableEnr
- Cpte = .RecordCount
- For x = 1 To Cpte
|
- 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 :
- 'Affectaion du nb incrémenter a ton champ
- !NomDeTonChamp = x
|
- Passer a l'enregistrement suivant
Code :
- 'Enr suivant
- .MoveNext
|
Ce qui donnerait en complet :
Code :
- Sub alexstain
- Set bds = CurrentDb
- Set RstTableEnr = CurrentDb.OpenRecordset("Contacts" )
- With RstTableEnr
- Cpte = .RecordCount
- For x = 1 To Cpte
- !NomDeTonChamp = x
- .MoveNext
- Next x
- End With
- End sub
|
Si tu as des questions, no soucy
Cordialement
---------------
Soyez malin, louez entre voisins !