![]() |
| 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é. | |||||||
|
|||||||
| Conception Le forum qui vous aide à résoudre vos questions relatives à la modélisation de votre base de données sous Access. |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité régulier
![]() Date d'inscription: septembre 2008
Messages: 11
|
Bonjour,
Je dois créer une base de données pour mes activités au CE de mon entreprise. Pour autant je ne sais pas du tout comment procéder pour structurer ma base aussi je me tourne vers vous pour éviter les écueils d'une base mal conçue et qu'il faut modifier en cours d'utilisation. Je vais vous présenter mon activité : Les billets de cinéma Je m'explique : - je vends aux employés de l'entreprise des billets aux tarifs collectivités dans chacune des grandes enseignes de cinéma. Chaque employé à droit à autant de billets qu'il le désire à ce tarif ; - je vends également ces mêmes billets à un prix dit "subventionné" dans la limite de 10 billets par employé (c'est-à-dire que le CE subventionne une partie du coût du billet). Sachant qu'il existe 3 marques de billets et que ces billets ont une date de péremption. Sachant également que je gère l'approvisionnement de ces billets ainsi que le budget lié à cette activité. Sachant, enfin, que je m'assure que le salarié de l'entreprise n'a pas dépassé les 10 billets subventionnés. Je souhaiterai donc réaliser, dans la mesure du possible, une base me permettant de gérer les achats de billets des employés de l'entreprise au jour le jour afin de déterminer d'une part le nombre de billets subventionnés qu'ils peuvent encore prendre et, d'autre part, où j'en suis de mon budget pour les billets subventionnés. Je souhaiterai aussi pouvoir déterminer le stock de billets me restant pour gérer les commandes et, lorsque la date de péremption approche me signaler le nombre de billets restant pour effectuer une opération dessus (sachant que celà aura un impact sur mon budget également). Pour le moment je n'ai crée qu'une table salariée et maintenant je me demande comment procéder pour les billets ? Dois-je faire une table billets générale. Une table billets collectivités et une table billets subventionnés (de fait il s'agit des mêmes billets seulement il y en a 10 de subventionnés par personnes) ? Une table par marque de billets (UGC, Gaumont et MK2 ?) Pour résumer il faudrait que je puisse saisir le jour de l'achat, le nom du salarié, le nombre et la marque des billets achetés, si le tarif est subventionné (et si oui leur répercussion dans le budget). De telle sorte que je puisse ensuite sortir un état de mon budget, connaitre le nombre de billets subventionnés restants pour chaque personne, m'assurer de la validité des billets. J'espère avoir été le plus exhaustif possible et surtout suffisamment clair ? Je vous remercie par avance de votre aide pour la construction de cette base. Dernière modification par Moggle ; 03/10/2008 à 16h49 Motif: Titre plus explicite |
|
|
|
|
|
#2 (permalink) |
![]() |
Un coup d'oeil dans les tutoriels vous aidera à démarrer.
Conception des bases de données
__________________
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. |
|
|
|
|
|
#3 (permalink) | |
|
Invité régulier
![]() Date d'inscription: septembre 2008
Messages: 11
|
Citation:
Je ne sais pas trop quel type de table créer et, de fait, comment les relier. J'ai une table T_Salarie, une autre T_Budget, une troisième T_Billeterie (dans laquelle devrait être les achats de billets effectués par chaque salarié en fonction du jour et du nombre de billets). Là où je coince c'est sur la gestion de mes billets. Faut-il une table unique dans laquelle je mettrai les billets UGC, Pathé, etc... avec jour de commande, date de péremption et prix subventionné ou non subventionné. Faut-il au contraire que j'établisse une table billet_subventionné et une billet_non_sbventionné ? De même, selon vous à quel endroit devrai-je indiquer le nombre maxi de billets subventionnés pour chaque salariés (10 toutes marques confondues) afin de déduire automatiquement le nombre de billets restants ? Désolé si mes questions peuvent vous paraitre trop simplistes mais je dois avouer que la mise en place d'une base de données pour une personne n'ayant pas de compétences particulières en la matière est loin d'être facile et c'est la raison pour laquelle je me tourne vers vous. Croyez bien que j'ai essayé de nombreuses structures - toutes aussi inefficaces les unes que les autres - avant de m'en remettre à vos conseils avisés. |
|
|
|
|
|
|
#4 (permalink) |
![]() |
Je ne sais pas quel est la taille de l'entreprise et donc le nombre potentiel de billets vendus par an mais travailler individuellement au niveau billet sera peut-être fastidieux. Il vaudrait peut-être mieux travailler au niveau des séries de billets car je pense que vous devez vous approvisionner en billets, non pas à l'unité mais par carnets ou séries de billets ?
Donc si nous récapitulons en français, nous avons : - des séries de billets qui commencent à un numéro de début et finissent à un numéro de fin, qui sont valables chacune dans les salles d'une marque de cinéma et jusqu'à une certaine date de validité. - des salariés qui achètent des billets à l'unité, mais pris dans une série et qui peuvent bénéficier d'un tarif subventionné dans la limite de 10 par salarié. Dans les phrases ci-dessus, j'ai mis en gras les entités potentielles et souligné les attributs potentiels. On voit facilement qu'il y a une association entre les séries de billet et les marques de cinéma. Dessinons-là : SeriesBillets -1,1----Appartenir----0,n- Cinemas Ce qui donne au moins les tables : T_Cinemas_C(C_Id, C_Nom, ...) T_SeriesBillets_SB(SB_Id, SB_IdCinema, SB_NumDebut, SB_NumFin, SB_DateEcheance, SB_TarifNormal...) Dans les tables ci-dessus, la clé primaire est soulignée, la clé étrangère est en italique. Faisons l'association correspondant à l'achat des billets par les salariés : Salariés -0,n----Acheter----0,n- SeriesBillets Ce qui donne les nouvelles tables : T_Salaries_S(S_Id, S_Nom, ...) TJ_Acheter_SSB(SSB_IdSalarie, SSB_IdSerieBillets, SSB_Quantite, SSB_Tarif, SSB_Subventionne, ...) Ensuite c'est au logiciel qui gère la base de données de contrôler au moment de la vente que le salarié à le droit d'acheter ses billets en tarif subventionné ou non (s'il a dépassé son quota ou pas) et de composer les lignes de TJ_Acheter_SSB en fonction de la quantité de billets restante dans la série de billet.
__________________
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. |
|
|
|
|
|
#5 (permalink) |
|
Invité régulier
![]() Date d'inscription: septembre 2008
Messages: 11
|
Merci beaucoup CinePhil.
C'est plus ou moins ce que j'étais parvenu à faire si ce n'est une grosse erreur de ma part concernant un attribut que j'avais mis dans la mauvaise entité ! C'est désormais corrigé. J'avais, en revanche, une table qui gérait les billets à l'unité. De fait, la gestion par séries que tu proposes présente-t-elle un avantage par rapport à la gestion à l'unité ? Sinon, j'ai crée un formulaire de saisie avec une case à cocher pour les subventions. Ce formulaire est associé à une requête additionnant le nombre de billets pris par personne lorsque la case subvention est cochée. Je suis parvenu à celà grace aux tutoriels mais je suis à présent coincé pour ce que je veux parvenir à réaliser. Je souhaiterai en effet que cette somme de billets subventionnés achetés permette de m'indiquer sur le formulaire combien le salarié peut encore acheter de billets subventionnés (faut-il pour celà créer un attribut "nbre_subvention" dans l'une des tables au risque de saisir pour chaque ligne le même chiffre : 10 ?). Je souhaiterai également que lorsque la totalité des billets subventionnés est achetée le chiffre 0 billets subventionné dispo soit écris en rouge dans le formulaire et surtout que la case à cocher soit désactiver pour le salarié concerné. Enfin, ce nombre de billets subventionnés se renouvelle tous les ans aussi je comptais mettre en place un système de date d'achat dans mon formulaire afin de ne sortir dans ma requête que les achats réalisés pour l'année en cours. Je ne sais pas si c'est le meilleur procédé et surtout comment y parvenir malgré la fonction d'aide d'access très largement sollicitée. Pour finir je compte intégrer une table budget corrélée aux subventions afin de déterminer combien d'argent il me reste pour lancer d'éventuelles opérations spéciales. Là encore une question se pose. J'ai crée l'attribut "tarif normal". Dois-je créer un attribut tarif payé afin de déterminer la prise en charge opérée sur le budget et ce, pour chaque saisie ? Je te remercie à nouveau pour ton aide précieuse. Dernière modification par Moggle ; 29/09/2008 à 11h31 |
|
|
|
|
|
#6 (permalink) | ||||||
![]() |
Ca fait beaucoup de questions ça !
Citation:
J'avais pensé à la gestion par séries de billets car la gestion des billets à l'unité peut être fastidieuse si la quantité est grande. Citation:
Citation:
Citation:
Citation:
Que contiendra ta table budget ? L'année et le montant du budget ? Où est l'attribut 'tarif normal' et que signifie t-il ? Dans mon esprit, quand j'avais proposé la structure de la table d'achat de billets : Citation:
- SSB_Tarif comme le tarif normal - SSB_Subventionne comme une colonne booléenne (Vrai/Faux ou Oui/Non) Mais tu peux ajouter une colonne SSB_TarifPaye et renommer SSB_Tarif en SSB_TarifNormal. La différence entre les deux te donnera le montant subventionné. Si par contre la subvention est toujours au même taux et ne sera pas changée (10% par exemple), inutile de stocker le prix payé qui peut être calculé.
__________________
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. |
||||||
|
|
|
|
|
#7 (permalink) |
|
Invité régulier
![]() Date d'inscription: septembre 2008
Messages: 11
|
Je te remercie à nouveau pour ton aide CinePhil et je m'excuse pour toutes ces questions. Je vais essayer de ne plus te déranger
Juste une précision toutefois, pour ce qui est de l'affichage des billets subventionnés restants et de leur décompte, tu me dis que c'est de l'interface (formulaire). Me conseillerais-tu un tutoriel me permettant d'obtenir le résultat escompté ? Je ne sais pas du tout comment récupérer les données de ma requête pour les utiliser. Notamment en faisant une sorte de 10-nbre de billets subventionnés. S'agissant du code VB, est-ce indispensable de le connaitre pour obtenir ce que je souhaite ? Je m'excuse à nouveau pour ces questions qui m'apparaissent au fur-et-à-mesure que j'avance dans la gestion de ma base. Encore merci |
|
|
|
|
|
#8 (permalink) |
![]() |
Rien que dans la FAQ Access, il y a 205 items sur les formulaires. En cherchant un peu, il y a des chances que tu trouves ton bonheur. Perso ça fait pas mal de temps que je n'ai plus fait de base de données Access avec des formulaires complexes alors je vais avoir du mal à t'aider sur ce point.
__________________
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. |
|
|
|
|
|
#9 (permalink) |
|
Invité régulier
![]() Date d'inscription: septembre 2008
Messages: 11
|
Je suis parvenu à calculer mon nombre de billets subventionnables restants mais j'ai un problème concernant l'insertion de ma requête dans le formulaire.
Je suppose que l'origine du problème provient de la relation entre mes tables et requêtes ou plutôt de leur absence de relation ... ![]() J'ai crée une requête pour extraire les personnels actifs uniquement. Je m'aperçois que cette requête n'est pas liée à ma table T_Adherent alors qu'elle tire ses données de cette table. J'ai ensuite crée une table T_Achat qui reprend les personnels de ma requête R_Actif et qui me permet de déterminer le nombre de billets achetés par jour et par marque. Enfin j'ai crée 2 requêtes fondées, la première sur la table T_achat, et la seconde sur R_Achat me permettant de réaliser une somme des quantités de billets achetés par adhérents et de calculer le nombre de billets subventionnables restants (10-SommeDeQuantite). Je souhaiterai, à présent, créer un formulaire avec sous-formulaire. Dans lequel je pourrai saisir, par agent, des lignes pour chaque commande réalisée. Dans mon sous-formulaire il y aurait donc l'historique des billets achetés, classés par date. En pied de page je comptais introduire mon nombre de subvention restant, provenant de la requête R_SubventionRestant afin d'utiliser ce nombre pour vérifier si la case "subvention" du sous-formulaire peut être cochée ou non. Mon problème c'est que je ne peux pas créer mon formulaire du fait des relations manquantes. J'ai bien essayé de les créer mais cela ne fonctionne pas. Que puis-je faire ??? |
|
|
|
|
|
#10 (permalink) |
|
Invité régulier
![]() Date d'inscription: septembre 2008
Messages: 11
|
Je précise que ma table T_achat utilise pour les noms des adhérents une liste de choix parmi les adhérents de la requête R_Actif. Je ne comprends dès lors pas pour quelle raison les attributs Adherent de R_Actif et de T_Achat ne sont pas reliés ???
De même R_Achat reprend les info de T_Achat à partir d'une liste, ne devrait-il donc pas y avoir de lien ? Sans ces liens, l'assistant formulaire refuse la création. L'idée étant un formulaire avec les Adhérents actifs et un sous formulaire avec les infos de T_Achat (et le nombre de billets subventionnables restants pour l'année en cours donc provenant de R_SubventionRestant). J'espère avoir été un peu plus clair. La construction me parait logique et je ne parviens réellement pas à comprendre la raison de ce blocage. Encore merci de votre aide |
|
|
|
![]() |
![]() |
||
Création d'une base de données
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|