IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

[Formulaire]Problème de gestion requête/formulaire


Sujet :

IHM

  1. #41
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Citation Envoyé par kariiim
    Economise ta tête, va. Tu pourrais en avoir besoin.

    Au lieu d'écrire ton code dans la propriété "Sur clic" du bouton de commande, assures-toi d'y sélectionner "Procédure événementielle" et ouvres l'éditeur de VBE pour afficher le module du form principal. Cliques sur les trois petits points, ça t'y amènera directement.

    Dans ce module, tu as une sub appellée Private Sub NomBouton_OnClick() (ou un truc dans le genre)

    C'est dans le corps de cette procédure que tu dois écrire ton code.
    (\ _ /)
    (='.'=)
    (")-(")

  2. #42
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 72
    Points : 14
    Points
    14
    Par défaut
    Eurêka!!!!!!

    C'est donc là que se trouvait le problème!!!!!
    Ca marche vraiment très bien!!!
    Merci beaucoup!!!


    Sinon, par rapport à ce que tu m'as dit:


    Imaginons un contrôle TotalFinal pour stocker le résultat.
    TotalFinal -----------------------> source controle: =nz([prix final];0)+ nz(NomContrôleSF.Form![prix_armoire];0))

    A partir de là, tout est en place. Il ne devrait rester que des pb de synchro (à l'ouverture du form et lors des modifs de valeurs dans le form principal).
    J'ai créé un contrôle zone de texte intitulé total final
    et dans le source contrôle, j'ai entré le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    =nz([prix_ final];0)+nz([selection_armoire].[Formulaire]![prix_armoire];0)
    prix_ final correspond au nom du contrôle zone de texte qui a pour contrôle source: =Somme([prix_unitaire]*[quantité]) et selection_armoire correspond au nom du contrôle contenant le sous-formulaire intitulé Armoire choisie

    Je pense que la syntaxe est bonne, mais je ne comprends pas pourquoi lorsque je passe en mode formulaire, Access m'affiche au niveau de ce contrôle: #Nom*?
    ???

    Par ailleurs, je voudrais également savoir comment faire pour empêcher la fenêtre qui affiche le résultat de ma requête select_armoire de s'ouvrir lorsque je clique sur le boutton de commande Trouver l'armoire de telle sorte à ne pouvoir visualiser le résultat de la requête uniquement au niveau du sous-formulaire contenu dans le formulaire principal.*

    Et enfin, le dernière chose qui me permettra de clôturer mon projet serait de savoir comment régler les problèmes de synchro lorsque l'on modifie les données au niveau du formulaire principal, par exemple dans mon cas:

    le contenu des zones de texte suivantes:

    1-prix_final -----------------------> source controle: =Somme([prix_unitaire]*[quantité])
    2-surface_finale-------------------> source controle:=Somme([surface_unitaire]*[quantité])

    Lorsque l'on change le champ quantité, les données ne se mettent pas à jour jusqu'à ce que je pqsse en mode création et que je revienne en mode formulaire...


    Mille fois merci pour votre aide précieuse!!!

  3. #43
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 72
    Points : 14
    Points
    14
    Par défaut


    J'ai trouvé le problème!

    Au niveau du code, il fallait remplacer prix_final par son expression=Somme([prix_unitaire]*[quantité])


    Il ne me reste donc plus que le problème de synchro et celui de l'ouverture de la fenêtre qui affiche le résultat de la requête à résoudre...

    Je tiens à vous remercier pour votre aide!!

  4. #44
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Citation Envoyé par kariiim
    J'ai trouvé le problème!

    Au niveau du code, il fallait remplacer prix_final par son expression=Somme([prix_unitaire]*[quantité])
    Ce n'est pas logique. A mon avis tu t'es plutôt trompé dans l'écriture du nom du contrôle, par exemple, je vois un espace de trop dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =nz([prix_ final];0)+nz([selection_armoire].[Formulaire]![prix_armoire];0)
    Il ne me reste donc plus que le problème de synchro et celui de l'ouverture de la fenêtre qui affiche le résultat de la requête à résoudre...
    Je ne vois pas pourquoi une fenêtre viendrait s'afficher, à moins que tu ne l'aies toi-même programmée !
    (\ _ /)
    (='.'=)
    (")-(")

  5. #45
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 72
    Points : 14
    Points
    14
    Par défaut
    Ce n'est pas logique. A mon avis tu t'es plutôt trompé dans l'écriture du nom du contrôle, par exemple, je vois un espace de trop dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Code :
    =nz([prix_ final];0)+nz([selection_armoire].[Formulaire]![prix_armoire];0)
    Tu avais raison, je viens d'essayer en supprimant l'espace et ça marche aussi, mais ce que j'avais fait fonctionne également:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Somme([prix_unitaire]*[quantité])+nz([selection_armoire].[Formulaire]![prix_armoire];0)
    Sinon pour ce qui est de l'éxécution de la requête select_armoire, Access affiche automatiquement le résultat de la requête dans une autre fenêtre. C'est la procédure normale. Et moi dans mon formulaire principal, grâce au sous-formulaire, j'affiche le résultat de cette requête. Donc je n'ai plus besoin qu'Access ouvre automatiquement la fenêtre affichant le résultat de ma requête.

    Et sinon comment procéder pour ce qui est de la synchronisation lorsque l'on modifie les données au niveau du formulaire principal?

    Merci bien...

  6. #46
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Citation Envoyé par kariiim
    Sinon pour ce qui est de l'éxécution de la requête select_armoire, Access affiche automatiquement le résultat de la requête dans une autre fenêtre. C'est la procédure normale. Et moi dans mon formulaire principal, grâce au sous-formulaire, j'affiche le résultat de cette requête. Donc je n'ai plus besoin qu'Access ouvre automatiquement la fenêtre affichant le résultat de ma requête.
    Access n'ouvre automatiquement AUCUNE fenêtre? Donc je maintiens ce que j'ai dit : quel code as-tu écris / quelle macro / quel paramètrage d'Access..., je sais pas moi...

    S'il faut tout te répéter plusieurs fois, moi j'abandonne.

    Et sinon comment procéder pour ce qui est de la synchronisation lorsque l'on modifie les données au niveau du formulaire principal?
    A toi de voir si tu veux rafraîchir sitôt après qu'un champ est édité ou seulement après l'édition d'un enregistrement.
    Dans le premier cas, tu vas utiliser l'événement AprèsMaj tu champ en question, dans le second l'événement AfterMaj du formulaire.

    Dans les deux cas, tu peux utiliser ce code :
    voire même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Recalc
    me.[selection_armoire].Form.Requery
    (\ _ /)
    (='.'=)
    (")-(")

  7. #47
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 72
    Points : 14
    Points
    14
    Par défaut
    A toi de voir si tu veux rafraîchir sitôt après qu'un champ est édité ou seulement après l'édition d'un enregistrement.
    Dans le premier cas, tu vas utiliser l'événement AprèsMaj tu champ en question, dans le second l'événement AfterMaj du formulaire.

    Dans les deux cas, tu peux utiliser ce code :

    Code :
    Me.Recalc voire même :

    Code :
    Me.Recalc
    me.[selection_armoire].Form.Requery

    Dans la propriété Après MAJ du contrôle zone de texte intitulé prix_final situé au niveau du formulaire principal, j'ai sélectionné "Procédure événementielle" et j'ai ouvert l'éditeur de VBE en cliquant sur les trois petits points.

    Dans ce module, il y a une sub appellée Private Sub prix_final_AfterUpdate()

    Dans le corps de cette procédure, j'ai écrit le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub prix_final_AfterUpdate()
    Me.Recalc
    Me.[selection_armoire].Form.Requery
    End Sub
    Ensuite après avoir effectué la sauvegarde, lorsque je reviens sur mon formulaire principal et que j'effectue des changements au niveau de la quantité, les problèmes de synchro persistent... :s :s



    Access n'ouvre automatiquement AUCUNE fenêtre? Donc je maintiens ce que j'ai dit : quel code as-tu écris / quelle macro / quel paramètrage d'Access..., je sais pas moi...
    Sinon pour ce qui est de la requête qui ouvre une fenêtre, je vais essayer d'être le plus clair possible sachant que je n'ai écrit aucun code ni aucun macro, ni modifier aucun paramètrage d'Access relatif aux requêtes.
    Ainsi, pour faire simple, avant de créer le sous-formulaire permettant d'afficher le résultat de ma requête, pour toi, où est-ce-que Access affiche le résultat de la requête lorsque cette dernière est exécutée?
    Sachant que l'objet requête peut être visualisé en deux modes: le mode création et le mode ouverture, lorsque j'exécute ma requête en cliquant sur le boutton de commande Trouver l'armoire, le mode ouverture se lance automatiquement et c'est une nouvelle fenêtre qui s'ouvre chez moi.
    Conclusion: je visualise le résultat de la requête à la fois dans le sous-formulaire et au niveau du mode ouverture de l'objet requête qui a été éxécuté. Et c'est ce mode ouverture dont je souhaite annuler l'ouverture dans une nouvelle fenêtre vu que je visualise déjà le résultat de ma requête au niveau du sous-formulaire.

  8. #48
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Citation Envoyé par FRED.G
    A toi de voir si tu veux rafraîchir sitôt après qu'un champ est édité ...
    Citation Envoyé par FRED.G
    ...tu vas utiliser l'événement AprèsMaj du champ en question
    Qu'est-ce que le contrôle prix_final vient faire ici ???? Ce n'est pas un champ éditable (un champ de saisie), c'est un contrôle calculé !!! Tu sais comme moi que prix_final fait partie des contrôles que l'on veut recalculer (rafraîchir) après qu'un champ nécessaire à son calcul (notamment celui de la quantité !!) aie été mis à jour !
    Pour cela, tu te doutes que la méthode Me.Recalc va nous être utile ! Mais par contre comment fais-tu pour ne pas avoir l'idée que l'événement de mise à jour que l'on veut intercepter est celui d'un contrôle éditable (ou de son champ sous-jacent ça revient au même) comme l'est par exemple le contrôle Quantité ? Là c'est désespérant. J'ai rarement vu ça.


    Citation Envoyé par kariiim
    Sinon pour ce qui est de la requête qui ouvre une fenêtre, je vais essayer d'être le plus clair possible sachant que je n'ai écrit aucun code ni aucun macro, ni modifier aucun paramètrage d'Access relatif aux requêtes.
    Ainsi, pour faire simple, avant de créer le sous-formulaire permettant d'afficher le résultat de ma requête, pour toi, où est-ce-que Access affiche le résultat de la requête lorsque cette dernière est exécutée?
    Sachant que l'objet requête peut être visualisé en deux modes: le mode création et le mode ouverture, lorsque j'exécute ma requête en cliquant sur le boutton de commande Trouver l'armoire, le mode ouverture se lance automatiquement et c'est une nouvelle fenêtre qui s'ouvre chez moi.
    Conclusion: je visualise le résultat de la requête à la fois dans le sous-formulaire et au niveau du mode ouverture de l'objet requête qui a été éxécuté. Et c'est ce mode ouverture dont je souhaite annuler l'ouverture dans une nouvelle fenêtre vu que je visualise déjà le résultat de ma requête au niveau du sous-formulaire.
    Qu'as-tu écris dans le corps de la procédure du boutton de commande Trouver l'armoire ?
    (\ _ /)
    (='.'=)
    (")-(")

  9. #49
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 72
    Points : 14
    Points
    14
    Par défaut
    Je suis vraiment désolé d'être aussi chiant et je te remercie pour ta patience car j'imagine que ça n'a pas été chose facile d'avoir affaire à un débutant comme moi...
    Tout ce qui concerne Access et la programmation, je l'ai appris tout seul par pur intérêt pour la matière, et je t'assure que l'auto apprentissage dans ce domaine n'est pas chose évidente...
    Voici ce que j'ai écrit dans le corps de la procédure du boutton de commande Trouver l'armoire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Private Sub Trouver_l_armoire_Click()
    Me.selection_armoire.Form.Requery
    On Error GoTo Err_Trouver_l_armoire_Click
     
        Dim stDocName As String
     
        stDocName = "select_armoire"
        DoCmd.OpenQuery stDocName, acNormal, acEdit
     
    Exit_Trouver_l_armoire_Click:
        Exit Sub
     
    Err_Trouver_l_armoire_Click:
        MsgBox Err.Description
        Resume Exit_Trouver_l_armoire_Click
     
    End Sub
    Encore une fois merci et désolé du dérangement

  10. #50
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Citation Envoyé par kariiim
    Je suis vraiment désolé d'être aussi chiant et je te remercie pour ta patience car j'imagine que ça n'a pas été chose facile d'avoir affaire à un débutant comme moi...
    Dans la prog il y a une part de logique et une part d'apprentissage "par coeur" des choses qui ne s'inventent pas. Pour ces dernières, nous sommes là pour te renseigner de notre mieux, quitte à nous répéter si nous n'avons pas été assez didactiques. C'est ce que j'ai fait ici il me semble. Mais je refuse de rerépéter des choses déjà énoncées clairement, surtout si tes erreurs de compréhension sont dues à un manque de concentration ou de logique !

    Citation Envoyé par kariiim
    Tout ce qui concerne Access et la programmation, je l'ai appris tout seul par pur intérêt pour la matière, et je t'assure que l'auto apprentissage dans ce domaine n'est pas chose évidente...
    Je suis bien placé pour le savoir puisque j'ai moi-même débuté l'informatique tout seul en apprenant Access ici-même, sur ce site, essentiellement par plaisir !


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    On Error GoTo Err_Trouver_l_armoire_Click
     
        Dim stDocName As String
     
        stDocName = "select_armoire"
        DoCmd.OpenQuery stDocName, acNormal, acEdit
     
    Exit_Trouver_l_armoire_Click:
        Exit Sub
     
    Err_Trouver_l_armoire_Click:
        MsgBox Err.Description
        Resume Exit_Trouver_l_armoire_Click
    Ce code n'est pas apparu tout seul ! C'est toi qui en est à l'origine car c'est toi qui utilisé l'assistant création de bouton Access pour le générer à ta place !
    C'est ce code qui ouvre ta requête. Donc tu vois bien qu'elle ne s'ouvre pas automatiquement !

    Citation Envoyé par kariiim
    Encore une fois merci et désolé du dérangement
    Il n'y a pas de dérangement, persone ne m'oblige à répondre.
    Mais s'il y a une leçon que tu dois tirer de ce thread, c'est qu'il faut être plus concentré et plus perspicace, quitte à passer du temps à lire et relire l'aide d'Access. Personne ne m'a autant appris sur Access que l'aide d'Access.
    (\ _ /)
    (='.'=)
    (")-(")

  11. #51
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 72
    Points : 14
    Points
    14
    Par défaut
    Merci pour tout!!!
    Il n'y a plus de problèmes par rapport à ce projet..
    A bientot
    Cordialement,

    Kariiim

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/06/2015, 22h04
  2. Réponses: 11
    Dernier message: 02/05/2007, 08h56
  3. Réponses: 6
    Dernier message: 19/04/2007, 15h03
  4. [RegEx] [Formulaire]= problème d'envoi de formulaire avec pièces jointes
    Par lyamarin dans le forum Langage
    Réponses: 22
    Dernier message: 03/04/2007, 13h29
  5. Réponses: 7
    Dernier message: 28/03/2007, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo