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 :

Requête perso OK avec Etat mais pas avec formulaire ?


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 12
    Points
    12
    Par défaut Requête perso OK avec Etat mais pas avec formulaire ?
    Bonjour,

    Je créer une requéte simple.
    Un formulaire pour la recherche du champX dans cette requête.
    Une macro.
    Un etat avec sur ouverture le formulaire de recherche.
    Jusqu'ici tout va bien comme je veux

    Maintenant je veux pouvoir supprimer un enregistrement de la même manière.
    Même requête.
    Même formulaire de recherche du champX.
    Même macro.
    Création d'un formulaire SUP à la place de l'etat avec un bouton commande de suppression.
    Et c'est ici que cela pose problème.

    Quand j'ouvre SUP la requête me demande le ChampX mais sans passer par mon formulaire ?

    Voici, voilà j'en suis baba

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut Re: Requête perso OK avec Etat mais pas avec formulaire ?
    Bonjour,

    Apparemment, soit ton formulaire de recherche n'est pas ouvert, soit il n'est pas correctement référencé dans la requête.
    Qu'en dis-tu ?

    =JBO=

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Dans la requête le formulaire est bien référencé. (Après vérif).
    Comment vérifier l'ouverture de ce formulaire comme tu le suggéres ?
    Aprés plusieurs tests j'obtiens à présent la chose suivantes :

    Le formulaire (de recherche) s'ouvre, je fais la recherche et le formulaire de donnée ne me donne dans un premier temps pas le résultat escompté mais si je refais l'opération sans rien modifier en repassant par les menus j'ai alors les bonnes infos (Aprés deux passage ?? pas très clair tout ça )

    Macro de dialogue ouverture mise dans "Sur ouverture" peut-être faire autre chose ?

    Mulele.

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Si je comprends bien, il existe 2 formulaires:
    1. le formulaire de recherche (disons FormR)
    2. le formulaire de données (disons FormD)

    La source de données de FormD est une requête qui référence un des contrôles de FormR.

    A l'ouverture de FormD, tu veux aussi ouvrir FormR (via une macro Access).
    Dans FormR, l'utilisateur spécifie sa recherche.
    Il ne reste plus qu'à intervenir dans FormD pour exécuter à nouveau la requête sous-jacente, qui pourra alors correctement utiliser FormR.

    Qu'en dis-tu ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    C'est exactement cela.

    Mais mon problème c'est "Il ne rest plus ne reste plus qu'à ...."

    Je tourne en rond depuis quelques temps.

    Mulele.

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Alors j'ai l'impression qu'il y a un problème de "synchronisation" entre tes formulaires.

    Je pense que, si dans FormD l'événement [Sur ouverture] ouvre bien FormR, en revanche il n'attend pas pas que FormR soit correctement renseigné... et FormD passe immédiatement à l'événement [Sur chargement] qui exécute la requête, en vain.

    Peut-être pourrais-tu agir sur FormD à partir de FormR ?

    Concrêtement, ajouter un bouton dans FormR qui force le rafraîchissement de FormD.
    Ou alors, quand le contrôle dans FormR est modifié, rafraîchir automatiquement le FormD ?

    Je veux bien t'aider. Aussi dis moi si tu travailles seulement avec des macros Access ou bien aussi avec des procédures VBA ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Merci de ton aide,

    J'aime les procédure VBA que je crois comprendre un peu mieux que les macros.

    Vielles notions de Basic et GW-Basic.

    Le problème de "synchronisation" me semble la bonne piste. Quand à la solution ??

    Ta piste bouton ou rafraîchissement me semble bonne mais où, quand, comment (je suis un débutant )

    Mulele

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Citation Envoyé par Mulele
    Ta piste bouton ou rafraîchissement me semble bonne mais où, quand, comment (je suis un débutant )
    Eh bien, tu n'as qu'à choisir entre:
    >> ajouter un bouton dans FormR qui force le rafraîchissement de FormD.
    >> rafraîchir automatiquement le FormD, quand le contrôle dans FormR est modifié

    En ajoutant un bouton dans FormR, tu risques de perturber l'utilisateur de l'Etat qui utilise aussi FormR. Mais c'est assez simple à programmer puisque c'est à la demande de l'utilisateur (pas de vérification, on lui fait confiance).

    L'autre solution, qui consiste à réagir à une modification du contrôle dans FormR est plus attrayante mais aussi plus complexe.

    Moi je verrai bien une procédure événementielle dans FormD, reliée au contrôle dans FormR. C'est FormD qui "déciderait" tout seul d'actualiser sa source de données, à chaque fois que le contrôle de FormR serait modifié, et contiendrait une valeur cohérente avec le critère de sélection.

    Peux-tu me donner les véritables noms des FormD, FormR et du contrôle dans FormR ?
    Par retour, je t'enverrai le code VBA correspondant à ton choix (bouton ou actualisation automatique).

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    J'aime également les solutions "attrayante"

    Voici les noms :

    Form D : Recherche pour suppression
    Form R : Choix du travailleur
    Contrôle dans FormR : PourLeTravailleur

    A titre d'infon, dans la requête qui est la Données-Source de FormD
    j'ai : Comme [Forms]![Choix du travailleur]![PourLeTravailleur] & "*"

    j'attend avec impatience de voir ton code

    Ha oui Actualisation automatique bien sûr

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    En testant, je me suis rendu compte qu'un des pb que tu as rencontré concerne la requête qui exploite le contrôle [PourLeTravailleur] de FormR.

    En effet, quand tu ouvres FormD, Access tente immédiatement d'évaluer la source de données, avant même d'avoir déclenché un quelconque événement, et en particulier l'événement [Sur ouverture].
    Donc persiste toujours le problème de la boîte de dialogue qui te demande de saisir la valeur de [Formulaires!Choix du travailleur!PourLeTravailleur].

    2 solutions:
    >> soit tu t'assures que le formulaire [Choix du travailleur] est toujours ouvert au préalable,
    >> soit tu modifies FormD pour que la source de données ne soit pas renseignée avant l'ouverture.

    J'ai pris la deuxième solution, et j'ai fait l'hypothèse que la requête source de données se nomme [R_TRAVAILLEURS].
    Autre hypothèse: le contrôle [PourLeTravailleur] est une zone de texte.

    Attention, il ne faut plus utiliser les macros Access car ma proposition est totalement VBA.

    Module du FormD [Recherche pour suppression]:
    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
    Option Compare Database
    Option Explicit
     
    Dim WithEvents ctlPourLeTravailleur As Access.TextBox
     
    Private Sub ctlPourLeTravailleur_AfterUpdate()
        Me.Requery
    End Sub
     
    Private Sub Form_Open(Cancel As Integer)
        Dim sName As String
     
        DoCmd.OpenForm "Choix du travailleur"
     
        Me.RecordSource = "R_TRAVAILLEURS"
        Set ctlPourLeTravailleur = Forms("Choix du travailleur")!PourLeTravailleur
    End Sub
    Module du FormR [Choix du travailleur]:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Compare Database
    Option Explicit
     
    Private Sub PourLeTravailleur_AfterUpdate()
        ' Procédure vide mais utile (indispensable même)
        ' pour relayer l'événement AfterUpdate
    End Sub
    Citation Envoyé par Mulele
    J'aime également les solutions "attrayante"
    Moi aussi !!! Tant pis pour ceux qui trouvent que c'est un peu compliqué .
    Citation Envoyé par Mulele
    j'attend avec impatience de voir ton code

    Ha oui Actualisation automatique bien sûr
    Le grand luxe quoi !!!

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Et bien voilà,

    J'ai copié les codes, enlever les macros.
    Modifié les noms : Me.RecordSource = "Requête : Recherche pour suppression"

    Le Resultat final est bon dans le formulaire [Recherche pour suppression]
    mais je ne passe pas par mon beau formulaire [Choix du travailleur]

    A la place de mon magnifique formulaire avec les couleurs que j'aimes j'ai une "bête" fenêtre de diologue window me demandant les critéres de recherche.

    Si j'y tape "N" j'ai effectivement dans le formulaire [Recherche pour suppression] tous les travailleurs dont le nom commence par "N" mais encore une fois sans passer par mon beau formulaire [Choix du travailleur]

    Si tu vois une piste ?

  12. #12
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Ouvre le formulaire [Recherche pour suppression] en mode conception.
    Affiche la fenêtre des propriétés.
    Dans l'onglet [Données] assure toi que la propriété [Source] n'est pas renseignée (il ne faut rien y mettre et surtout pas "Requête : Recherche pour suppression").
    Dans l'onglet [Evénement], pour la propriété [Sur ouverture] assure toi qu'il y a bien écrit [Procédure événementielle].
    Enregistre tes modifications.

    Ouvre le formulaire [Choix du travailleur] en mode conception.
    Sélectionne le contrôle [PourLeTravailleur].
    Affiche la fenêtre des propriétés.
    Dans l'onglet [Evénement], pour la propriété [Après MAJ] assure toi qu'il y a bien écrit [Procédure événementielle].
    Enregistre tes modifications.

    Tout devrait fonctionner...

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Effectivement je n'avais pas : [Procédure événementielle] pour la propriété [Sur ouverture].

    J'ai une erreur incompatibilité de type mais je crois que cela vient du fait que le contrôle [PourLeTravailleur] est en fait une zone de liste modifiable.

    J'ai encore quelques trucs bizarre mais peut être qu'après un nettoyage en une mise en ordre.

    Si tu le permet je reviendrais demander ton aide si necessaire.
    En tout cas déjà merci pour le grand pas en avant que j'ai pu faire grâce à toi.

    Sinon après une bonne nuit de sommeil j'appliquerais le petit "Résolu"

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Et voilà, après une bonne nuit de sommeil et quelque modif cela fonctionne comme je le voulais.

    Les modif c'est fenêtre indépendante pour le FormR, et [Procédure événementielle] sur GotFocus pour vraiment avoir ce que je voulais.

    Merci de ton aide =JBO=

    Mulele heureux comme un gosse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Requête AJAX plante avec IE8 mais pas avec FF
    Par MickSou dans le forum jQuery
    Réponses: 19
    Dernier message: 07/09/2012, 09h25
  2. [ibatis] "No suitable driver" avec ibatis mais pas avec jdbc ?!
    Par vingtcent dans le forum Persistance des données
    Réponses: 6
    Dernier message: 13/12/2006, 17h00
  3. Sa marche avec Firefox mais pas avec IE ?
    Par boolat dans le forum Flash
    Réponses: 1
    Dernier message: 30/10/2006, 14h02
  4. Fonction JS qui fonctionne avec Mozilla mais pas avec IE.
    Par etiennegaloup dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2005, 13h58
  5. Erreur avec IE mais pas avec Netscape
    Par Oluha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/02/2005, 15h15

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