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 :

Sous formulaire lié à une zone de liste déroulante


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Points : 16
    Points
    16
    Par défaut Sous formulaire lié à une zone de liste déroulante
    Salut à tous


    J’ai un formulaire A avec un sous formulaire B. le formulaire A contient une zone de texte (txt1), et le sous formulaire B contient des valeurs qui correspondent (liées) aux valeurs de la zone de texte (txt1) du formulaire A. Si je passe d’un enregistrement à un autre à l’aide du bouton de déplacement du formulaire A, alors le sous formulaire B change en conséquence.

    Ma question est que je veux remplacer la zone de texte (text1) par une zone de texte déroulante, et par la suite masquer les boutons de déplacement et faire changer les valeurs du sous formulaire par rapport aux valeurs choisis dans la zone de texte déroulante. Mais quand je manipule le sous formulaire j’obtiens le message d’erreur suivant : impossible de supprimer ou de modifier l'enregistrement car la table 'table1' comprend des enregistrements connexes

    Est ce qu’il y a un moyen de lier les sous formulaire à une zone de texte déroulante du formulaire au lieu d’utiliser les boutons de déplacement du formulaire

    merci

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 86
    Points : 95
    Points
    95
    Par défaut
    tu peux essayer de lier ton sous-formulaire à ta liste déroulante du formulaire, et à chaque fois que tu sélectionnes une nouvelle ligne de ta liste déroulante tu fais un Requery sur ton sous-formulaire.
    Le plus simple si tu peux c'est de baser la requête de ton sous-formulaire sur le nom de ta liste déroulante (par défaut, quand dans une commande tu donnes le nom de la liste déroulante, il prend la valeur sélectionnée).

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM TABLE WHERE champs1 = Formulaires!tonFormuaire!taListeDeroulante
    Avec ca, ton sous-formulaire s'appuis automatiquement sur la valeur sélectionnée dans ta liste déroulante.

    Après, tu as juste à faire un événement sur ta liste déroulante sur OnChange ou quelque chose comme ca et dans cet événement tu fais SousFormulaire.Requery et normalement ca marche

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    [
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM TABLE WHERE champs1 = Formulaires!tonFormuaire!taListeDeroulante
    j'ai essayé de le faire, mais le message d'erreur précédent apparait toujour quand je me positionne sur le sous formulaire ???

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 86
    Points : 95
    Points
    95
    Par défaut
    est-ce que par hasard les infos de ton formulaire et de ton sous-formulaire ne se recoupent pas par tes requêtes ? Vérifie peut-être par là. Sinon je suis désolé mais je ne vois pas

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par xblond
    est-ce que par hasard les infos de ton formulaire et de ton sous-formulaire ne se recoupent pas par tes requêtes ? Vérifie peut-être par là. Sinon je suis désolé mais je ne vois pas
    j'ai réglé le problème d'une autre manière, j'ai remplacé la zone de texte de mon formulaire principale par une zone de texte modifiable indépendante à l'aide de l'assistant, et j'ai choisis la 3 option qui permet de rechercher les données en fonction de la valeur de la zone de liste modifiabe.

    merci à tous

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par lionski
    j'ai réglé le problème d'une autre manière, j'ai remplacé la zone de texte de mon formulaire principale par une zone de texte modifiable indépendante à l'aide de l'assistant, et j'ai choisis la 3 option qui permet de rechercher les données en fonction de la valeur de la zone de liste modifiabe.

    merci à tous
    un autre problème relié à la liste déroulante indépendante crée à l'aide l'assistant est que lorsque je ferme et j'ouvre le formulaire la liste déroulante affiche un champ vide de départ (ce que je veux) mais la zone de texte liée à la liste déroulante affiche des valeurs.
    Quoi faire pour résoudre ce problème???????:

  7. #7
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    bonjour,

    A mon avis il n'est pas possible de faire comme tu penses.
    1èrement il n'est pas possible de lier un formulaire et un sous-formulaire si le formulaire principal est indépendant.

    Dans ton cas je pense que tu veux rechercher des enregistrements avec une liste déroulante et afficher le sous formulaire.


    Tu dois faire de la façon suivante

    tu crées ton formulaire principal basé sur une requête et tu mets le champs que tu veux lier dans ce formulaire et tu le mets "invisible".
    Puis tu fais un liste déroulante pour la recherche d'enregistrement de ton formulaire.

    ensuite tu mets ton sous-formulaire lié au champs que tu veux (caché)

    Dans ton formulaire principal tu supprimes les boutons de navigation etc...

    bonne chance

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Alexandre Sahli
    bonjour,

    A mon avis il n'est pas possible de faire comme tu penses.
    1èrement il n'est pas possible de lier un formulaire et un sous-formulaire si le formulaire principal est indépendant.

    Dans ton cas je pense que tu veux rechercher des enregistrements avec une liste déroulante et afficher le sous formulaire.


    Tu dois faire de la façon suivante

    tu crées ton formulaire principal basé sur une requête et tu mets le champs que tu veux lier dans ce formulaire et tu le mets "invisible".
    Puis tu fais un liste déroulante pour la recherche d'enregistrement de ton formulaire.

    ensuite tu mets ton sous-formulaire lié au champs que tu veux (caché)

    Dans ton formulaire principal tu supprimes les boutons de navigation etc...

    bonne chance
    merci, mais je vais m'exprimer encore.. lorsque on a un formulaire avec un sous formulaire, on a les boutons de déplacement pour les deux.
    ce que je veux c'est que je ne veux pas de bouton de déplacement pour chercger les valeurs de mon formulaire, c'est pour cela j'ai changer mon cham clef avec une liste déroulante.
    j'espere que c'Est claire

  9. #9
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    Si comprend bien tu veux pouvoir te déplacer dans les enregistrements avec la liste déroulante non?

    Si c'est le cas tu ne peux pas utiliser une liste déroulante avec comme source ton champs clé comme tu dis. Car tu vas chaque fois changer la valeur de ce champ.

    Tu dois impérativement passer par une liste déroulante qui a du code pour rechercher ton enregistrement. (si tu ne sais pas le faire en vba il y a un assistant qui le fait à ta place pour la création)
    Avec cela tu pourras passer d'un enregistrement à l'autre sans les boutons

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Alexandre Sahli
    Si comprend bien tu veux pouvoir te déplacer dans les enregistrements avec la liste déroulante non?

    Si c'est le cas tu ne peux pas utiliser une liste déroulante avec comme source ton champs clé comme tu dis. Car tu vas chaque fois changer la valeur de ce champ.

    Tu dois impérativement passer par une liste déroulante qui a du code pour rechercher ton enregistrement. (si tu ne sais pas le faire en vba il y a un assistant qui le fait à ta place pour la création)
    Avec cela tu pourras passer d'un enregistrement à l'autre sans les boutons
    exactement, je veux me déplacer à l'aide de la liste déroulante. Par exemple, j'ai un formulaire avec un sous formulaire , telque pour chaque code j'ai la description du code et une ou plusieur éléments de base associés, les champs sont :

    FORMULAIRE
    Code : une liste déroulante
    Description du code[/COLOR] : une zone de texte

    SOUS FORMULAIRE
    Éléments de base : zone de texte

    Donc je veux lorsque je choisi un code je trouve la description du code, et dans le sous formulaire les éléments de base de ce code. et ainsi de suite.

    c'est un formulaire que j'appele à partir d'un autre formulaire pour sélectionné un élément de base (parmi plusieur) pour un code choisi dans la liste déroulante.

    le code que j'utilise fonctionne, sauf qu'a l'ouverture du formulaire, le champ description du formulaire et le champ élément de base du sous formulaire ne sont pas vides par contre le champ liste déroulante est vide???
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Modifiable1_AfterUpdate()
        ' Rechercher l'enregistrement correspondant au contrôle.
        Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[Code1] = '" & Me![Modifiable1] & "'"
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
     
    End Sub
    j'epere que c'est claire

  11. #11
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 348
    Points : 19 597
    Points
    19 597
    Billets dans le blog
    65
    Par défaut
    Salut,

    ton code que je me suis permis de modifier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Modifiable1_AfterUpdate()
    ' Rechercher l'enregistrement correspondant au contrôle.
    Dim rs As DAO.recordset 
     
    Set rs = Me.RecordsetClone
    rs.FindFirst "[code1] = '" & Me![Modifiable1] & "'"
       If Not (rs.NoMatch) Then Me.Bookmark = rs.Bookmark
     
    End Sub
    Il faut bien mettre à jour les champs pere et fils de ton sousform avec le champ code..pour actualiser le sousform quand tu click sur ta zdl...

    sinon sur ouverture de ton form:
    tu peux ajouter 1 controle code (invisible par ex.) lié au champ code de ta table

    et sur ouverture de ton form tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me![Modifiable1]=Me!Code ' par exemple
    comme ca ta ZDL ne sera pas vide

    @+

  12. #12
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut

    le code que j'utilise fonctionne
    lorsque tu écris cela j'ai de la peine à comprendre si le "code" est ici le champs que tu attribues au "code" de l'article ou je ne sais quoi avec la description correspondante ou le code VBA.


    Donc faisons un résumé:

    dans ton formulaire principal tu dois avoir les éléments suivants:

    Un zone de texte lié au champs : code
    Un zone de texte lié au champs: description code
    Quand je dis lié c'est à dire que la source contrôle est bien ton champs "code"

    ensuite tu dois avoir ta zone de liste modifiable que tu as nommée "Modifiable1" cette zone de liste modifiable ne dois pas avoir de "source contrôle"
    par contre il te faut charger les données de la liste avec une requête basée sur ton formulaire. Dans propriété contenu


    Dans ton sous formulaire il doit y avoir
    Éléments de base : zone de texte
    mais aussi dans la requête du sous-formulaire le champs "code" de façon que tu puisses faire jouer les relations père-fils de ton formulaire et sous-formulaire.

    Persévère car je pense que tu es près du but. Il te faut bien comprendre la fonction de chaque élément d'un formulaire et d'un sous-formulaire.

    bonne chance

  13. #13
    Nouveau membre du Club
    Inscrit en
    Octobre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 71
    Points : 38
    Points
    38
    Par défaut
    Bonjour à tous,

    Je me suis servie de ce topic pour contruire mon formulaire Access, ça marche bien sauf un petit détail.

    J'ai donc un formulaire et un sous-formulaire. J'ai mis en place une liste déroulante dans le formulaire pour pouvoir changer d'enregistrement.
    Cette liste déroulante est basée sur l'ID d'une table (qui fait le lien avec le sous-formulaire), et j'affiche en plus le champ "nom" associé à cet ID (j'ai donc 2 colonnes mais je cache la première, celle de l'ID).

    Pour ne pas que ma liste soit vide à l'ouverture, j'ai créé un évènement sur ouverture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me![Modifiable134] = Me![NOM]
    Ca marche bien, à l'ouverture j'ai bien le nom qui s'affiche. Mais quand j'ouvre ma liste, j'ai le message "Valeur incorrecte pour ce champ" (je clique OK et ensuite tout marche très bien). Je suppose que ça vient du fait que je charge ma liste avec uniquement le champ "nom", alors que la liste est censée avoir 2 colonnes. Impossible de débloquer cette situation... J'ai essayé (je m'y connais pas gd chose !)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Me![Modifiable134] = Me![ID] & ";" & Me![NOM]
    , sans succès.

    Merci pour votre aide !

  14. #14
    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
    @ Alexandre Sahli

    Citation Envoyé par Alexandre Sahli Voir le message
    bonjour,

    1èrement il n'est pas possible de lier un formulaire et un sous-formulaire si le formulaire principal est indépendant.
    Ceci est absolument faux. Regarde la construction du sous-formulaire dans l'article Afficher un repère dans un onglet (Chapitre : implantation du sous-formulaire)

    @ riomois85

    La zone de liste déroulante contient la valeur de la première colonne de la source. Donc le code à implanter à l'ouverture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me![Modifiable134] = ID du nom à afficher
    D'autre part, je te conseille de nommer les objets que tu implantes sur ton formulaire

    Bonne continuation

  15. #15
    Candidat au Club
    Femme Profil pro
    Ingenieure amelioration continue
    Inscrit en
    Mars 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingenieure amelioration continue
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Sous formulaire lie a une liste deroulante
    Bonjour, je veux faire la meme chose que ce aui est decrit ici, mais forcement meme apres lecture je n'y arrive pas...
    Explication:

    J'ai cree un formulaire qui doit me permettre de modifier mes enregistrements:
    Dans ce formulaire j"ai une belle liste deroulante ou je peux voir ( le noms, le num d'identification, et d"autres caracteristiques)
    En dessous j'ai un sous-formulaire,

    Ce que je voudrais c'est choisir l'enregistrement que je desire a l'aide de ma liste deroulante,
    Pour pouvoir ensuite en modifier certains champs dans mon sous formulaire.

    Sauf quand je selectionne mon enregistrement dans ma liste deroulante,
    je n'ai rien qui apparait dans mon sous formulaire.
    j'ai teste plein de combinaisons avec les relations Parents/enfants mais rien de fonctionne.

    Si quelqu'un pouvait m'aider s'il vous plait j'en serais tres reconnaissante.



    update:

    Bon finalement je me suis debrouillee autrement j'obtient quelque chose de pas tres ergonomique mais qui marche.
    merci quand meme

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/06/2009, 11h59
  2. Réponses: 13
    Dernier message: 19/11/2007, 18h22
  3. Réponses: 2
    Dernier message: 18/11/2007, 20h17
  4. Réponses: 4
    Dernier message: 07/03/2007, 10h36
  5. maj d'un sous formulaire par une zone de liste
    Par mnssylvain dans le forum IHM
    Réponses: 3
    Dernier message: 31/08/2006, 22h46

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