|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 18 ![]() |
Une simple petite question :
Dans une table j'ai supprimé un Champs Lié à une autre Table (Jadis en Clé Primaire), et dans mon formulaire, ça ne veux plus marcher. J'ai tenté de bidouiller, et maintenant je ne peux plus entrer de donnée dans mon Formulaire : Code à modifier : Code :
Code que j'ai tenté de modifier : Code :
[Le code est volontairement tronqué pour éviter le surplus d'info) |
||||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Bonjour,
Refait une requête propre à partir du générateur. Sql n'est pas un langage approximatif qui supporte la bidouille. c'est très bien pour avoir un joli nombre d'enregistrements à l'arrivée. En effet le nombre d'enregistrements sera : Nbre table1 X Nbre Table2 Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 18 ![]() |
C'est le formulaire qui a créér cette "requête" SQL, ducoup hmmmm...
En faite c'est assez simple comme question : Lorsque l'on supprime un champs d'une table lié qui est appelé dans un formulaire, comment nétoye t'on le code SQL Généré ? Ca doit surement arriver à beaucoup de mon je présume, la solution ne doit pas être bien compliqué. |
|
|
00
|
|
|
#4 | ||||
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Bonjour,
Citation:
![]() Code :
Citation:
Lorsque la requête est plus complexe on passe pas le générateur. On copie le texte et on le colle dans le générateur, lorsqu'on passe en mode création on peut modifié sans risque d'erreurs. Quand on a le résultat escompté il n'y a plus qu'à faire l'opération inverse, copier/coller vers la source. Note que le fait, dans le générateur en mode création a une action corrective. Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
||||
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 18 ![]() |
J'ai au moins une centaine de champ, ça prend une éternité...
C'est pas normal de devoir tout recommencé à chaque modification de champs... Doit y avoir autre chose c'est pas possible... EDIT : Bon, le résultat reste strictement le même : Impossible de modifier les contrôles depuis le formulaire, et le code SQL généré est strictement identique à ma "bidouille". Je vais joindre mon fichier à une DropBox pour que vous puissiez lire et modifier : http://dl.dropbox.com/u/21043222/Pro...oW_Stuff.accdb |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Bonjour,
Le développement demande du temps, de la patience et beaucoup d'investissement personnel. Ce qui n'est effectivement pas normal c'est de devoir tout reprendre à la moindre modification. Si tu supprimes un champ de la source et que tu supprimes son controle ça doit fonctionner. Ce qui ne peut fonctionner c'est cette requete. sans aucun lien entre elles ça n'a pas de sens. Comment tu crois qu'il va faire la correspondance entre les 2. Access est puissant mais pas devin. As-tu compris ce point ? Donc construit une VRAI requête avec le générateur. Si répéter les champs te gène fais un SELECT *. Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#7 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Je viens de tester ton formulaire.
Il fonctionne parfaitement par rapport à ta source. Pas de message d'erreur si ce n'est qu'il averti à juste titre que tu ne peux pas modifier le recordset. Normal vu la source comme je te l'ai dis. cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 18 ![]() |
Je comprend l'idée.
Mais ça ne correspond pas à ce que je veux faire : Je veux trois choses : - Une zone en haut qui parle à une table indépendante de la base. - Une zone au milieu qui parle à une autre table indépendante de la base. - Une zone en bas qui calcul, additionne, multiplie et donne les résultats. Au début, j'avais lié les deux bases par une date, manque de bol, chaque changement de date devais "en théorie" changer d'enregistrement (ça ne le faisais pas) : Si je suis au 21 et que j'ai des données, je voulais qu'en passant au 22 je passe aussi à l'enregistrement du 22, hors ça ne changeais rien (s'était pourtant une clé primaire, mais j'ai du zapper un épisode); Mais ça ne devais pas toucher à la 2nd table, qui elle n'a aucun rapport avec la première. Mon problème n'ayant finalement rien a voir avec le titre du topic, dois-je en recréer un ? Il n'y a pas une partie "projet" sur ce Forum :o ? Ca m'éviterais de créer 15 topics à chaque soucis :o . |
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Non inutile de créer des fils de discussions supplémentaires.
Je vois un peu l'idée mais je n'arrive pas à comprendre comment les enregistrements de la table 1 et la table 2 sont sélectionnés pour obtenir le résultat du calcul ? Je te donne un exemple : Code :
[Table-Apport].[Force] * [Table-Objet].[Base Force] Dans de rare cas on est obligé de stocker le résultat des calculs. Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 18 ![]() |
La première partie est donc choisie (pour le moment, et en théorie) à partir de la Date ( [Table-Apport].[Date du SimCraft] ==>> clé primaire )
La seconde partie est choisi en fonction du numéro d'identification ( [Table-Objet].[ID-Item] ==>> clé primaire ) ou du nom d'objet ( [Table-Objet].[Nom Objet] ), ces deux options sous forme de menu déroulant (en théorie) Une fois les deux enregistrements pointé, le calcul ce fait (toujours en théorie), mais ce calcul n'est pas sauvegardé, il est calculé à chaque fois, et à chaque changement de date (de la première table) ou du changement d'ID ou de Nom d'Objet. Tout cela, c'est la théorie, en pratique ça ne donne pas vraiment cela :o . PS : Je cherche toujours à faire des listes de choix pour le contenu d'un champs, j'arrive pour lister le nom des champs d'une table mais c'est tout (Exemple : Emplacement). |
|
|
00
|
|
|
#11 | ||
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Dans ce cas il te faut calculer les valeurs dans une requete source. Tu peux également le faire dans le formulaire mais il faut que tu places ton where sur les 2 tables.
Comme ceci : Code :
Du boulot en perspective.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
||
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 18 ![]() |
Je vais donc choisir la solution : deux sous-formulaires dans un formulaire.
Je vais bouquinner votre tuto |
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 18 ![]() |
Le tuto est très bien fait et explique clairement ce qu'il faut.
Ainsi, j'ai pu faire mes 3 sous formulaires, les liés entres eux, et faire les calculs. Hélas, cela ne ce met pas à jour tout seul comme dans un formulaire classique, donc je sais que les calculs fonctionnent car j'ai testé avec des chiffres, mais dès que je modifie, ça ne bouge pas. Existe t'il un moyen de mettre à jour automatiquement, ou via un bouton "Actualisé" ? |
|
|
00
|
|
|
#14 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 085 ![]() |
Tu peux prendre les valeurs de calculé et faire une requete insert ou update.
Sinon faire les calculs en vba puis les affecter dans les controles, dans ce cas il te suffit de mettre le champ correspondant dans la propriété source pour que ça sauvegarde.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : juillet 2011 Messages : 18 ![]() |
Je n'y arrive pas.
Je me sert de ce tuto : http://sqlpro.developpez.com/cours/sqlaz/dml/ Les commandes INSERT et UPDATE servent à mettre à jour des champs/enregistrement, ce n'est visiblement pas ce que je souhaite faire. Je souhaite simplement que, d'une manière automatique au possible, ou vie un bouton, je puisse mettre à jour les contrôles calculés. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com