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 :

Sélection d'un enregistrement d'une table liée et ouverture dans un formulaire [AC-2010]


Sujet :

IHM

  1. #1
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 184
    Points : 164
    Points
    164
    Par défaut Sélection d'un enregistrement d'une table liée et ouverture dans un formulaire
    Bonjour,

    j'ai un formulaire Client créé à partir d'une table Client liée à une table Commandes.

    Dans le formulaire, j'ai les informations de la table Client mais aussi un tableau (généré automatiquement) des commandes ( 0 à presque infini) liée au client.

    J'essaie dans un nouveau formulaire d'ouvrir une commande. Mon problème est que je dois choisir comme méthode imposée de pouvoir sélectionner dans le tableau des commandes, la commande spécifique et de cliquer sur un bouton (aperçu/modifier) pour ouvrir le formulaire contenant les informations sur cette commande.
    Le bouton a été créé avec un assistant contrôle avec un OpenFormulaire.
    Mais je n'arrive pas dans "Condition Where" à trouver comment récupérer l'ID de l’enregistrement sélectionné du tableau de commande.

    Pour l'heure, je n'arrive qu'à obtenir que la première commande du client.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Id_Client]=[Formulaires]![Fiche_Client]![Id]
    Sauriez-vous comment faire?

    Merci d'avance pour vos suggestions.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Pourrais-tu poster une copie d'écran de tes formulaires ?

    J'ai du mal à comprendre qui appelle qui et où sont les paramètres.

    Dans l'immédiat ton instruction semble correcte en supposant [Id] numérique.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 184
    Points : 164
    Points
    164
    Par défaut
    Bonjour,

    Mon formulaire Client est celui-ci:

    Nom : formulaire client v2.png
Affichages : 391
Taille : 21,3 Ko

    Mon formulaire Commande est celui-ci:

    Nom : formulaire commande client V2.png
