Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Conception

Conception Le forum qui vous aide à résoudre vos questions relatives à la modélisation de votre base de données sous Access.

Réponse
 
Outils de la discussion
Vieux 22/08/2008, 16h03   #1 (permalink)
Invité de passage
 
Date d'inscription: août 2008
Messages: 4
Par défaut Problème pour créer une clé primaire

Bonjour,

je suis débutant dans access. Et je crée une base de données me permettant de stocker la liste des factures que j'emets. la table facture ne comporte que les champs suivante :

date (date du jour)
code société (renseigné manuellement)
Numéro d'action (renseigné manuellement)
Montant ttc (renseigné manuellement)
Numéro Facture.

C'est ce dernier champs qui me pose probleme. car j'aimerais qu'il soit automatique et sous le format suivant : Année+Mois+Code Société+Numéro incrementé. Ce qui donnerait, par exemple 0808C0201, pour la première facture du mois d'aout 08 pour la société C02.
J'aimerais de plus que ce champ numéro de facture soit la clé primaire.

J'espere que j'ai été assez clair dans ma demande. Sinon je suis a votre disposition.

merci par avance de votre aide.

@ +
grahamm est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/08/2008, 16h10   #2 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 314
Envoyer un message via MSN à CinePhil
Par défaut

Citation:
Envoyé par grahamm Voir le message
j'aimerais qu'il soit automatique et sous le format suivant : Année+Mois+Code Société+Numéro incrementé. Ce qui donnerait, par exemple 0808C0201, pour la première facture du mois d'aout 08 pour la société C02.
Ca me semble difficile en utilisant directement le format du champs. Il faudra sûrement programmer ça dans le formulaire de saisie.
Le formulaire cherche dans la table le dernier numéro de facture enregistré et compose automatiquement le numéro de la nouvelle facture en fonction du choix du client concerné.

Citation:
J'aimerais de plus que ce champ numéro de facture soit la clé primaire.
Mauvaise idée !
Une clé primaire est dé préférence un champ de type NuméroAuto, autrement dit et pour généraliser aux autres bases de données, de type entier auto-incrémenté.
Ceci pour des raisons de rapidité et de recherche lors des jointures avec les autres tables, surtout si le volume de données est important.
Donc ajoutez un champ FactId de type NuméroAuto et faites en la clé primaire.[/quote]
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/08/2008, 16h23   #3 (permalink)
Invité de passage
 
Date d'inscription: août 2008
Messages: 4
Par défaut

Merci d'avoir répondu aussi vite.

Vous pourriez m'indiquer la marche a suivre, pour créer ce champ dans le formulaire?
grahamm est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 22/08/2008, 16h36   #4 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 314
Envoyer un message via MSN à CinePhil
Par défaut

Le champ sera une zone de texte qui ne sera pas accessible en saisie.
La source de cette zone de texte sera la colonne [Numéro facture].

3 solutions pour déclencher l'opération de formatage du numéro de facture :
- A l'événement OnChange de la liste déroulante qui permet de sélectionner le client dans la table des clients ;
- A l'événement getFocus (je crois me souvenir que c'est comme ça qu'il s'appelle) de la zone de texte, à condition que celle-ci soit la dernière à avoir le focus dans le formulaire ;
- A l'événement onClic du bouton de validation des infos de la facture.

Perso, je préfère la dernière car on peut lancer en même temps une série d'opérations de vérification de la saisie (montant incohérent par exemple).

Pour le calcul :
- on connaît la date de facture qui est a priori la date du jour donc on peut extraire l'année et le mois,
- on connait le numéro du client parce qu'il a été choisi par l'utilisateur dans la liste des clients,
- on interroge par une requête le précédent numéro de facture enregistré afin de l'utiliser pour calculer le nouveau numéro.

On affiche le numéro dans la zone de texte en demandant la confirmation de la saisie et le tour est joué.
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h29   #5 (permalink)
Invité de passage
 
Date d'inscription: août 2008
Messages: 4
Par défaut

Bonjour,

j'ai plus ou moins compris ce que vous vouliez dire.

mais étant débutant je n'arrive pas a monter l'expression me permettant d'avoir le résultat désiré.

le numéro de facture se compose donc de la manière suivante : 0810C0201

08 = année
10 = mois
C02 = le code de la société
01 = le numéro de la facture (la première facture pour le mois d'octobre 2008).

Mes questions sont les suivantes :
- Quel est le code approprié pour extraire l'année et le mois de la date de la facture sous le format aa pour l'année et mm pour le mois.

- et comment faire pour lui demander d'incrémenter ce numéro alors que l'on repart a 01 pour chaque société et pour chaque mois.

Merci d'avance pour votre aide.
grahamm est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h31   #6 (permalink)
Modérateur
 
Avatar de CinePhil
 
Date d'inscription: août 2006
Localisation: Toulouse
Âge: 45
Messages: 1 314
Envoyer un message via MSN à CinePhil
Par défaut

Un coup d'oeil dans les tutoriels peut-être...
__________________
Philippe Leménager.
Futur ingénieur CNAM, en CDD à l'INRA Toulouse jusqu'au 31/12 suite au stage effectué.
Je reste ouvert aux propositions d'emploi.
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 25/08/2008, 14h49   #7 (permalink)
Invité de passage
 
Date d'inscription: août 2008
Messages: 4
Par défaut

je viens d'aller y jeter un coup d'oeil, et je n'en ai pas trouvé qui correspondait a ma recherche. j'ai peut être pas chercher au bon endroit.
grahamm est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > Conception

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide