Encore une qst sous ACCESS - format clé primaire

Statut
N'est pas ouverte pour d'autres réponses.

erwinae

Elite
Voilà, j'ai une clé primaire dans un table qui correspond à un n° de client (Company ID), de type de format 00000 (par ex : 0124:cool:.

Dans une autre table je veux créer un n° de commande - clé primaire et incrémentale (il peut y avoir plusieurs commandes par clients) qui soit composé de deux partie : d'abord l'ID Company et ensuite un code variable et incrémentale..

Par exemple, mon client 01425 passe deux commande. Elles recoivent les références 01425A001 et 01425A002. Et quand il s'agit du client 04525, alors ses commandes ont les références 04525A001 et 04525A002

Voilà.. J'arrive pas à formater le champs Reference pour obtenir ceci..
 

Bingo

Beer Addict
Tout d'abord, tu ne devrais pas utiliser une clé primaire formatée. Ta clé primaire devrait être un entier en numérotation automatique.
Libre à toi d'ajouter ensuite des champs avec des index uniques, si tu veux une clé formatée à ta convenance.
Ensuite, j'aurais tendance à te conseiller d'utiliser 2 champs différents pour stocker dans l'un l'ID du client, et dans l'autre le numéro de la commande.
Cela ne change strictement rien pour la création du numéro de commande, mais c'est un peu plus rigoureux. Si par exemple tu as défini une intégrité référentielle entre ta table Clients et ta table Commandes, un changement de l'ID d'un client sera répercuté en cascade sur la table Commandes, et toutes les commandes de ce client auront le nouvel ID. De même, si un client disparaît, tu peux effacer toutes ses commandes automatiquement.
Si tu utilises ta clé formatée 'à la main', tu vas devoir gérer tout ça toi-même !
Si tu veux utiliser l'ID du client + le numéro de la commande, tu peux toujours concaténer les 2 champs lorsque tu en as besoin (dans un état par exemple).

Ce ne sont des recommendations. Si tu veux quand même savoir comment créer ce fameux champs, il faut d'abord nous dire comme tu crées les enregistrements ! Dans un formulaire ? Dans du code VBA ?
 

La Poubelle

Pou'r allé Danché
Si ton client a un ID.

Il suffit de faire une chtite query avec le TOTAL des factures précédentes pour ce client et de l'incrémenter.

Et pour finir associer l'ID de ton client et ce chiffre calculer avant (formater bien sur).
 
1er
OP
erwinae

erwinae

Elite
Les enregistrements doivent être crées à partir d'un formulaire..
Je vais tenter comme tu explique Bingo!

Merci bcp!
 

Bingo

Beer Addict
erwinae a dit:
Les enregistrements doivent être crées à partir d'un formulaire..
Je vais tenter comme tu explique Bingo!
Merci bcp!
Il n'y a pas de quoi.
Pour calculer le nouveau numéro de commande, tu fais comme l'explique AGain. Ou, alternativement, en utilisant le maximum. Par exemple :
Code:
NumCommande = DMax("NumCommande","Commandes","ClientID=" & Me.ClientID) + 1
 
1er
OP
erwinae

erwinae

Elite
Voilà ca marche :)
Merci bcp!!
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut