|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 30 ![]() |
Bonjour à tous,
J'ai un sous-form [SF-composantcommandefournisseur] qui me donne les détails d'une commande et qui me calcule le total de la commande dans le controle [texte11] La table [STV-composantcommandefournisseur] qui stocke les données du sousform à un champ [numerotablecommandefournisseur] qui me renvoie à la table principale des commandes [TV-commandefournisseur] dans le champ [numeroauto] qui est mon numéro de commande. Donc comme cette table contient un champ [montanttotalcommande] je suis sur que vous me voyez arriver avec mes GROS sabots Je cherche à faire une requete ou un bout de code qui me mettrait le total de la commande à jour dans la table tv-commandefournisseur à chaque fois qu'on consulte ou modifie la commande. Peut etre un truc sur entrée du sous form mais je me perds dans les références car je ne veux modifier que les données de l'enregistrement de la table qui correspond a la commande ouverte dans le sous form. Merci beaucoup de votre aide Merci de votre aide |
|
|
00
|
|
|
#2 | ||
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 30 ![]() |
J'ai réfléchi de mon mieux (donc pas terrible) et j'ai tenté ca
Code sql :
1° il me demande [forms]![sf-composantcommandefournisseur]![texte11] donc il ne doit pas le trouver 2° quand je rentre une valeur ca me met a jour TOUS les enregistrements de la table tv-commandefournisseur donc la clause where est ignorée Merci de votre aide |
||
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Chercheur Inscription : juin 2011 Messages : 150 ![]() |
Bonjour,
Pas besoin de requête s'il s'agit de mettre à jour uniquement les enregistrements courants : Code :
Forms![CommandeFournisseur]![MontantTotalCommande] = Forms![CommandeFournisseur]![SF-composantcommandefournisseur].Form.[Texte11] Bcdt |
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 30 ![]() |
Bonjour,
J'ai modifié le code d'ouverture du form principal et ca me met un message d'erreur comme quoi il ne peut attribuer cette valeur a cet objet Code :
Je me suis trompé ou ? Merci |
||
|
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Chercheur Inscription : juin 2011 Messages : 150 ![]() |
Bonjour,
Il est probable que [texte11] qui est un champ calculé (si j'ai bien compris) dans le sous formulaire ai une valeur Null à l'ouverture de votre formulaire principal, ce qui génère l'erreur. Il est donc préférable de mettre votre code dans le sous-formulaire, après celui calculant [texte11] ... avec l'avantage qu'à chaque fois que texte11 sera recalculé, le champ [MontantTotalCommande] sera mis à jour. Bcdt |
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 30 ![]() |
Ok, merci, ca marche bcp mieux comme ca
Par contre maintenant je voudrais mettre les 1000+ enregistrements à jour. Pour le moment je peux faire avec le code dans la propriété click du bouton du montant total Code :
Pour un nouvel enregistrement ca devrait se calculer tout seul mais sachant que les calculs sont déja fait pour les 1000 existants dans quelle propriété de quel controle je dois mettre le code magique ? J'ai essayé dans form_open ou dans got_focus(du sous-form) mais ca donne rien... Merci |
||
|
|
00
|
|
|
#7 |
|
Membre confirmé
![]() Chercheur Inscription : juin 2011 Messages : 150 ![]() |
Sur le principe c'est risqué de gérer les données de cette façon : elles sont en quelque sorte dupliquées donc vous aurez à faire le lien systématiquement dans votre bdd entre le détail commande (utilisé pour le calcul de texte11) et le "MontantTotalCommande".
Si vous ne pouvez faire autrement à ce stade, la mise à jour des 1000 enregistrements ne peut se faire rapidement qu'avec votre option initiale : une requête. Si "texte11" actuel = somme du champ "champàcumuler", cela donnera : Code :
UPDATE [Tv-CommandeFournisseur] SET [Tv-CommandeFournisseur].MontantTotalCommande = DSum("champàcumuler","STv-ComposantCommandeFournisseur ",[Numauto] & " =NumeroTableCommandeFournisseur "); Bcdt |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com