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

VBA Access Discussion :

Récupération des variables d'un formulaire à l'autre


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 14
    Points
    14
    Par défaut Récupération des variables d'un formulaire à l'autre
    Bonjour,
    J'ai fait un formulaire de recherche selon celui de cafeine, avec comme dernier code celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub list_result_DblClick(Cancel As Integer)
       DoCmd.OpenForm "Formu_sortie", acNormal, , "[ref_prod_nomm]=" & Forms![formu_rech_sorti]![list_result]
     End Sub
    Tous ça marche...
    Mais voici mon probleme,
    Je voudrai que je formulaire recupère la variable ref_prod_nomm (ce qu'il fait) mais avec celle ci je voudrai faire appel avec plusieur table pour afficher tous les champs auquel ce produit fait référence, et en plus que toute ces données s'enregistre dans une autre table a l'aide d'un bouton...

    (dsl j'essaye d'etre compréhensible)

    pour le moment je n'arrive pas a récupérer tout les champs selon la variable transmise...
    j'ai essayé avec un champs et Form_load.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub form_load()
    Me.txt_prod_base.RowSource = "SELECT ref_prod_nomm, ref_prod_base FROM tab_prod_nomm where tab_prod_nomm!ref_prod_nomm = txt_ref_prod_nomm;"
    Me.txt_prod_base.Requery
    End Sub
    mais ça ne marche pas.... je suis assez novice en VBA
    Il y a t'il une autre solution, ou méthode???

    Merci d'avance

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 221
    Points : 244
    Points
    244
    Par défaut
    Deja je te conseille de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub list_result_DblClick(Cancel As Integer)
    If List_result.Value <> empty then
         DoCmd.OpenForm "Formu_sortie", acNormal, , "[ref_prod_nomm]=" & Forms![formu_rech_sorti]![list_result]
    End if
    End Sub
    Cela pour eviter que si l'utilisateur double clique a l'interieur de ta liste mais qu'il n'y a pas de champ selectionné, ton formulaire s'ouvre et pose quelques soucis ^^

    Ensuite ta requête SQL ne doit pas être correcte. Tu veux bien afficher des infos dans une liste déroulante en fonction du nom que le formulaire a récupéré?!
    Si c'est le cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.txt_prod_base.RowSource = "SELECT ref_prod_nomm, ref_prod_base FROM tab_prod_nomm where ref_prod_nomm = """ & txt_ref_prod_nomm & """;"
    Voila pour ce que j'ai compris !

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 14
    Points
    14
    Par défaut
    Merci de ta réponse...

    effectivement tu a bien compris le principe...
    J'ai essayer ce que tu ma montrer et ça ne marche pas.. Je mets peut etre le code la ou il ne faut pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub txt_prod_base_beforeUpdate(Cancel As Integer)
    Me.txt_prod_base.RowSource = "SELECT ref_prod_nomm, ref_prod_base FROM tab_prod_nomm where ref_prod_nomm = """ & txt_ref_prod_nomm & """;"
    End Sub
    de plus cette requete et une requete test... car en fait tout les données qui ce trouve dans la table tab_prod_nomm sont des clés primaire d'autre table....

    mais je voudrais que dans le formulaire formu_sorti affice les données texte
    >>>>donc que la requete aille chercher les données dans les tables correspondante...
    >>> et je voudrais enregistrer avec ce formulaire les cles primaire dans une autre table...

    est ce possible??

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 221
    Points : 244
    Points
    244
    Par défaut
    Si tu veux que l'action se fasse à l'ouverture de ton formulaire je te conseille de le faire sur une procédure évenementielle "Sur activation" soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Current()
    'ton code
    End Sub
    Ensuite tout est possible en SQL
    Mais ca risque d'être une requête un peu plus compliqué que celle que tu as là.
    Je te conseille de regarder des cours sur la SQL parce que je ne peux pas te construire ta requête (comme ca)
    Mais c'est tout à fait fesable d'aller chercher des infos dans plusieur tables quand tu as les clées primaires de celles ci !

    Tiens moi au courant de l'évolution de ta requête

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 14
    Points
    14
    Par défaut
    merci...
    Alors j'ai essayer ce que tu ma dis... et je ne m'en sort pas....
    Je met bien le code ou tu me la dis...
    mes variable sont bien nomme dans mes zones de liste.... mais ça na marche pas...

    Alors j'essaye de faire d'autre truc mais ça a l'air limiter en terme de requete...
    dans les propriétés de ma zone de liste au niveau du contenu j'ai mis cette requete la...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ref_prod_base FROM tab_prod_nomm WHERE ref_prod_nomm=txt_ref_prod_nomm;
    la ça marche...
    Mais je ne peu pas appeler une autre table en meme temps dans cette requete.... ou alors je l'ecrit mal....

    J'essaye de naviguer entre tes conseils et les tutos.... mais je lutte....
    je recherche encore les secrets d'ecriture du code....

    Merci de tes conseils, si tu en a d'autre je prend....

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 14
    Points
    14
    Par défaut
    donc j'ai continuer a fouiller, et ça marche...
    mais j'aurai voulu avoir ton avis... voila ce que j'ai fait:
    donc ma zone de texte récupere toujours ma variable ref_prod_nomm de mon autre formulaire.... de la pas de probleme
    avec ça j'ai donc ajouter des zones de liste dans laquel je fais executer une requete au niveau du contenu dans les propriètés (ex:req_1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT tab_prod_nomm.ref_prod_nomm, tab_prod_base.Prod_base
    FROM tab_prod_base INNER JOIN tab_prod_nomm ON tab_prod_base.ref_prod_base=tab_prod_nomm.ref_prod_base
    WHERE (((tab_prod_nomm.ref_prod_nomm)=[txt_ref_prod_nomm]));
    à la différence pres ce que donc mon critère de rajoute le nom de mon controle...
    De la je fait 2 collonnes dans ma zone de liste donc le premier absent puis que c'est une cle primaire...

    Donc ça marche....
    mais le probleme c'est que je vais devoir créer autant de requete que de champs.... alors est ce une bonne solution????

    sans oublier que de ce formulaire on ne poura que ajouter les données dans une table a l'aide d'un bouton...

    puisque que tu ma aider, je solicite ton avis.... est une bonne méthode???
    Merci d'avance

  7. #7
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 221
    Points : 244
    Points
    244
    Par défaut
    Si tu dois afficher tout, tu ne peux pas vraiment faire autrement que de construire des requêtes (enfin moi je vois ca comme ca)

    Après pour l'ajout, je pense que ca ne posera pas de problème puisque il suffira de récupérer les données que tu veux ajouter lorsque qq un appui sur ton bouton et de les ajouter à la table voulue.
    Un petit peu de code et le tour est joué

Discussions similaires

  1. [MySQL] récupération des valeurs d'un formulaire d'une page dans une autre page
    Par CSI2012 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/02/2013, 13h43
  2. [MySQL] Récupération des variables avec un formulaire
    Par juju03 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/06/2008, 17h43
  3. Récupération des variables de formulaire
    Par Delgion dans le forum Langage
    Réponses: 9
    Dernier message: 04/09/2007, 12h44
  4. [C#] Récupération des variables system...
    Par smyley dans le forum Windows Forms
    Réponses: 7
    Dernier message: 04/08/2005, 11h39
  5. Prendre des variable d'un formulaire pour un autre
    Par soltani.slim dans le forum Access
    Réponses: 4
    Dernier message: 22/06/2005, 17h06

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