Affichages : 352
Taille : 14,6 Ko

    Id_Commande est la clé primaire de la table commande
    Id est celle de la table Clients.

    Je n'arrive pas à utiliser dans la condition Where Id_Commande à part manuellement mais cela plante.

    J'essaie depuis le bouton "modifier" (il vaut aussi pour la fonctionnalité aperçu) d'ouvrir l'enregistrement sélectionné en bas du formulaire "Client" vers le formulaire "Commande".

    J'ai essayé d'utiliser le sous-formulaire correspondant au tableau Commandes du formulaire Client mais je n'arrive pas à récupérer la valeur Id_Commande

    Là, j'essaie de monter en compétence sur Access pour des projets à venir et on m'a demandé de faire ce type d'exemple qui est loin d'être terminé.

    Si vous aviez une idée, je vous serai reconnaissant.

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Pour l'heure, je n'arrive qu'à obtenir que la première commande du client.
    Et c'est normal, puisque ton filtre actuel demande toutes les commandes du client et pas une commande spécifique.

    Je pense que la solution est quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Id_Commande]=[Formulaires]![Fiche_Client]![NonSousFormCommande].[Form]![Id_Commande]
    Cela va aller chercher le numéro de la commande en cours (cliquée) dans le sous-formulaire.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur technicien informaticien en retraite
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur technicien informaticien en retraite
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 6
    Points
    6
    Par défaut Pour vous aider il faudrait avoir la base de donnée et les formulaires utilsés
    Pour vous aider, il faudrait avoir la db et les formulaires même sans données.
    Je crois que si je devais faire cela, je prévoirais l'appel à un autre formulaire ou un rapport par un double clic sur l'ID de la commande. De ce fait je pourrait capturer la valeur de l'ID et de ce fait créer un filtre ou une requête SQL sur base de cette valeur.

  6. #6
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 184
    Points : 164
    Points
    164
    Par défaut
    Pourtant j'essaie depuis quelques jours d'avoir une commande spécifique mais je n'arrive pas à extraire l'ID_commande du le tableau des commandes propres au client

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Id_Commande]=[Formulaires]![Fiche_Client]![NonSousFormCommande].[Form]![Id_Commande]
    Hélas cela ne marche pas car Id_Commande provient d'une autre table commande (liée à la table client) et d'un autre formulaire.
    ils sont absents.

    Je n'arrive pas à les utiliser. J'avais vu cette approche auparavant mais Id_commande n'est pas reconnu.

    avec la méthode suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Id_Commande]=[Fill24].[Formulaire]![Id_Commande]
    Je dois à chaque fois rentrer manuellement dans une boite de dialogue "Entrer une valeur de paramètre".

    Je n'arrive pas à obtenir la valeur Id_Commande du tableau du sous-formulaire.
    J'ai le formulaire Client construit sur la table Client mais qui affiche les commandes du client (Fill24) provenant de la table Commande.

    Je cherche depuis trois jours sans succès sur la manière d'obtenir la clé primaire de ce tableau "Commande" lié au formulaire Client.

    Je n'arrive pas à trouver comment obtenir l'Id_commande sélectionné d'un enregistrement du sous-tableau.

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Logiquement cela devrait être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Id_Commande]=[Formulaires]![Fiche_Client]![Fill24].[Form]![Id_Commande]
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Ingénieur technicien informaticien en retraite
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur technicien informaticien en retraite
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    Pour résoudre votre problème, il faut écrire une routine en VBA qui permet de contrôler de façon plus efficace l'accès aux différents formulaires et aux différents champs et établir un filtre correct pour ouvrir un autre formulaire ou rapport. Je vais essayé de prendre de mon temps pour vous donner une db exemple avec la routine correspondante.
    A+

  9. #9
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 184
    Points : 164
    Points
    164
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    Logiquement cela devrait être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Id_Commande]=[Formulaires]![Fiche_Client]![Fill24].[Form]![Id_Commande]
    A+
    Alléluia (si vous me permettez l'expression)! Cela marche.

    J'ai testé sur plusieurs clients différents.
    Je vous remercie vraiment très sincèrement.
    J'étais complétement perdu car j'étais assez ignorant sur comment utiliser intelligemment le sous-formulaire Fill24 (le paramétrer) dans ma requête.

    Encore une fois merci beaucoup!

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Ingénieur technicien informaticien en retraite
    Inscrit en
    Avril 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur technicien informaticien en retraite
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    Voici la solution avec le VBA. Le formulaire "Client1" fait apparaître un sous-formulaire CdesSF. En double-cliquant sur l'ID d'une commande, le formulaire "CdesFinal" est activé et chargé uniquement avec la commande sélectionnée par le double clic.
    Bien à vous et A+
    Fichiers attachés Fichiers attachés

  11. #11
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 184
    Points : 164
    Points
    164
    Par défaut
    Citation Envoyé par rocouvreur Voir le message
    Voici la solution avec le VBA. Le formulaire "Client1" fait apparaître un sous-formulaire CdesSF. En double-cliquant sur l'ID d'une commande, le formulaire "CdesFinal" est activé et chargé uniquement avec la commande sélectionnée par le double clic.
    Bien à vous et A+

    Merci beaucoup,

    je vais jeter un coup d'oeil approfondi.
    A+

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

Discussions similaires

  1. [WD20] Suppression d'un enregistrement d'une table liée avec d'autres
    Par wilfried97 dans le forum WinDev
    Réponses: 4
    Dernier message: 04/08/2016, 08h32
  2. [AC-2010] Afficher uniquement le dernier enregistrement d'une table liée
    Par sardaucar dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 12/11/2013, 15h45
  3. [AC-2007] Parcours des enregistrements d'une table liée
    Par oreoolep dans le forum VBA Access
    Réponses: 3
    Dernier message: 27/09/2011, 11h27
  4. Réponses: 2
    Dernier message: 29/10/2010, 13h09
  5. Réponses: 4
    Dernier message: 07/02/2008, 19h43

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