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 :

recherche d'un enregistrement a partir d'un sous formulaire sur un second sous-formul


Sujet :

IHM

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut recherche d'un enregistrement a partir d'un sous formulaire sur un second sous-formul
    pour simplifier les choses j'ai un formulaire principale

    formulaire_client

    dans se formulaire j'ai 2 sous formulaires

    formulaire_client_commande

    formulaire_client_commande_liste

    les deux sous formulaire sons coté à coté en dessous des coordonnées du client

    le but est de cliquer sur une des commandes du client dans le sous formulaire formulaire_client_commande_liste et d'afficher la commande correspondante dans le sous formulaire formulaire_client_commande

    j'ai trouvé une solution en ouvrant le formulaire formulaire_client_commande dans un nouveau formulaire mais le but est de le mettre a jour en tant que sous formulaire.

    j'espère être assez compréhensible, merci de votre petit coup de pouce.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 31
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    Est-ce qu'il y a une table ou sont recapiltuler toute les commandes?
    Si oui je pense qu'il est possible de faire ceci :
    - sur tout les champs de ton sous formulaire formulaire_client_commande de mettre dans leur propriété "Contenu" la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT Nom_du_champs FROM Table_Commande WHERE Table_Commande.Client = [Forms]![formulaire_client]![formulaire_client_commande_liste]![Client]
    Dans le cas que je vient de te donner :
    La table des commande s'appelle : Table_Commande
    Le champs de cette table contenant le nom du client s'apelle : Client
    Nom_du_champs est un champs qui fait partis du formulaire : formulaire_client_commande
    [Forms]![formulaire_client]![formulaire_client_commande_liste]![Client] est le lien vers le champs Client de ton formulaire formulaire_client_commande_liste

    En principe cette technique est applicable dans ton cas mais je ne suis plus sur exactement de la syntaxe.

    J'espere que ca t'aidera
    A bientot

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    j'ai oublié de préciser que le formulaire principal et les deux sous formulaires existe déja et que le contenue est bon,

    ce qu'il me manque c'est la méthode pour faire qu'en cliquant sur une des commandes listé dans le sous formulaire formulaire_client_commande_liste

    le sous formulaire formulaire_client_commande affiche alors la commande sur la quelle je viens de cliquer

    j'utilise la méthode suivante pour ouvrir formulaire_client_commande, mais je voudrais le mettre à jour en tant que sous formulaire et non pas l'ouvrir en tant que nouveau formulaire
    'DoCmd.OpenForm "formulaire_client_commande"
    Forms("formulaire_client_commande").Filter = "[COMMANDE_NUM]=" & COMMANDE_NUM.Value
    Forms("formulaire_client_commande").FilterOn = True

    j'espère que c'est un peu plus clair ^^

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 31
    Points : 26
    Points
    26
    Par défaut
    Je pense avoir compris ^^

    Dans ce cas, si j'ai bien compris , pour l'ouverture de ton formulaire je retirerai :
    Forms("formulaire_client_commande").Filter = "[COMMANDE_NUM]=" & COMMANDE_NUM.Value
    Forms("formulaire_client_commande").FilterOn = True

    Ensuite, a l'ouverture du formulaire formulaire_client_commande, tu met un code evenementiel qui fait ceci :

    1- Tu fais une requete dans ta table ou il y a tes commandes pour recupere tout les champs ou COMMANDE_NUM est egal a celui que tu vient de recuperer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
     
    Dim dbase As Database
    Dim requete As DAO.Recordset
    Dim SQL As String
     
    Set dbase = CurrentDb
     
    SQL = "SELECT * FROM TABLE_COMMANDE WHERE ( TABLE_COMMANDE.COMMANDE_NUM = " & [Forms]!]![formulaire_client]![formulaire_client_commande_liste]![COMMANDE_NUM] & ");"
    Set requete = dbase.OpenRecordset(SQL)
    3- Tu attribut a tes champs de formulaire_client_commande la valeur des champs corespondant de ta requete.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Nom_Client.Caption = requete!Nom_Client
    Voila ca devrait marcher.

    PS: Dsl de ma reponse tardive
    @+

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Août 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    merci je comprend la manip, je tenterais par la suite , mais en ce moment j'ai passé cette méthode pour l'ouverture d'une nouvelle fenêtre, pour moi c'était la solution la plus simple qui m'a permis d'avancer sur d'autres points, je tenterais par la suite de réintégré ce formulaire en sous-formulaire.

    merci beaucoup pour tes réponses ue je garde bien précieusement ^^

  6. #6
    Nouveau membre du Club
    Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 32
    Points : 32
    Points
    32
    Par défaut
    Bonjour,

    Pour ceux qui sont arrivé ici

    J'ai eu à traiter ce cas de figure.
    Voilà comment j'ai procédé :
    j'ai ajouté un textbox dans le formulaire principal
    celui-ci sera rendu invisible
    le sous-formulaire (détail de la commande) peut être paramétré avec : "champ père" / "champ fils"
    Je pense que ça, tu dois déjà l'utiliser (mais pas sur un champ indépendant et c'est là toute l'astuce)

    maintenant, tu es d'accord que si ce champ contient la valeur identifiant ta commande, le contenu de ton sous-formulaire contiendra ta commande
    tu peux essayer en entrant une valeur manuellement (en le rendant visible le temps de la manip)

    bon, ben reste juste à mettre à jour la valeur dans ce champ lorsque tu cliques sur la commande dans le SF formulaire_client_commande_liste
    pour faire référence au formulaire principal, utilise "parent"

    Je ne suis pas rentré dans les détails, j'ai juste montré la marche à suivre

    Bonne continuation

Discussions similaires

  1. [AC-2007] Formulaire/sous formulaire sur dernier enregistrement
    Par Dahitaa dans le forum IHM
    Réponses: 5
    Dernier message: 20/08/2011, 11h00
  2. [AC-2003] Ouvrir sous formulaire sur enregistrement précis
    Par mercatog dans le forum IHM
    Réponses: 2
    Dernier message: 26/07/2009, 17h17
  3. Réponses: 4
    Dernier message: 17/11/2008, 22h04
  4. Réponses: 3
    Dernier message: 27/09/2007, 23h32
  5. Réponses: 2
    Dernier message: 26/06/2006, 02h15

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