Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/11/2010, 20h30   #1
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 57
Points : 19
Points : 19
Par défaut Comment récupérer 2 valeurs à partir d'un même choix dans liste déroulante ayant plusieurs colonnes

Bonjour à tous,

D'abord le contexte :
1 - J'ai une table (1) pour des types de véhicules avec les champs suivants : T1_ID, T1_Code et T1_Libellé

2 - J'ai une table (n) pour des véhicules, liée à la table T1 par le champ T1_ID avec les champs suivants : Tn_ID, T1_ID, Tn_Nom, Tn_...

3 - Dans un formulaire de saisie de la table Tn je souhaite que lorsque l'utilisateur crée un nouvel enregistrement pour ajouter un véhicule, il puisse indiquer dans un champ avec une liste déroulante, le type de véhicule et ainsi le visualiser. J'ai donc défini une requête pour ma liste déroulante "LstType" qui me ramène les champs T1_ID, T1_Code et T1_Libellé depuis la table T1 sachant que seuls les champs T1_Code et T1_Libellé sont visibles lorsque la liste s'affiche.

4 - Dans le formulaire de saisie pour Tn, j'ai donc un champ basé sur T1_Code auquel est affecté la liste déroulante "LstType" pour récupérer et visualiser le code du type de véhicule correspondant au véhicule créé.

Mon problème :
Lors de la saisie du champ T1_Code, je sais donc récupérer la valeur choisie dans la liste LstType et l'affecter à T1_Code mais je souhaiterai récupérer aussi (en même temps) la valeur masquée (T1_ID) pour mettre automatiquement à jour le champ Tn.T1_ID avec celle-ci et ainsi établir le lien entre Tn et T1 pour le nouvel enregistrement.

Comment faire cela ? car là je ne sais pas faire et je tourne en rond, si quelqu'un a une solution à me proposer il sera le bienvenu.

En espérant avoir été clair, Merci d'avance de votre aide.
Cordialement
oracle7556
oracle7556 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2010, 20h59   #2
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Bonsoir,

Avec NomDeLaListe.Column(0) on récupère l'info de la colonne 1 de la liste.

La colonne 1 ayant l'index 0 la deux l'index 1 etc.
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 19h29   #3
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 57
Points : 19
Points : 19
Bonsoir rjamin

Désolé, tu n'as pas bien compris mon besoin.

Avec ce que tu me propose, effectivement on récupère bien la colonne 1 qui est dans mon cas masquée et la colonne 2 le code sélectionné mais en 2 instructions différentes si je te comprends bien.
En tous cas, cela ne me dit pas comment récupérer en même temps 2 valeurs d'une ligne sélectionnée dans cette liste dans 2 champs différents : un qui est affiché (T1_Code) et l'autre (qui s'il pouvait être invisible ce serait bien) qui est Tn.T1_ID.
Merci tout de même de ta réponse.

Autrement dit ce que je souhaite --> lors du choix d'une ligne dans la liste déroulante qui apparait après un clic sur le champ Tn.T1_Code de mon formulaire "FormTn" basé sur la table Tn, c'est récupérer à la fois :
- la valeur de la colonne 2 (Code) de la liste LstType dans le champ support de la liste soit T1.T1_Code placé par exemple en entête de mon formulaire "FormTn".
ET
- la valeur de la colonne 1 (ID) de la liste LstType dans un autre champ qui serait en l'occurence Tn.T1_ID mais lui si possible non visible dans le formulaire "FormTn".
Au final l'objectif est voir d'une part le type de véhicule associé au véhicule en cours de création et d'autre part mettre à jour automatiquement de façon transparente pour l'utilisateur, le lien entre les tables Tn et T1. Tout ceci en UNE SEULE action : le choix d'une ligne dans la liste déroulante apparaissant lors de l'entrée du curseur dans le champ T1_Code placé en entête du formulaire.

Cela ne me parait pas compliqué en soit mais je ne sais pas l'implémenter d'où mon appel à l'aide ici.

Cordialement
oracle7556
oracle7556 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 14h41   #4
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Bonjour,

Un petit exemple qui remplit deux champs d'un formulaire à partir de la sélection d'une ligne dans un champ du formulaire qui est une zone de liste.
Sur l'évènement Réeception du focus du 1er champ à remplir j'ai mis la prcédure suivante

Code :
1
2
3
4
5
6
7
Private Sub ID_Produit_GotFocus()
'Pour copier le code du produit, dans le Champ ID_Produit à partir du champ ID_Tarif qui est une zone de liste, à la réception du focus.
'La colonne 1 pour le code produit
'Lacolonne 2 pour le code founisseur
    Me!ID_Produit = Me!ID_Tarif.Column(1)
    Me!ID_Fourn = Me!ID_Tarif.Column(2)
End Sub
Le deux champs ID_Produit et ID_Fourn se remplissent en même temps avec les données de la zone de liste sur les quelles on a cliqué.
J'espère que cela pourra vous aider.
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 21h31   #5
Futur Membre du Club
 
Inscription : juillet 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 57
Points : 19
Points : 19
Bonsoir rjamin

ENORME MERCI
, c'est exactement cela qu'il me fallait !

Super je vais pouvoir maintenant sur ce principe avancer bien plus vite dans mon développement.

Je considère le post comme résolu.

A bientôt et Encore Merci !
Cordialement
oracle7556
oracle7556 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h12.


 
 
 
 
Partenaires

Hébergement Web