Access- pb de calcul dans un champs
Résolumod77 Messages postés 1320 Date d'inscription Statut Membre Dernière intervention -
J'ai une table "T-Plat" avec un champs "N°client" et un champs "N°plat" entre autres.
J'ai créé un champs "nombre de plat" car j'aimerai, lorsqu'un client prend un plat, que son plat soit compter, et afficher ce nombre en même temps que le champs "N°client" en permanence sur mon formulaire.
Or, je ne sais pas comment faire pour incrémenter le champ "nombre de plat" qui est dans ma table.
Quelqu'un peut-il m'aider SVP?
Merci
Configuration: Windows XP Excel 2002 SP-2
43 réponses
- 1
- 2
- 3
Incrémenter et afficher le nombre de plat pris par chaque client dans une table T-Plat via le champ 'nombre de plat' et les champs 'N°client' et 'N°plat' est central.
Plusieurs répondants évoquent l'utilisation de la fonction DCount pour compter les enregistrements liés et débattent de la meilleure modélisation des données entre une relation 1-1 et l'hypothèse d'une table intermédiaire.
D'autres soulignent l'intérêt de séparer les données dans une table des plats comme historique et d'utiliser une table de liaison pour une relation plusieurs-à-plusieurs entre tables et plats.
Des aspects pratiques ont été évoqués, comme l'utilisation d'Excel/Access et le recours éventuel à VBA pour automatiser l'incrémentation, avec des remarques sur des difficultés de connexion entre fichiers.
-
Il semble que ce que je veux soit un contrôle calculé d'après ce que j'ai lu.
Je n'ai donc pas besoin de créer le champs "nombre de plat" dans la table "T-Plat".
Quelqu'un serait-il me dire, maintenant que c'est plus clair, comment je peux compter le nombre de plat pris par le client SVP ?
Je ne vois pas sur quoi me baser pour compter, puisqu'un "N°client" aura à chaque fois un "N°plat" différent.
Merci à vous. -
Salut,
dans l'idéal, on fait une requête select count(*) from T_plat inner join ... where ...
Mais maintenant, il faut savoir si tu as des relations entre tes tables, ce sont elles (les relations) qui vont conditionner l'écriture de la requête.
Peux-tu faire une copie écran et mettre le lein sur www.cjoint.com ?
-
-
Je ne saisis pas l'utilité de la relation 1-1 entre table et plat...
Peux-tu expliquer ce modèle de données ?
Dans la logique, on aurait une table 'plats' avec la liste de tous les plats servis à table. Pour un repas donné, on aurait un client en relation avec la table à laquelle il se rattache et relation de plusieurs à plusieurs entre table et plats (matérialisée par une table supplémentaire).
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Ca parait un peu confus mais en fait j'essaie plein de configuration différente.
J'ai d'abord essayé de mettre les plats dans la table client et ensuite j'ai créé une table plat pour y mettre les plats.
Mais pour partir sur la même base on efface la dernière table (T-Plat) si c'est mieux.
L'objectif restant de compter les plats.
Merci -
Non, il faut garder la table des plats. Simplement, elle aura une vie plus longue, puisqu'elle servira d'historique de tous les plats proposés (boeuf sauce piquante, ris de veau morilles...).
Elle sera reliée à la table 'table', avec une relation de n-n, c'est-à-dire qu'il faudra une table intermédiaire entre les deux puisqu'on peut servir un plat à plusieurs tables et qu'une table pourra commander plusieurs plats...
-
Bonsoir,
J'ai quelque peu modifié mes tables et relations:
https://www.cjoint.com/?crssxj40Yy
C'est plus clair maintenant. Dans la table "T-table" il y a ce que le client a choisi "entrée" "plat" ou "dessert" en oui/non
Dans la table "Repas" j'ai mis les doc des "entrée" "plat" et "dessert" en Objet OLE.
Ainsi, à chacune des tables que réserve le client j'aurai le type de repas pris et la doc.
Mais comment savoir le nombre de repas commandé ? sur quoi baser le contrôle calculé je ne vois toujours pas?
Merci-
Ca ne va pas aller non plus, tu vas te retrouver avec plein de fois la même information OLE dans la table plat et de plus tu auras des soucis si tu veux faire des statistiques plus complètes.
Je peux te proposer autre chose, mais il faut que tu répondes à ces questions :
- un client est-il de passage ou a-t'il un numéro de client 'à vie' ?
- un client s'installe-t'il toujours à la même table ?
- plusieurs client peuvent-ils manger à la même table ? et des plats différents ?
- souhaites-tu conserver l'historique de ce qu'a mangé telle ou telle table (et donc tel ou tel client) ?
- souhaites-tu conserver l'historique de tous les plats que tu as cuisiné et à qui tu les as servi ?
- ton repas sera-t'il toujours composé de entrée-plat-dessert (ou y aura-t'il des extras : apéro, café, digeo...) ?
-
-
Bonjour,
- un client est-il de passage ou a-t'il un numéro de client 'à vie' ?
il a un n° a vie
- un client s'installe-t'il toujours à la même table ?
Non, c'est pour ça qu'il y a un N°table mais aussi parce qu'il peut réserver plusieurs tables
- plusieurs client peuvent-ils manger à la même table ? et des plats différents ?
Non un client une table.
l'objectif n'est pas de savoir ce qu'il mange, mais uniquement, si le client a prit une entrée, un plat et/ou un dessert.
- souhaites-tu conserver l'historique de ce qu'a mangé telle ou telle table (et donc tel ou tel client) ?
Oui, le fait d'avoir des cases d'options permet de savoir ce qu'il a pris.
- souhaites-tu conserver l'historique de tous les plats que tu as cuisiné et à qui tu les as servi ?
Hors sujet
- ton repas sera-t'il toujours composé de entrée-plat-dessert (ou y aura-t'il des extras : apéro, café, digeo...) ? il y a toujours entrée, plat, dessert. Pas de détail.
C'est comme un questionnaire pour de statistiques ce que je veux, tu vois?! c'est juste connaitre la fréquentation et les préférences. C'est pourquoi, lorsque les choix sont fait, la table T-repas lie des OLE pour des questionnaires sur l'entrée, le plat ou le dessert fait sous excel.
Merci à toi -
tu compte gérer les insert, select et autre via vba ou tu compte utiliser les outils de access ?
-
Donc, le plus simple, c'est ça :
Client(Num_Client,Nom, Prénom,....)
Table(Num_Repas,Num_Table,Num_Client,Date_Repas,Entree,Plat,Dessert)
Avec une relation de 1-n entre Client et Table.
Le Num_table dans la table 'table' sert à identifier physiquement la table, mais si tu n'en a pas besoin, tu peux supprimer (mais ça peut peut-être de permettre de voir que la table 12 est en face du tableau 'plats du jour' et qu'elle en consomme plus que les autres, des plats du jour, prouvant que le tableau fait son boulot...) et entree, plat, dessert sont des champs de type oui/non.
Par contre, je n'ai pas saisi la subtilité OLE avec EXCEL...
-
c'est peut etre que la liste des plats dispo seront généré via un autre fichier
-
j'ai pas répondu ca ^^ j'ai juste fait une supposition sur l'objet OLE
bon et sinon pour les requètes ca fait ca:
nombre de client ayant pris une entrée, un plat principal et un dessert
select count(*) from t_table where entree="1" and plat="1" and dessert="1"
après pour les variantes du nombre de client qui a pris tel ou tel type de plat tu met un 0 ou un 1
il me semble que sur access les booléen (case a cocher) est un string 0 pour false et 1 pour true, ca reste a tester -
en vba, j'ai galéré pour trouver parce que true et false m'ouvrai une fenetre type inputbox
-
Bonjour,
Il ne faut pas oublier un champ avec les Dates pour historique, en cas si le même client sur la même table a commandé la même chose .
Je veux bien voir ton Formulaire avec les données que tu veux avoir.
Je pars toujours de création d'un formulaire et description de ces fonctions. -
Bonjour,
Que de messages, c'est sympa, merci à vous tous!
Je vais ajouter le champs date-repas à T-Table mais du coup je ne sais pas où je dois mettre le select count. je vais re-regarder ou j'avais vu ça!
A+
Merci -
J'ai oublié quelque chose dans les réponse aux questions de Blux:
-plusieurs client peuvent-ils manger à la même table ? et des plats différents ?
l'objectif n'est pas de savoir ce qu'il mange, mais uniquement, si le client a prit une entrée, un plat et/ou un dessert. ET COMBIEN DE TABLE IL A RESERVE => c'est en fait cela que je voulais compter.
Cette info est importante aussi, car les places sont limitées à certaines heures.
garion28,
je n'ai pas trouvé où mettre ta formule
select count(*) from t_table where entree="1" and plat="1" and dessert="1"
peux-tu me le dire STP?
Merci -
Oui ça colle tout a fait.
Mais, excuse moi d'insister, je ne sais toujours pas comment compter les repas et tables réservées.
J'ai constaté que dans mon formulaire T-table, c'est le nombre qui figure dans le bas du formulaire qui m'interesse en tant que nombre de table réservées.
Merci -
je trouve que tu te complique la vie pour pas grand chose mod77 :/
tu as juste a faire une table "client" et une table "table", a mettre un booléen pour entrée,plat,dessert dans "table", relier les 2 tables grace a l'identifiant du client
et ensuite tu fait tes requètes d'interrogations -
je sais, mais je dis ca pour résumé et l'inviter a passer directement aux requètes xD (ca sert a rien de passer 3 heures sur la structures de 2 tables
-
Bonjour,
J'ai fais tout ce que vous avez dit, vous voyez bien que j'ai bien une table "client", une table "table", j'ai la troisième table "repas" car il faut bien que je mette mes questionnaires quelque part .
Si le client ne prend pas d'entrée pourquoi je lui donnerai un questionnaire?
C'est pourquoi ma question de départ était uniquement de savoir comment je dois faire pour compter le nombre de plat mais qui s'avère maintenant de vouloir compter le nombre de table réservé.
Je ne me complique pas la vie, d'autant que je vois ce chiffre apparaitre grâce au bouton de déplacement affiché mais je ne sais pas le faire apparaitre autrement c'est a dire sur mon formulaire sans avoir a afficher ce bouton de déplacement.
J'ai joint mon formulaire peut-être que vous me comprendrez mieux, j'ai entouré ce que je voudrais.
C'est vrai que c'est pas grand chose pourtant.
https://www.cjoint.com/?ctloXnTyBh
Merci à vous-
Tu n'a jamais dit que tu voulais donner des questionnaires...
Tu veux compter le nombre de tables réservées, mais pour qui : le restaurant, un client particulier, pendant une durée, pour un jour donné, qui ont une entree-plat-dessert ?
Et c'est quoi, pour toi, une table 'réservée', car aucune notion de réservation dans aucune table ?
-
- 1
- 2
- 3