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 :

Formulaire et sous-formulaire vers même table


Sujet :

IHM

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Formulaire et sous-formulaire vers même table
    Bonjour à tous,

    Je peine un peu sur mon développement.

    Je souhaite creer une base de contacts clients (par exemple ceux se présentant sur une exposition). Je dispose d'une base clients car les visiteurs peuvent déjà y figurer. Si non je saisis manuellement.

    Mon formulaire contient un sous formulaire. Ce sous formulaire est lié à une table CLIENTS. Je sélectionne un client puis sur la suite du formulaire (donc hors sous-formulaire) je saisis ses centres d'intérêts. Puis je valide l'enregistrement, c'est à dire l'envoi de toutes les données du formulaire vers une table CONTACTS.

    Le problème est que pour chaque enregistrement validé je génère deux lignes dans ma table CONTACTS. Une ligne avec les données du sous-formulaire et une ligne avec les données du formulaire hors sous-formulaire...

    Auriez-vous une piste ?

    Grand merci

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Bonjour,

    Peux-tu nous poster la copie d'écran de ton modèle de données ?

    Je pense que j'y verrais plus clair !

    Cordialement,

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Une copie écran du formulaire ?

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Merci. Qu'appelles tu modèle de base de données ?

  5. #5
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut
    Il s'agit de montrer les tables avec leurs relations. Voir pièce ci-jointe

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Je n'ai aucune relation entre tables.

    Seulement deux tables. CLIENTS avec coordonnées clients et une table CONTACTS.
    Pour simplifier :

    Table CLIENTS : nom, prenom, adresse
    Table CONTACTS : nom, prenom, adresse, intérêt1, Intérêt2

    Les champs nom, prenom du sous formulaire sont alimentés par CLIENTS et l'ensemble des données doit être basculé après validation vers la table CONTACTS. Une ligne par contact.

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Tu veux simplement copier les données d'une table vers une autre en fonction de ton choix dans un formulaire.

    Une requete Ajout avec une condition where fera l'affaire.

    Le declenchement de l'action peut être provoquer par un double-clic sur le nom.

    Voici un expemple d'une telle requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO CONTACT ( N_CONTACT, NOM, ADRESS1, CODEPOST )
    SELECT CLIENT.N_CLIENT, CLIENT.NOM, CLIENT.ADRESS1, CLIENT.CODEPOST
    FROM CLIENT
    WHERE (((CLIENT.NOM)=[forms].[monform].[nom]));
    Tu peux remarquer la condition where est basée sur le controle Nom du formulaire ouvert monform.

    Reste qu'à adapter.

    Cordialement,

  8. #8
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Grand merci de ta réponse

    A la lecture de ton code on "exporte " bien les coordonnées du client issues de la table CLIENTS, sélectionnées par le sous-formulaire, vers la table CONTACTS. C'est OK, une ligne est creee dans la table CONTACTS avec ces coordonnées.

    Mais dans le formulaire (ailleurs que dans le sous-formulaire inclus) il y deux champs : interet1 et interet2...qui ne proviennent d'aucune table mais seront saisies dans le formulaire.
    Comment faire pour que ces deux données viennent se compiler dans la ligne créée ci-dessus et associées aux coordonnées clients ci-dessus ?

    Grand merci de ton aide

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Comme ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO CONTACT ( N_CONTACT, NOM, interet1, interet2 )
    SELECT CLIENT.N_CLIENT, CLIENT.NOM, forms.monform.interet1, forms.monform.interet2
    FROM CLIENT
    WHERE (((CLIENT.NOM)=[forms].[monform].[nom]));

  10. #10
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Toujours le même problème. Je créé deux lignes par enregistrement : l'une contient les données du formulaire et l'autre celles du sous-formulaire inclus !

    Bonne journée

  11. #11
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Bonjour,

    Quand tu dis "Je créé deux lignes par enregistrement" ou le vois-tu ? Dans la table Client ou dans un formulaire ?

    Cordialement,

  12. #12
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Dans la table CONTACTS qui est la table de destination des données saisies dans le formulaire

  13. #13
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 547
    Points
    24 547
    Par défaut
    Tu dois avoir des doublons dans la table client (c'est la seule explication logique d'après ce que tu nous a décris.

Discussions similaires

  1. Lier un sous-formulaire à un sous-formulaire
    Par bobosh dans le forum IHM
    Réponses: 2
    Dernier message: 02/03/2021, 11h45
  2. Réponses: 5
    Dernier message: 06/05/2015, 12h24
  3. Réponses: 2
    Dernier message: 24/06/2013, 09h31
  4. Accéder à un sous-formulaire de sous-formulaire
    Par touftouf57 dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/11/2008, 19h04
  5. Réponses: 2
    Dernier message: 21/03/2008, 20h52

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