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 :

Ajout dynamique de champs [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut Ajout dynamique de champs
    Bonjour,

    j'essaie de réaliser un formulaire contenant une liste déroulante et un bouton "plus" qui ajoute dynamiquement une ligne contenant série de zones de texte (ou autre) liée à la sélection de la liste déroulante et que l'utilisateur peut modifier par la suite. Quand l'utilisateur a fini (et donc créé sa propre liste) il valide le formulaire.

    J'ai trouvé comment ajouter des contrôles via un sous-formulaire mais cela me pose deux problèmes :
    1. Access demande confirmation d'enregistrement de la modification du sous-formulaire (pas pratique du tout).
    2. Je ne veux pas que cela s'enregistre dans le sous-formulaire (qui doit être vide à chaque ouverture du formulaire).

    J'ai bien pensé à faire des champs invisibles qui redeviendraient visibles un à un après le clic sur le bouton "plus". Mais l'utilisateur peut créer plus de vingt lignes et chaque ligne contient plusieurs contrôles. Cela ne me parait pas très efficace comme méthode.

    Mes connaissances Access ne me permettent pas de voir d'autres solutions pour cette demande "classique". Pouvez-vous m'indiquer une piste ou un exemple ? Je n'arrive pas à en trouver sur Internet (je ne dois pas rechercher avec les bons mots).
    Christophe

    Pensez à mettre quand c'est le cas.

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,
    Je n’ai pas compris ce que tu veux faire.
    Pourrais-tu expliquer avec des captures d’écran qui montrent les différentes étapes du processus envisagé ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Une image sera effectivement plus claire :
    Nom : Sans titre.png
Affichages : 190
Taille : 6,8 Ko
    Dans cet exemple, je viens de cliquer sur le bouton "Plus" après avoir sélectionné le Ctrl 4. Ce qui a créé la ligne "Contrôle 4". Puis j'ai rempli les champs de la ligne.
    En sélectionnant un autre contrôle, puis en cliquant sur "Plus", une nouvelle ligne doit apparaitre en dessous de la première, etc.

    Le bouton "Enregistrer" permet d'enregistrer cette liste de contrôle nommée "Test".
    Christophe

    Pensez à mettre quand c'est le cas.

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Au lieu d'ajouter des lignes de contrôles ne peux-tu pas plutôt créer des enregistrements ?
    Si le formulaire que tu montres était affiché en continu, cela aurait quasi le même aspect.

    Que doit-il se passer quand les lignes sont complètes et que l'utilisateur clique « Enregistrer » ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Peux-tu préciser "créer des enregistrements" ?
    Je ne comprends pas "affiché en continu".

    Quand l'utilisateur clique sur "Enregistrer", les différentes lignes sont enregistrées dans une base MySQL.

    Petite précision, le système doit aussi fonctionner avec des listes de contrôles existantes.
    Christophe

    Pensez à mettre quand c'est le cas.

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Je ne comprends pas "affiché en continu".



    Peux-tu préciser "créer des enregistrements" ?
    Ajouter un enregistrement à la table source du formulaire que tu montres. (À l'ouverture, cette table est vidée de son contenu précédent.)



    Quand l'utilisateur clique sur « Enregistrer», les enregistrements de cette table serviraient pour la mise à jour de ta MySQL.


    Petite précision, le système doit aussi fonctionner avec des listes de contrôles existantes.
    Pas compris !
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  7. #7
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Je me renseigne sur ce mode continu (dans mon Access 2010 il y a "formulaires continus" dans "affichage par défaut" mais ça doit être la même chose).

    La table source (Controle dans MySQL) ne contient (principalement) que le nom du contrôle. Les autres données (dans les lignes) sont entrées par l'utilisateur pour être enregistrées dans une autre table (Action dans MySQL). Je ne vois pas comment en ajoutant un enregistrement cela pourrait m'aider (jusqu'à présent, je n'ai fait que des trucs simples en Access).

    Ce que je voulais dire par "avec des listes de contrôles existantes" :
    A partir de ce formulaire, en remplaçant la zone de texte "Nom" par une liste déroulante des Actions existantes, il faudrait que tous les contrôles de l'Action sélectionnée s'affichent comme la ligne de l'image.
    Christophe

    Pensez à mettre quand c'est le cas.

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Désolé, je ne comprends pas ce que tu fais.

    J'espère qu'un autre forumeur prendra le relais.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  9. #9
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Un dessin sera peut-être plus clair, avec 3 étapes :
    Nom : ex.png
Affichages : 201
Taille : 18,3 Ko
    1. Sélection du contrôle 4 puis clic sur Plus.
    2. "Plus" a ajouté la ligne Ctrl 4 vide que l'utilisateur remplit avec "Excel / Non / / 1". Sélection du contrôle 3 puis clic sur Plus.
    3. "Plus" a ajouté la ligne Ctrl 3 vide que l'utilisateur remplit avec "Word / Non / / 2".

    etc. chaque clic sur "Plus" ajoute une ligne que l'utilisateur doit compléter.
    Christophe

    Pensez à mettre quand c'est le cas.

  10. #10
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Donc l’utilisateur
    - remplit le champ Nom, choisit un item dans dans la zone de liste « Contrôle à ajouter » et clique sur Plus,
    - apparaît alors une nouvelle ligne avec 2 zones de texte (Contrôle et Ordre) et 3 zones de liste (Restitution, Bloquant et Prérequis),
    - l’utilisateur complète (ou non) les 5 contrôles de la ligne.

    Et quand l’utilisateur a terminé, il clique sur le bouton « Enregistrer » et que doit-il se passer alors ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  11. #11
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    C'est ça.
    Quand l'utilisateur clique sur "Enregistrer" les lignes sont enregistrées dans une table MySQL, mais ça je devrais y arriver. Mon problème est d'afficher les lignes au fur et à mesure du clic sur "Plus" dans le formulaire.
    Christophe

    Pensez à mettre quand c'est le cas.

  12. #12
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Regarde si ceci convient pour ce que tu veux faire



    Les enregistrements que tu crées au fur et à mesure sont dans la table tLaTable. C’est son contenu que tu dois traiter au clic de « Enregistrer ».
    tLaTable est vidangée à chaque ouverture.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Option Compare Database
    Option Explicit
     
    Private Sub Form_Open(Cancel As Integer)
      DoCmd.SetWarnings False
      DoCmd.RunSQL "DELETE * FROM tLaTable;"
      DoCmd.SetWarnings True
      Me.Requery
    End Sub
     
    Private Sub btPlus_Click()
      Me.Section("Détail").Visible = True
      Me.AllowAdditions = True
      DoCmd.GoToRecord acDataForm, Me.Name, acNewRec
      Me.txtControle = Me.cboCtrlAajouter
      Me.Refresh
      Me.AllowAdditions = False
    End Sub
     
    Private Sub cboBloquant_AfterUpdate()
      Me.Refresh
    End Sub
     
    Private Sub cboPrerequis_AfterUpdate()
      Me.Refresh
    End Sub
     
    Private Sub cboRestitution_AfterUpdate()
      Me.Refresh
    End Sub
     
    Private Sub txtControle_AfterUpdate()
      Me.Refresh
    End Sub
     
    Private Sub txtOrdre_AfterUpdate()
      Me.Refresh
    End Sub
    Fichiers attachés Fichiers attachés
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  13. #13
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Merci beaucoup, je regarde ça attentivement.
    Christophe

    Pensez à mettre quand c'est le cas.

  14. #14
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Merci beaucoup Claude, ça marche parfaitement et j'ai pu l'adapter à mes spécificités (MySQL et possibilité de charger une action existante).
    Il n'y a qu'une chose que je n'arrive pas à faire : mettre "Non" par défaut dans la liste déroulante des prérequis. Quand je mets "Non" dans "Valeur par défaut" des propriétés de la liste, tous les champs sont remplis par "#supprimés" et un F5 permet de les avoir correctement, de plus quand je veux changer la valeur de la liste il y a un message me disant que ce n'est pas possible, car elle a déjà été modifiée.
    Christophe

    Pensez à mettre quand c'est le cas.

  15. #15
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Il n'y a qu'une chose que je n'arrive pas à faire : mettre "Non" par défaut dans la liste déroulante des prérequis.

    Bizarre !

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  16. #16
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    C'est bien ce que j'ai essayé, mais le problème doit venir d'ailleurs car même sans la valeur par défaut je n'arrive pas à modifier le contenu de la liste. A la première tentative elle reste vide et à la deuxième Access me dit qu'un autre utilisateur l'a modifiée (et il passe en debug).
    Christophe

    Pensez à mettre quand c'est le cas.

  17. #17
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Sans voir le détail, je ne sais pas t'aider.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  18. #18
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    J'ai dû faire une bêtise quelque part, j'y replongerai lundi (avec un nouveau sujet si je n'ai pas trouvé).
    Encore merci pour ta patience et la qualité de tes réponses.
    Christophe

    Pensez à mettre quand c'est le cas.

  19. #19
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Bêtise à supprimer.
    Christophe

    Pensez à mettre quand c'est le cas.

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

Discussions similaires

  1. Ajout dynamique de champ
    Par eric41 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/03/2009, 13h22
  2. [DOM] Ajouter dynamiquement des champs inputs
    Par bobic dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/05/2008, 13h10
  3. Upload multiple avec ajout dynamique des champs
    Par Invité dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 25/02/2008, 14h09
  4. Ajout dynamique de champ dans un formulaire
    Par gendalf37400 dans le forum Ruby on Rails
    Réponses: 5
    Dernier message: 06/06/2007, 15h11
  5. Ajout dynamique de champs de type file dans un formulaire !
    Par stitch dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/11/2005, 11h18

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