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 05/10/2011, 17h08   #1
Candidat au titre de Membre du Club
 
Homme alain
Inscription : juillet 2011
Messages : 32
Détails du profil
Informations personnelles :
Nom : Homme alain
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2011
Messages : 32
Points : 10
Points : 10
Par défaut liste deroulante avec plusieurs colonnes

Bonjour,

J'ai fait une liste déroulante avec 3 colonnes issues d'une même table.
1er colonne "index", 2emme colonne "nom", 3eme colonne "date"


Je voudrai faire afficher juste le nom et la date, mais je souhaiterai récupérer l'index pour ensuite récupérer toutes les données de cet enregistrement.
avec la propriété colonne liée à 1 (sur le champs index) je récupère la valeur avec la métode "Value", mais alors je n'ai que l'index qui s'affiche lorsque je fais une sélection???

Je pense que ce n'est pas la bonne méthode!!!!!
alain136 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 17h48   #2
Membre émérite
 
Conseil + Formation
Inscription : février 2010
Messages : 584
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Conseil + Formation

Informations forums :
Inscription : février 2010
Messages : 584
Points : 886
Points : 886
Bonjour

La présence de plusieurs colonne dans la liste permet de sélectionner plus facilement la bonne valeur mais dans un formulaire le champ associé ne renvoie que sa valeur obtenu grâce à la colonne liée.
Soit tu ajoutes un champ pour afficher (en tant que champ indépendant les 2 autres infos) soit c'est ta liste déroulante qui est un champ indépendant et tu valorise le vrai champ (qui eut être non visible) par un code vba déclenché sur l'événement de changement de la liste.
78chris est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 20h52   #3
Candidat au titre de Membre du Club
 
Homme alain
Inscription : juillet 2011
Messages : 32
Détails du profil
Informations personnelles :
Nom : Homme alain
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2011
Messages : 32
Points : 10
Points : 10
Alors voila ce que j'ai fait, mais cela me pose des questions...

Code :
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
Dim oDb As DAO.Database
Dim oRst As DAO.Recordset
Dim intIndex As Integer
'je récupère l'index de l'enregistrement sélectionné dans ma liste déroulante
intIndex = CInt(Modifiable38.Value)
'j'ouvre une base et un objet recordset
Set oDb = CurrentDb
Set oRst = oDb.OpenRecordset("Stage", dbOpenDynaset)
    oRst.MoveLast
    oRst.MoveFirst
 
 'je me déplace jusqu'a l'enregistrement
 oRst.AbsolutePosition = intIndex - 1
 
    'test de la structure
    champ1 = oRst.Fields(0)
    champ2 = oRst.Fields(1)
    champ3 = oRst.Fields(2)
    champ4 = oRst.Fields(3)
 
'j'affiche mes données
   Texte40.Value = champ2
   Texte44.Value = champ3
 
 'fermeture de ma base et du recordset
   oRst.Close
   oDb.Close
Donc je récupère mon index et je me déplace jusqu'a cet enregistrement..mais si je supprime un enregistrement le N°index (qui est incrémenter automatiquement) n'éxistera plus et donc mon 4eme(par exemple) enregistrement n'aura plus l'index N°4.....Est-ce que j'ai utilisé la bonne méthode????
sinon comment je gére mes déplacements jusqu'au bon enregistrement?(en faisant un test sur la valeur du champ? ce n'est pas un peu lent???)
alain136 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 00h29   #4
Membre émérite
 
Conseil + Formation
Inscription : février 2010
Messages : 584
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Conseil + Formation

Informations forums :
Inscription : février 2010
Messages : 584
Points : 886
Points : 886
Bonjour

Une solution sans vba

si ta liste s'appelle choix (donne des noms autre que modifiable23) tape la formule suivante dans ton champ indépendant : Sinon en VBA travailler par une requête avec un where ID= la valeur sélectionnée dans la liste
78chris est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 09h11   #5
Candidat au titre de Membre du Club
 
Homme alain
Inscription : juillet 2011
Messages : 32
Détails du profil
Informations personnelles :
Nom : Homme alain
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2011
Messages : 32
Points : 10
Points : 10
bonjour 78Chris,

c'est super cela fonctionne... c'est exactement ce que je n'avais pas compris

Il me reste un questionnement sur la navigation dans ma table.
je veux utiliser ma clé primaire, quelle est la meilleur fonctin pour le faire?
alain136 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 14h55   #6
Membre éclairé
 
Homme Pierre-Jean
Développeur informatique
Inscription : février 2010
Messages : 306
Détails du profil
Informations personnelles :
Nom : Homme Pierre-Jean
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 306
Points : 330
Points : 330
Envoyer un message via MSN à paidge
Bonjour,

J'ai eu du mal à essayer de comprendre ce que tu veux faire. Mais si j'ai bien compris, voilà ce que je ferais :
Code :
1
2
3
4
5
6
7
8
9
Private Sub MaListe_AfterUpdate()
Dim rst As Recordset
 
Set rst = CurrentDb.OpenRecordset("SELECT * FROM MaTable")
rst.FindFirst "monChampClePrimaire=" & Me.MaListe.Value
MsgBox rst("monChamp")
 
Set rst = Nothing
End Sub
__________________
L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!
paidge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2011, 15h30   #7
Membre du Club
 
Inscription : août 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 340
Points : 62
Points : 62
Hello Alain136,

J'ai le même problème avec ma liste déroulante. Le code tu l'as placé à quel endroit.
kitty2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 14h46   #8
Candidat au titre de Membre du Club
 
Homme alain
Inscription : juillet 2011
Messages : 32
Détails du profil
Informations personnelles :
Nom : Homme alain
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2011
Messages : 32
Points : 10
Points : 10
Citation:
Envoyé par kitty2006 Voir le message
Hello Alain136,

J'ai le même problème avec ma liste déroulante. Le code tu l'as placé à quel endroit.
comme j'avais 2 pb je ne suis pas sur de savoir de quoi tu parles.
mais situ veux utiliser facilement les liste multiples pour afficher des données.

sur mon formuliare j'ai créer une liste avec les 3 colonnes.
sur le même forulaire j'ai placé 2 zones de texte(par exemple)
et directement dans la zone de texte(en mode création) le code
losrque tu changes ton choix dans la liste directement la zone de texte est mise à jour.
voila.
alain136 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2011, 15h19   #9
Membre du Club
 
Inscription : août 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 340
Points : 62
Points : 62
Bonjour,

cool merci, ça fonctionne correctement.

Bonne journée
kitty2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 20h06   #10
Candidat au titre de Membre du Club
 
Homme alain
Inscription : juillet 2011
Messages : 32
Détails du profil
Informations personnelles :
Nom : Homme alain
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : juillet 2011
Messages : 32
Points : 10
Points : 10
je suis trop content c'est la première fois depuis que je suis sur le forum que je peux aider qq un et pas seulement profiter des supers bons conseils des experts...

j'ai au moins appris quelque chose grace au forum, merci, merci merci
alain136 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 21h16.


 
 
 
 
Partenaires

Hébergement Web