Calculs dans une table ou requête
Fermé
alainmante
-
25 sept. 2008 à 13:53
Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 - 28 sept. 2008 à 21:33
Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 - 28 sept. 2008 à 21:33
A voir également:
- Calculs dans une table ou requête
- Table ascii - Guide
- Table des matières word - Guide
- Les données fournies dans le fichier à télécharger peuvent être synthétisées par le tableau récapitulatif suivant. dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des 4 premières colonnes. cinq valeurs manquent dans le tableau suivant. retrouvez-les dans votre tableau puis reportez-les, arrondies à l’entier le plus proche, dans la zone de réponse. ✓ - Forum Jeux vidéo
- Calculer une moyenne sur excel - Guide
- Table des annexes word ✓ - Forum Word
5 réponses
Le Pingou
Messages postés
12048
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 avril 2024
1 427
25 sept. 2008 à 16:44
25 sept. 2008 à 16:44
Bonjour,
Il faut simplement que les champs contenant les valeurs calculées soient les champs contenus dans une table !
Il faut simplement que les champs contenant les valeurs calculées soient les champs contenus dans une table !
Le Pingou
Messages postés
12048
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 avril 2024
1 427
25 sept. 2008 à 22:29
25 sept. 2008 à 22:29
Bonjour,
Mise au point pour :
J’aimerais bien pouvoir disposer des totaux effectués dans les champs calculés dans un champ d’une table ou d’une requête
La table contient les données.
La requête sert à filtrer les données d’une ou plusieurs tables en relation et à réaliser divers calculs selon les besoins.
Les résultats calculés dans une requête sont disponibles dans le formulaire ainsi que ceux calcules dans le formulaire lui-même.
Suite.
Ceci dit, si vous voulez enregistrer les totaux des champs calculés il faut créer les champs correspondant dans une table et les reprendre en plus dans le formulaire et dès que vous valider les données du formulaire c’est la macro qui contient les instructions pour renseigner les champs totaux : exemple d’instruction à mettre avant la commande de fermeture du formulaire (DoCmd.Close acForm, "NomFormulaire", acSaveYes)
Me.Tot1=Me.Calcul1
Me.Tot2=Me.Calcul2
Me.Totx=Me.Calculx
DoCmd.Close
Ou via instruction SQL, entrer les données directement dans la table :
DoCmd.RunSQL UPDATE Table1 SET Table1.Tot1 = Calcul1 WHERE (((Table1.[ID]) = Formulaires]![Nom]![ID]))
Mise au point pour :
J’aimerais bien pouvoir disposer des totaux effectués dans les champs calculés dans un champ d’une table ou d’une requête
La table contient les données.
La requête sert à filtrer les données d’une ou plusieurs tables en relation et à réaliser divers calculs selon les besoins.
Les résultats calculés dans une requête sont disponibles dans le formulaire ainsi que ceux calcules dans le formulaire lui-même.
Suite.
Ceci dit, si vous voulez enregistrer les totaux des champs calculés il faut créer les champs correspondant dans une table et les reprendre en plus dans le formulaire et dès que vous valider les données du formulaire c’est la macro qui contient les instructions pour renseigner les champs totaux : exemple d’instruction à mettre avant la commande de fermeture du formulaire (DoCmd.Close acForm, "NomFormulaire", acSaveYes)
Me.Tot1=Me.Calcul1
Me.Tot2=Me.Calcul2
Me.Totx=Me.Calculx
DoCmd.Close
Ou via instruction SQL, entrer les données directement dans la table :
DoCmd.RunSQL UPDATE Table1 SET Table1.Tot1 = Calcul1 WHERE (((Table1.[ID]) = Formulaires]![Nom]![ID]))
Bonjour Jean Pierre , j’ai fait ce que vous indiquiez , en introduisant le code ci-dessous sur votre modèle à partir des propriétés du formulaire : Sur fermeture /procédure événementielle, où FFonglets est le nom du formulaire, T1°, T2°, T3°, …les noms des champs dans la table, et Tniv1, Tniv2, Tniv3, …les noms des contrôles indépendanst où s’effectuent mes calculs totaux, mais ça me donne la fenêtre : « erreur d’exécution ‘2501’ L’action Close a été annulée, débogage
Private Sub Form_Close()
DoCmd.Close acForm, "FFonglets", acSaveYes
Me.T1° = Me.Tniv1> en jaune
Me.T2° = Me.Tniv2
Me.T3° = Me.Tniv3
Me.T4° = Me.Tniv4
Me.T5° = Me.Tniv5
Me.T6° = Me.Tniv6
DoCmd.Close
End Sub
Je joins la table en compressée, si vous souhaitez y jeter un œil. Merci de ce que vous pourrez me dire.
Private Sub Form_Close()
DoCmd.Close acForm, "FFonglets", acSaveYes
Me.T1° = Me.Tniv1> en jaune
Me.T2° = Me.Tniv2
Me.T3° = Me.Tniv3
Me.T4° = Me.Tniv4
Me.T5° = Me.Tniv5
Me.T6° = Me.Tniv6
DoCmd.Close
End Sub
Je joins la table en compressée, si vous souhaitez y jeter un œil. Merci de ce que vous pourrez me dire.
Le Pingou
Messages postés
12048
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 avril 2024
1 427
26 sept. 2008 à 22:43
26 sept. 2008 à 22:43
Bonjour,
Ce n’est pas comme je l’ai indiqué.
Je dis ceci : dès que vous valider les données du formulaire c’est la macro qui ….
Donc je suppose que vous avez une commande qui vous permet de VALIDER les données d’une école, avant de passer à l’école suivante, c’est dans le code de cette commande qu’il faut ajouter l’instruction qui suit :
Me.Tot1=Me.Calcul1
Me.Tot2=Me.Calcul2
Me.Totx=Me.Calculx
Avant l’instruction « DoCmd.Close » si vous l’avez utilisez, car elle ferme le formulaire.
Le code que vous mentionnez se déclenche lorsque vous fermer le formulaire, ce qui est complètement différent car vous n’aurez que le dernier enregistrement (donc la dernière école) qui sera correct au niveau de vos totaux « Tniv… »
Si vous n'avez aucune commande pour valider les enregistrements d'une école il faut créer une macro qui se déclenche sur le changement d'enregistrement (pour votre cas = toutes les données d'une école)
Exemple:
Private Sub Form_Current()
Me.Tot1=Me.Calcul1
Me.Tot2=Me.Calcul2
..............
Me.Totx=Me.Calculx
End Sub
Ce n’est pas comme je l’ai indiqué.
Je dis ceci : dès que vous valider les données du formulaire c’est la macro qui ….
Donc je suppose que vous avez une commande qui vous permet de VALIDER les données d’une école, avant de passer à l’école suivante, c’est dans le code de cette commande qu’il faut ajouter l’instruction qui suit :
Me.Tot1=Me.Calcul1
Me.Tot2=Me.Calcul2
Me.Totx=Me.Calculx
Avant l’instruction « DoCmd.Close » si vous l’avez utilisez, car elle ferme le formulaire.
Le code que vous mentionnez se déclenche lorsque vous fermer le formulaire, ce qui est complètement différent car vous n’aurez que le dernier enregistrement (donc la dernière école) qui sera correct au niveau de vos totaux « Tniv… »
Si vous n'avez aucune commande pour valider les enregistrements d'une école il faut créer une macro qui se déclenche sur le changement d'enregistrement (pour votre cas = toutes les données d'une école)
Exemple:
Private Sub Form_Current()
Me.Tot1=Me.Calcul1
Me.Tot2=Me.Calcul2
..............
Me.Totx=Me.Calculx
End Sub
Bonjour et merci de la précision,mais pour valider le contenu du formulaire, enregistrer les données saisies dasn la table, il suffit de passer à l'enregistreemnt suivant avec la flèche en bas à gauche. Or là je ne sais pas comment on peut lier le code au changement d'enregistrement. Syez sympa de me lancer une bouée. Merci.
Le Pingou
Messages postés
12048
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 avril 2024
1 427
27 sept. 2008 à 13:00
27 sept. 2008 à 13:00
Bonjour Alain,
Eh bien, avez vous lu le dernier paragraphe : Si.......
Eh bien, avez vous lu le dernier paragraphe : Si.......
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le Pingou
Messages postés
12048
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 avril 2024
1 427
28 sept. 2008 à 21:33
28 sept. 2008 à 21:33
Bonjour Alain,
Vous devez remplacer votre macro :
Private Sub Form_Close()
DoCmd.Close acForm, "FFonglets", acSaveYes
Me.T1° = Me.Tniv1> en jaune
Me.T2° = Me.Tniv2
Me.T3° = Me.Tniv3
Me.T4° = Me.Tniv4
Me.T5° = Me.Tniv5
Me.T6° = Me.Tniv6
DoCmd.Close
End Sub
par celle-ci :
Private Sub Form_Current()
Me.T1° = Me.Tniv1
Me.T2° = Me.Tniv2
Me.T3° = Me.Tniv3
Me.T4° = Me.Tniv4
Me.T5° = Me.Tniv5
Me.T6° = Me.Tniv6
End Sub
Vous devez remplacer votre macro :
Private Sub Form_Close()
DoCmd.Close acForm, "FFonglets", acSaveYes
Me.T1° = Me.Tniv1> en jaune
Me.T2° = Me.Tniv2
Me.T3° = Me.Tniv3
Me.T4° = Me.Tniv4
Me.T5° = Me.Tniv5
Me.T6° = Me.Tniv6
DoCmd.Close
End Sub
par celle-ci :
Private Sub Form_Current()
Me.T1° = Me.Tniv1
Me.T2° = Me.Tniv2
Me.T3° = Me.Tniv3
Me.T4° = Me.Tniv4
Me.T5° = Me.Tniv5
Me.T6° = Me.Tniv6
End Sub
25 sept. 2008 à 19:34
J’aimerais bien pouvoir disposer des totaux effectués dans les champs calculés dans un champ d’une table ou d’une requête
• pour les réutiliser ultérieurement pour d’autres calculs sans avoir à réécrire =[]+[] +[] +[] +[] … etc chaque fois puis à rendre les champs de départ invisibles,
• pour des graphiques (dont les sources ne ses trouvent que dans une table ou une requête) par exemple.
Merci si vous avez une solution, probablement évidente mais qui m’échappe pour l’instant. Cordialement.