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

Access Discussion :

Passer des données d'un sous-formulaire a un autre formulair


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 98
    Points : 61
    Points
    61
    Par défaut Passer des données d'un sous-formulaire a un autre formulair
    Me revoila

    Dans mon formulaire X, j'aimerais passer des données de mon sous formulaire Y(0-N) à mon formulaire Z, afin de les traîter dans une requête!
    Actuellement je n'envoie qu'un champs (qui ne vient pas du sous formulaire) et j'utilise ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        stDocName = "f_contacts_ajout"
        DoCmd.OpenForm stDocName, , , stLinkCriteria, , , Me.RefDossier
    Je suppose que je peux enregistrer mes données dans un tableau, et ensuite receptionner ce tableau du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If IsNull(Me.OpenArgs) Then
        'rien à faire
    Else
        Me.[NewRefDossier] = CLng(Me.OpenArgs)
    End If
    Et y inclure les valeur dans ma requete ? si oui, je ne sais pas trop comment faire cette partie.. faut passer en VBA aussi ou avec le generateur SQL de MSaccess j'y arrive ?

  2. #2
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,

    Pourquoi dois tu passer une valeur à ton formulaire Y ?
    Est ce pour l' inclure dans ta requête source ?

    As tu plusieures valeurs à passer ?

    Tu peux efectivement travailler avec la close "Where" de l'action OepnForm de l'objet Docmd.
    Tu peux aussi faire référence directement à un controle de formulaire ou de sous formulaire ouvert dans la requête source de ton formulaire Z.

    Il y a encore d'autres méthode, selon ton besoin!

    Esssaye d'être plus explicit sur ton besoin afin que nos réponses soit plus précises
    @+


    Pensez au tag

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 98
    Points : 61
    Points
    61
    Par défaut
    En fait j'ai un formulaire avec divers trucs, dont une liste de noms (sous formulaire).
    Ensuite j'ai fais un bouton pour ajouter des noms, qui mouvre un autre formulaire (boite de dialogue style), et dans ce nouveau formulaire, je fais une liste de tous les noms que j'ai, mais j'aimerais que ca n'affiche PAS ceux qui sont deja dans mon formulaire.

    Donc mon idée etait de passer un array des IDs de noms du sous formulaires précédent à la requete de sélection de noms..
    mais je ne sais pas comment faire ?
    et si c'est la meilleure solution.

    Merci.-

  4. #4
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,

    Je crois que tu risque de faire un peu compliqué pour quelque chose de plus simple!

    Si je comprends bien, tu as un formulaire basé sur une table ou requête, dans le quel tu as un sous formulaire lui même basé sur une table dans laquel tu saisie une liste de nom.
    Donc normalement, tu as une table "père" et une table "fille" avec une relation un à plusieur entre ces deux tables!

    Dans ta table "fille", tu as bien ton "tableau" que tu aimerais passé en parammètre si tu fais un "select" avec une condition where sur ta clé de ta table "père".
    Dans ton nouveau formulaire il te suffit donc de faire un select avec soit une jointure externe, soit un "Not In ( select ....)"

    La seule référence extérieur doit être la clé de ton formulaire principal qui doit être aussi le lien entre ton formulaire et ton sous formulaire.
    Tu peux écrire dans ton select quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       ... Where Macle=Forms!NomDuFormPrincipal!NomDuChampClePere
    @+


    Pensez au tag

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 98
    Points : 61
    Points
    61
    Par défaut
    Merci,
    j'ai fais qqch comme ca, et ca a l'air de fonctionner..
    faut que je teste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT t_contacts.RefContact, t_contacts.NomContact, t_contacts.PrénomContact, t_temp_dossier.RefDossier FROM t_contacts LEFT JOIN t_temp_dossier ON t_contacts.RefContact=t_temp_dossier.RefContact WHERE t_temp_dossier.RefContact NOT IN (SELECT  t_temp_dossier.RefContact FROM t_temp_dossier WHERE t_temp_dossier.RefDossier=[NewRefDossier]);
    Par hasard, comment je peux rafraichir un formulaire depuis vba?

    ca rafraichit le formulaire en cours.-..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
    Mias pour rafraichir un autre formulaire ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 98
    Points : 61
    Points
    61
    Par défaut
    Bah jai fais ca en reprenant la fonction de mon autre formulaire...
    et en la rendant public :-\

    Derniere question,
    j'execute qques requetes en VBa, et a chaque fois il m'affiche un message du genre "vous allezz inserer un enreigstrement, blabla etes vous sur" ou "vous allez supprimer un enregistrement,blabla, etes vous sur"..

    Comment s'en passer ?!? cest vraiment pas user friendly.

    Je les exécutes comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      Dim SQL As String
      Dim SQLWhere As String
      SQL = " INSERT INTO t_temp_dossier (RefContact, RefDossier) VALUES (" & Me.lst_contact & ", "
      SQL = SQL & Me.NewRefDossier & ");"
      DoCmd.RunSQL SQL

  7. #7
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Deux solutions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CurrentDb.Execute SQL
    Ou
    Docmd.SetWarnings False
    Docmd.RunSQL SQL
    Dans le premier cas pas besoin d'oter les warnings, mais attention, si dans ta clause sql tu fais appel à tes propres fonctions elles ne seront pas interprétées par Access (il faut respecter la syntaxe SQL et les fonctions access de base)

    Dans le deuxième cas tout est bien interpreter et il faut juste penser à remettre les warnings à True à un moment.
    @+


    Pensez au tag

Discussions similaires

  1. Réponses: 15
    Dernier message: 08/04/2007, 01h12
  2. Réponses: 1
    Dernier message: 30/08/2006, 18h08
  3. afficher des données dans un sous formulaire
    Par issam16 dans le forum Access
    Réponses: 3
    Dernier message: 26/06/2006, 15h36
  4. enregistrement des données d'un sous formulaire
    Par yoyosoleil dans le forum Access
    Réponses: 5
    Dernier message: 19/06/2006, 16h31
  5. Réponses: 25
    Dernier message: 11/10/2005, 11h13

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