Access- pb de calcul dans un champs
Résolu/Fermé
mod77
Messages postés
1276
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
-
15 févr. 2010 à 19:05
mod77 Messages postés 1276 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 28 mars 2021 - 19 févr. 2010 à 18:33
mod77 Messages postés 1276 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 28 mars 2021 - 19 févr. 2010 à 18:33
A voir également:
- Access- pb de calcul dans un champs
- Clémence souhaite faire calculer automatiquement les prix de 30 produits dans trois devises. elle a déjà saisi une formule de calcul pour le tarif du premier produit dans la première devise. corrigez sa formule afin que recopiée vers le bas puis vers la droite, elle remplisse correctement tout le tableau. - Forum Excel
- Formule de calcul excel - Guide
- Access denied - Forum Bbox Bouygues
- Exemple base de données access à télécharger gratuit - Forum Access
- Calcul période d'essai cdi simulateur excel ✓ - Forum Excel
43 réponses
garion28
Messages postés
1543
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
395
19 févr. 2010 à 11:37
19 févr. 2010 à 11:37
dans la source du textbox:
select count(*) from t_table where date=[textbox_date] and num_table=[textbox_num_table] and num_client=[textbox contenant le numéro du client pour le calcul du nombre de réservation]
s'il y a autre chose, pourrai tu nous fournir le fichier carrément ?
select count(*) from t_table where date=[textbox_date] and num_table=[textbox_num_table] and num_client=[textbox contenant le numéro du client pour le calcul du nombre de réservation]
s'il y a autre chose, pourrai tu nous fournir le fichier carrément ?
mod77
Messages postés
1276
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
53
19 févr. 2010 à 12:29
19 févr. 2010 à 12:29
Merci les gars j'essaie de suite la formule de garion28 et je reviens!
J'ai déjà voulu transmettre ma base mais c'est trop lourd, déjà que pour l'image de l'écran c'est compliqué pour moi.
A+
J'ai déjà voulu transmettre ma base mais c'est trop lourd, déjà que pour l'image de l'écran c'est compliqué pour moi.
A+
garion28
Messages postés
1543
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
395
19 févr. 2010 à 12:40
19 févr. 2010 à 12:40
blux> je ne suis pas vraiment un utilisateur des fonctions propre a ms office, donc je réagi avec le sql de base, la fonction dcount serai en effet plus approprié
mod77
Messages postés
1276
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
53
19 févr. 2010 à 12:42
19 févr. 2010 à 12:42
Bon; je n'y arrive pas alors je joins le fichier:
https://www.cjoint.com/?ctmORQ1LIu
Merci pour votre aide
https://www.cjoint.com/?ctmORQ1LIu
Merci pour votre aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
garion28
Messages postés
1543
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
395
19 févr. 2010 à 13:36
19 févr. 2010 à 13:36
ya quelques truc qui me chiffone:
on prend le cas où il n'y a qu'un service par jour
- nb resa: je suppose que un client peut faire plusieurs réservation ans le cas ou il invite plusieurs personne au restau ? dans ce cas il ne doit pas y avoir les champs entree,plat,dessert puisque ca suppose qu'1 ligne = 1 client servi.
- admettons qu'un client peut inviter sur son compte, plusieurs personnes: si 1 client = 1 table il faudrai que pour 1 client et 1 date donné, il y ai autant de ligne dans la table de réservation qu'il y a d'invité (du coup le nb resa devien inutile du fait qu'on peu calculer le nombre de réservation pour 1 client enregistré et 1 date donné)
- tu as mis des objet OLE dans ta table plat, ca sert a quoi exactement ?
- et la table plat est sensé contenir quoi si on garde les champs du repas dans la table de réservation (noté t_table dans ton fichier) ?
on prend le cas où il n'y a qu'un service par jour
- nb resa: je suppose que un client peut faire plusieurs réservation ans le cas ou il invite plusieurs personne au restau ? dans ce cas il ne doit pas y avoir les champs entree,plat,dessert puisque ca suppose qu'1 ligne = 1 client servi.
- admettons qu'un client peut inviter sur son compte, plusieurs personnes: si 1 client = 1 table il faudrai que pour 1 client et 1 date donné, il y ai autant de ligne dans la table de réservation qu'il y a d'invité (du coup le nb resa devien inutile du fait qu'on peu calculer le nombre de réservation pour 1 client enregistré et 1 date donné)
- tu as mis des objet OLE dans ta table plat, ca sert a quoi exactement ?
- et la table plat est sensé contenir quoi si on garde les champs du repas dans la table de réservation (noté t_table dans ton fichier) ?
mod77
Messages postés
1276
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
53
19 févr. 2010 à 14:13
19 févr. 2010 à 14:13
J'ai introduis le champs "nbrésa" pour essayer de m'aider dans comptage des tables réservées mais je ne l'ai pas vraiment exploité.
Car le "N°table" est juste là pour créer une clé (d'ailleurs j'ai l'impression que vous le confondez avec un numéro de table réel) car sinon j'aurais attribué moi même le numéro de la table où est le client.
Si tu regardes bien, quand tu lances mon formulaire client il y a 5 "N°tables" rien que pour le client N°1, alors que les autres clients n'en ont qu'une de réservé/prise. c'est ce que tu lis sur le bouton de déplacement et que j'ai entouré. Et si tu clic sur le bouton tu peux accéder aux autres tables et ainsi voir si les clients ont pris
une entrée seulement ou avec un plat ou avec un dessert.
J'ai créé la troisième table "T-Repas" pour y stocker mes questionnaires que j'ai fait sous Excel. Ils sont spécifiques à chacun des choix (entrée, plat ou dessert). Attention !! si je coche entrée et plat alors dans mon formulaire "f_repas" j'aurai accès au questionnaires Excel "Question sur Entrée" et "Question sur Plat" c'est tout!
(En fait, c'est ce que j'aimerai pouvoir faire, mais j'ai un pb à ce sujet dont j'ai déjà posté la question sur le site sans avoir eu de réponse pour l'instant, je verrai après!).
Ma remarque est la suivante: si access sait combien de table sont liées au client N°1, c'est qu'il y a forcément un moyen d'afficher cette info dans une zone texte, non?!
Sinon, est-ce qu'il y a moyen de déplacer les boutons de déplacement du formulaire pour les mettre en haut du formulaire plutôt qu'en bas?
Car le "N°table" est juste là pour créer une clé (d'ailleurs j'ai l'impression que vous le confondez avec un numéro de table réel) car sinon j'aurais attribué moi même le numéro de la table où est le client.
Si tu regardes bien, quand tu lances mon formulaire client il y a 5 "N°tables" rien que pour le client N°1, alors que les autres clients n'en ont qu'une de réservé/prise. c'est ce que tu lis sur le bouton de déplacement et que j'ai entouré. Et si tu clic sur le bouton tu peux accéder aux autres tables et ainsi voir si les clients ont pris
une entrée seulement ou avec un plat ou avec un dessert.
J'ai créé la troisième table "T-Repas" pour y stocker mes questionnaires que j'ai fait sous Excel. Ils sont spécifiques à chacun des choix (entrée, plat ou dessert). Attention !! si je coche entrée et plat alors dans mon formulaire "f_repas" j'aurai accès au questionnaires Excel "Question sur Entrée" et "Question sur Plat" c'est tout!
(En fait, c'est ce que j'aimerai pouvoir faire, mais j'ai un pb à ce sujet dont j'ai déjà posté la question sur le site sans avoir eu de réponse pour l'instant, je verrai après!).
Ma remarque est la suivante: si access sait combien de table sont liées au client N°1, c'est qu'il y a forcément un moyen d'afficher cette info dans une zone texte, non?!
Sinon, est-ce qu'il y a moyen de déplacer les boutons de déplacement du formulaire pour les mettre en haut du formulaire plutôt qu'en bas?
mod77
Messages postés
1276
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
53
19 févr. 2010 à 14:24
19 févr. 2010 à 14:24
Pour synthétiser: Je veux afficher toutes les tables d'un client dans une zone texte . C'est tout!
ainsi chaque fois que j'affiche un client je sais combien de tables il a.
ainsi chaque fois que j'affiche un client je sais combien de tables il a.
garion28
Messages postés
1543
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
395
19 févr. 2010 à 14:33
19 févr. 2010 à 14:33
pour les boutons de déplacement je ne crois pas qu'ils soit déplacable
ensuite pour compter le nombre de table pour 1 client tu utilise le count(*).
voila une syntaxe qui pourrai t'aider pour tes requètes en vba:
- alt+f11 pour ouvrir l'éditeur vba
- outils->préférence
- cocher microsoft DAO 2.5/3.5 compatibility library ou supérieur
syntaxe (le formulaire table est appellé frm_table et doit etre activé dans l'éditeur par clic droit sur le controls qui actionnera la macro->créer code évenement->générateur de code):
dim db as dao.database
dim rst as dao.recordset
dim req as string
req="ta requète pour compter tes champs exemple: select count(*) from t_table where date='" & Form_frm_table.txt_date.value & "';"
set db=currentdb()
set rst=db.openrecordset(req)
ensuite tu récupere la valeur par rst.fields(0) (0 étant la premiere colonne extraite, cette colonne n'ayant que le résultat du count(*) de ma requète)
et tu fini ta macro par:
set rst=nothing
set db=nothing
ce systeme sert seulement pour les requètes select.
si j'ai pas tout dis pour récupérer le nombre de table réservé pour 1 client tu le dis
ensuite pour compter le nombre de table pour 1 client tu utilise le count(*).
voila une syntaxe qui pourrai t'aider pour tes requètes en vba:
- alt+f11 pour ouvrir l'éditeur vba
- outils->préférence
- cocher microsoft DAO 2.5/3.5 compatibility library ou supérieur
syntaxe (le formulaire table est appellé frm_table et doit etre activé dans l'éditeur par clic droit sur le controls qui actionnera la macro->créer code évenement->générateur de code):
dim db as dao.database
dim rst as dao.recordset
dim req as string
req="ta requète pour compter tes champs exemple: select count(*) from t_table where date='" & Form_frm_table.txt_date.value & "';"
set db=currentdb()
set rst=db.openrecordset(req)
ensuite tu récupere la valeur par rst.fields(0) (0 étant la premiere colonne extraite, cette colonne n'ayant que le résultat du count(*) de ma requète)
et tu fini ta macro par:
set rst=nothing
set db=nothing
ce systeme sert seulement pour les requètes select.
si j'ai pas tout dis pour récupérer le nombre de table réservé pour 1 client tu le dis
mod77
Messages postés
1276
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
53
19 févr. 2010 à 15:03
19 févr. 2010 à 15:03
Excuse moi mais j'ai recopié texto ce que tu as écris mais ça ne fait rien.
L'as-tu appliqué à ma base? et ca marche ?
Voici ce que j'ai écrit
Option Compare Database
Private Sub Nbre_Résa_BeforeUpdate(Cancel As Integer)
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim req As String
req = "ta requète pour compter tes champs exemple: select count(*) from t_table where date='" & Form_frm_table.txt_date.Value & "';"
Set db = CurrentDb()
Set rst = db.OpenRecordset(req)
rst.Fields (0)
Set rst = Nothing
Set db = Nothing
End Sub
Mais j'ai pas vu ça:
le formulaire table est appellé frm_table et doit etre activé dans l'éditeur par clic droit sur le controls qui actionnera la macro.
Moi, le formulaire s'appelle: form_F-Table sous-formulaire
c'est quoi le controls qui actionnera la macro? il faut que je crée un bouton ? j'avais une zone texte, c'est pas bon?
L'as-tu appliqué à ma base? et ca marche ?
Voici ce que j'ai écrit
Option Compare Database
Private Sub Nbre_Résa_BeforeUpdate(Cancel As Integer)
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim req As String
req = "ta requète pour compter tes champs exemple: select count(*) from t_table where date='" & Form_frm_table.txt_date.Value & "';"
Set db = CurrentDb()
Set rst = db.OpenRecordset(req)
rst.Fields (0)
Set rst = Nothing
Set db = Nothing
End Sub
Mais j'ai pas vu ça:
le formulaire table est appellé frm_table et doit etre activé dans l'éditeur par clic droit sur le controls qui actionnera la macro.
Moi, le formulaire s'appelle: form_F-Table sous-formulaire
c'est quoi le controls qui actionnera la macro? il faut que je crée un bouton ? j'avais une zone texte, c'est pas bon?
blux
Messages postés
24878
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 mars 2023
3 311
19 févr. 2010 à 15:30
19 févr. 2010 à 15:30
Les boutons standards de déplacement ne sont pas déplaçables, mais on peut les supprimer de l'affichage et les remplacer par des boutons de formulaire avec le code vba qui fait le déplacement.
Pour l'histoire du comptage, point n'est besoin d'ouvrir un recordset, la fonction dcount fait cela...
Tiens, jette un oeil à ça :
https://www.cjoint.com/?ctpDfGGynS
J'ai mis un champ de comptage, des boutons de déplacement.
Je n'ai rien cassé, juste ajouté deux forms, il faut ouvrir F1_Client.
Pour l'histoire du comptage, point n'est besoin d'ouvrir un recordset, la fonction dcount fait cela...
Tiens, jette un oeil à ça :
https://www.cjoint.com/?ctpDfGGynS
J'ai mis un champ de comptage, des boutons de déplacement.
Je n'ai rien cassé, juste ajouté deux forms, il faut ouvrir F1_Client.
garion28
Messages postés
1543
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
395
19 févr. 2010 à 15:33
19 févr. 2010 à 15:33
en faite tu fait un copier coller sans relire Oo ?
req = "ta requète pour compter tes champs exemple: select count(*) from t_table where date='" & Form_frm_table.txt_date.Value & "';"
j'espère que tu n'as pas recopier ca tel quel sinon ca ne sert a rien que tu fasse de la programmation (même si c'est sur access)
req = "ta requète pour compter tes champs exemple: select count(*) from t_table where date='" & Form_frm_table.txt_date.Value & "';"
j'espère que tu n'as pas recopier ca tel quel sinon ca ne sert a rien que tu fasse de la programmation (même si c'est sur access)
mod77
Messages postés
1276
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
53
19 févr. 2010 à 15:37
19 févr. 2010 à 15:37
Blux,
Ton lien affiche des hieroglyphes !!!
Ton lien affiche des hieroglyphes !!!
blux
Messages postés
24878
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 mars 2023
3 311
19 févr. 2010 à 15:45
19 févr. 2010 à 15:45
Comme le tien ! :-)
Fais un clic droit/enregistrer la source du lien, et nomme-le avec une extension .mdb, ça devrait aller mieux...
Fais un clic droit/enregistrer la source du lien, et nomme-le avec une extension .mdb, ça devrait aller mieux...
mod77
Messages postés
1276
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
53
19 févr. 2010 à 15:52
19 févr. 2010 à 15:52
Désolé mais c'est pas mieux!
Je pense qu'il faut refaire un lien, ça m'est déjà arrivé avant.
Je pense qu'il faut refaire un lien, ça m'est déjà arrivé avant.
blux
Messages postés
24878
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 mars 2023
3 311
19 févr. 2010 à 16:05
19 févr. 2010 à 16:05
Je l'ai zippé, ça va mieux :
https://www.cjoint.com/?ctqeZFtocM
https://www.cjoint.com/?ctqeZFtocM
mod77
Messages postés
1276
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
53
19 févr. 2010 à 16:05
19 févr. 2010 à 16:05
Blux, ton fichier est déjà en .mdb mais bien qu'en faisant ce que tu dis c'est une base vide qui s'ouvre et en plus j'ai du choisir le programme avec lequel je dois l'ouvrir.
Est-ce que garion28 a pu l'ouvrir, lui?
Est-ce que garion28 a pu l'ouvrir, lui?
blux
Messages postés
24878
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 mars 2023
3 311
19 févr. 2010 à 16:11
19 févr. 2010 à 16:11
Moi, je n'ai pas de problème...
Et là ? :
http://dl.free.fr/getfile.pl?file=/2qoCq7Jk
Et là ? :
http://dl.free.fr/getfile.pl?file=/2qoCq7Jk
garion28
Messages postés
1543
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
395
19 févr. 2010 à 16:15
19 févr. 2010 à 16:15
quand tu envoi ta base sur cijoint, le lien a enregistré est celui en haut de la page, celui qui se fini par .mdb
blux
Messages postés
24878
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 mars 2023
3 311
19 févr. 2010 à 16:18
19 févr. 2010 à 16:18
Tu arrives à la lire, toi ?
garion28
Messages postés
1543
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
395
19 févr. 2010 à 16:22
19 févr. 2010 à 16:22
sur cijoint ca met le fichier en texte (donc ya les hiéroglyphe) mais au dessus du texte il y a un lien pour le télécharger (clic droit->enregistrer sous)
mod77
Messages postés
1276
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
53
19 févr. 2010 à 16:32
19 févr. 2010 à 16:32
Bon désolé les gars !
J'arrête là, je galère trop pour ouvrir le fichier, tant pis pour moi, mais ça m'énerve!
La base s'ouvre mais maintenant un message s'affiche en disant que "le fichier ne peut être ouvert car il n'est pas sur le bon réseau, et pour des raisons de sécurité"
merci de votre aide et désolé pour le temps perdu!
J'arrête là, je galère trop pour ouvrir le fichier, tant pis pour moi, mais ça m'énerve!
La base s'ouvre mais maintenant un message s'affiche en disant que "le fichier ne peut être ouvert car il n'est pas sur le bon réseau, et pour des raisons de sécurité"
merci de votre aide et désolé pour le temps perdu!
blux
Messages postés
24878
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
25 mars 2023
3 311
19 févr. 2010 à 16:39
19 févr. 2010 à 16:39
Tu as un antivirus ?
Tu es sur un poste d'entreprise ?
Faut pas abandonner si vite...
Tu es sur un poste d'entreprise ?
Faut pas abandonner si vite...
mod77
Messages postés
1276
Date d'inscription
vendredi 10 juillet 2009
Statut
Membre
Dernière intervention
28 mars 2021
53
19 févr. 2010 à 16:47
19 févr. 2010 à 16:47
Fini la galère ! il était bloqué/verrouillé !
Je te remercie encore Blux ainsi que garion28 c'est exactement ce que je voulais ni plus ni moins!
je vais décortiquer comment tu as fait maintenant!
Merci, merci, merci! j'en ai mal au crane tellement je cherchais!
Merci de votre patience !
Je te remercie encore Blux ainsi que garion28 c'est exactement ce que je voulais ni plus ni moins!
je vais décortiquer comment tu as fait maintenant!
Merci, merci, merci! j'en ai mal au crane tellement je cherchais!
Merci de votre patience !
19 févr. 2010 à 11:42