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 :

Liste déroulante pour affecter tous les champs d'un formulaire [AC-2016]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 18
    Points : 11
    Points
    11
    Par défaut Liste déroulante pour affecter tous les champs d'un formulaire
    Bonjour à tous !

    Ceci est mon premier topic sur ce forum

    J'ai un formulaire Bon de travail qui est imprimé à l'accueil dans la régie municipale d'électricité dans laquelle je bosse, lorsque quelqu'un se plaint d'un problème sur l'éclairage public.

    Dans ma table EP, chaque enregistrement correspond à une seule rue et contient des infos sur l'éclairage public de cette rue.

    Dans mon formulaire, j'ai créé une liste déroulante (Nom des rues), seulement j'aimerais que lorsqu'on sélectionne une rue dans la liste, l'intégralité des champs du formulaire affichent les infos de cette rue

    A noter que le numéro de rue, la date et le nombre de signalements ne sont pas stockés dans la base et sont remplis manuellement avant impression

    Suis-je obligé d'utiliser du VBA sur chaque champ ( https://www.bonbache.fr/lier-entre-e...access-42.html ) ?

    Merci à ceux qui prendront le temps de m'aider,
    Cordialement,
    Waryard
    Images attachées Images attachées   

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bonjour,
    la solution avec VBA :
    1) dans la propriété Contenu de la liste déroulante mettre les champs de la requête ou la table qui serviront pour le remplissage des zones de texte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select champ1, champ2, champ3 champ4 from TableouRequete;
    2) sur l'évènement Click ou AfterUpdate de la liste déroulante alimenter les champs indépendants avec le contenu des colonnes sachant que l'index démarre de 0:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Me.Texte1 = Me.ListeDeroulante.column(0)
    Me.Texte2 = Me.ListeDeroulante.column(1)
    Me.Texte3 = Me.ListeDeroulante.column(2)
    Me.Texte4 = Me.ListeDeroulante.column(3)
    la solution sans VBA :
    1) comme pour le 1 de la solution avec VBA
    2) dans la propriété Source contrôle de chaque zone de texte à alimenter mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[ListeDeroulante].[column](x)
    x étant un n° de colonne d'index de la liste déroulante. Attention car en création de formulaire, Access ne reconnait pas cette propriété (elle n'est pas proposée avec IntelliSense)
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Bonjour !

    Merci pour votre aide,
    Je viens de faire les modifications, cependant j'obtiens "#Nom*?" dans le champ Nombre (qui devrait afficher le nombre de lampes présentes dans la rue sélectionnée dans la liste)

    J'ai mis "=[ListeRue].[column]([0])" dans "Source contrôle" du champ Nombre, et "SELECT [Caractéristiques luminaires].IdRue, [Caractéristiques luminaires].[Nom Rue], [Caractéristiques luminaires].Nb FROM [Caractéristiques luminaires]; " dans "Contenu" de la liste déroulante contenant les noms de rues
    J'ai également essayé en VBA avec "Me.Nb = Me.ListeRue.column(0)" dans certains évènements de la liste déroulante des rues ("Microsoft Access ne peut pas trouver l'objet "Me" ")

    Bonne journée,
    Cordialement,
    Waryard

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bonjour Waryard,

    il faut mettre [ListeRue].[column](0) pas [ListeRue].[column]([0]) et tu auras la valeur IdRue dans Nombre car c'est le premier champ donc l'index 0: c'est ce que tu souhaites ?
    "SELECT [Caractéristiques luminaires].IdRue, [Caractéristiques luminaires].[Nom Rue], [Caractéristiques luminaires].Nb FROM [Caractéristiques luminaires]; "
    Attention: il ne faut pas mettre de guillemets(") en début et en fin dans Contenu. J'ai oublié de préciser qu'il faut changer le nombre de colonnes (propriété: Nbre colonnes) et la largeur de chaque colonne séparé par un point-virgule (propriété: Largeurs colonnes, mettre 0 pour rendre invisible chaque colonne à masquer).
    J'ai également essayé en VBA avec "Me.Nb = Me.ListeRue.column(0)" dans certains évènements de la liste déroulante des rues ("Microsoft Access ne peut pas trouver l'objet "Me" ")
    Lesquels ? En général, les évènements utilisés pour cela sont Click ou AfterUpdate.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Pour les évènements, n'ayant pas "AfterUpdate" dans Evenements, j'avais mis "Au clic", "Si modification" ainsi que "Après MAJ"

    Concernant la solution sans VBA, c'est une mauvaise habitude que j'ai acquis de mettre des guillemets lorsque je cite ou inclus du code sur un forum, il n'étaient pas présents dans Access

    Le problème venait essentiellement des [], avec =[ListeRue].[column](2) cela marche parfaitement, merci beaucoup pour votre aide

    Bonne journée,
    Cordialement,
    Waryard

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bonjour,
    Concernant la solution sans VBA, c'est une mauvaise habitude que j'ai acquis de mettre des guillemets lorsque je cite ou inclus du code sur un forum
    sur ce forum, on utilise la balise de code du menu message, icône : #

    Pour les évènements, n'ayant pas "AfterUpdate" dans Evenements, j'avais mis "Au clic", "Si modification" ainsi que "Après MAJ"
    AfterUpdate, c'est Après MAJ en anglais et il ne faut pas mettre le code dans tous les évènements, sur un des deux (Au Clic ou Après MAJ) seulement
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

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

Discussions similaires

  1. [AC-2013] Critère pour récupérer tous les champs si paramètre vide
    Par ZeloteHio dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 04/07/2013, 10h33
  2. Réponses: 2
    Dernier message: 03/11/2010, 16h18
  3. Réponses: 6
    Dernier message: 22/03/2010, 00h21
  4. Réponses: 1
    Dernier message: 06/08/2008, 18h31
  5. Obtenir tous les champs d'un formulaire
    Par killprog dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 20/03/2006, 13h15

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