Encore une qst sous ACCESS - format clé primaire

Discussion dans 'Web, design' créé par erwinae, 23 Juillet 2004.

Statut de la discussion:
Fermée.
  1. Offline
    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..
    erwinae, 23 Juillet 2004
    #1
  2. Offline
    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 ?
    Bingo, 23 Juillet 2004
    #2
  3. Offline
    La Poubelle Elite
    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).
    La Poubelle, 23 Juillet 2004
    #3
  4. Offline
    erwinae Elite
    Les enregistrements doivent être crées à partir d'un formulaire..
    Je vais tenter comme tu explique Bingo!

    Merci bcp!
    erwinae, 23 Juillet 2004
    #4
  5. Offline
    Bingo Beer Addict
    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
    Bingo, 23 Juillet 2004
    #5
  6. Offline
    erwinae Elite
    Voilà ca marche :)
    Merci bcp!!
    erwinae, 23 Juillet 2004
    #6
Statut de la discussion:
Fermée.