|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Étudiant Inscription : août 2011 Messages : 38 ![]() |
Bonjour,
Je débute en Access et je me demande si j'ai oublié un truc dans mon code ou si je prends carrement le problème par le mauvais bout. Je souhaiterais remplir une textbox en fonction d'une listbox multicritères. Le but : si plusieurs choix de la listbox sont cochés alors une suite de textes (renvoi à la ligne entre chaque) se met en place. J'ai créé une table avec un champ listbox : value list : "jobA";"jobB";"JobC", pas de problème. Ainsi qu'un champ TextBox défini en mémo. Ce que j'ai fais jusqu'ici dans le formulaire (à part mettre en place la textbox et la listbox/multiselect:simple) : Code :
- les textes ne se cumulent pas (seul "blablajobA" ou "blablajobB" etc apparaisse dans TxtBox mais jamais 'blablajobA blablajobB") - pas d'idée pour le renvoi à la ligne - autre gros problème, le texte s'affiche quand je sélectionne un choix de listbox et pas uniquement quand le choix de la liste box est coché.... (J'ai mis du temps à trouver listindex mais à priori, ça n'est pas encore ça. Quand j'utilisais Select case Listjob.value ou juste Select Case Listjob, on me retournais une erreur 13: type mismatch). Merci d'avance pour votre aide. Edit : à priori si les textes ne se cumule pas, c'est dû au positionnement de mon Me.TxtBox.Value = "". Sauf que sans, les textes se répètent indéfiniment si on clique plusieurs fois sur le même choix. JE pense que je devrais parcourir mes choix avec une autre fonction que listindex. Une fonction qui vérifie que les cases sont cochées ou pas. Vous en connaitriez une par hasard? |
||
|
|
00
|
|
|
#2 | ||
|
Membre confirmé
![]() Chercheur Inscription : juin 2011 Messages : 150 ![]() |
Bonjour,
Si j'ai bien compris, essayez le code suivant : Code :
|
||
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Étudiant Inscription : août 2011 Messages : 38 ![]() |
Merci pour ton aide.
J'ai essayé ton code. Il faut échanger Chr(10) par Chr(13)+Chr(10) pour que le saut de ligne marche. Sinon ça marche (presque) Presque car ^^' le texte qui doit être utilisé pour jobA est complètement différent de celui pour job B etc. ex : Job A --> "pogcxcvklmoi" Job B -->"sdfghesdtfy" etc. or dans cet exemple, on ne peux utiliser qu'un seul texte et tu mets en indice le titre des choix dans la listbo (si j'ai bien compris).... Voici un exemple peut être plus parlant de ce que je cherche à obtenir: Listbox : choix1, choix2, choix3 Ce qui doit apparaitre dans la textbox pour chaque choix coché: choix1 --> "Développez.com +1" choix2 --> "Mange des bananes" choix3 --> "Tiens il fait beau!" Si Choix 2 et 3 sont cochés en même temps (cochés, pas sélectionnés) : alors on devrait lire dans la textbox : "Mange des bananes Tiens il fait beau!" Une idée sur la méthode? D'après ce que j'ai compris de ton code, je dois passer par une boucle. Mais par contre je ne vois/sais pas comment attribuer une directive spécifique à chaque choix au sein de la boucle. |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : mars 2009 Messages : 86 ![]() |
Bonjour
Si tu remets ta zone de texte à vide avec cette ligne c'est un peu normal.
__________________
PeyePo |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Étudiant Inscription : août 2011 Messages : 38 ![]() |
ouaip mais sans cette ligne, si je clique à répétitiion sur un même choix, le texte apparait à répétition dans la textbox....
|
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Inscription : mars 2009 Messages : 86 ![]() |
Bonjour
Alors fait un test avec l'instruction instr pour voir si ta chaîne a déjà été utilisée, sinon tu ajoutes.
__________________
PeyePo |
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Étudiant Inscription : août 2011 Messages : 38 ![]() |
Bonjour
ça pourrait marcher mais ça ne réponds pas à un des problèmes principaux. "uniquement quand la case est cochée et non quand elle est sélectionnée" et je ne vois pas vraiment comment avec instr, si je décoche la case, le texte disparait. Je vais quand même essayer. |
|
|
00
|
|
|
#8 |
|
Membre confirmé
![]() Chercheur Inscription : juin 2011 Messages : 150 ![]() |
Bonjour,
Désolé, je suis sous Access 2000 et à ma connaissance on ne peux que sélectionner et pas cocher les lignes ... Par contre as tu essayé de remplir ta value list avec : Code :
"jobA";"textjobA";"JobB";"textjobB";"JobC";"textjobC" Bcdt |
|
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Étudiant Inscription : août 2011 Messages : 38 ![]() |
Bonjour,
Désolé pour l'absence. Comme dis précédement, je débute ... Merci à vous deux pour l'aide apportée @Peyepo : J'ai essayé, mais si je "décoche", le texte ne se retire pas..... @fbtsra : J'ai créé une liste à 2 colonnes et fais correspondre les textes. Par contre je ne vois pas comment appeler le texte de la colonne 2 dans ma textbox. Et à priori il restera toujours le problème du "présent uniquement si c'est coché".... Edit: @fbtsra : je suis entrain de lire ce que msdn dis à propos d'itemsselected, bondcolumn etc. Je vais voir si je peux m'en sortir avec ces 2 notions, même si là de suite j'ai pas de solutions. |
|
|
00
|
|
|
#10 | ||
|
Futur Membre du Club
![]() Étudiant Inscription : août 2011 Messages : 38 ![]() |
Bonjour,
Je bloque toujours. Voici certaines de mes dernières tentatives: - L'idée d'une liste à 2 colonnes, mais par contre je n'arrive pas à appeler dans ma textbox les valeurs de la colonne numéro 2.... - Autre idée : attribuer un indice à une variable text et de définir chaque text(indice) = "texte souhaité". Par contre je reçois error 9 : subscript out of range. Je pense que j'ai mal rédigé mon code, mais après plusieurs tentatives, ça ne marche toujours pas... Code :
Auriez-vous, s'il vous plait, une solution? Merci d'avance David |
||
|
|
00
|
|
|
#11 | |
|
Membre confirmé
![]() Chercheur Inscription : juin 2011 Messages : 150 ![]() |
Bonjour,
Citation:
PAr contre n'ayant pas A2010 je ne sais pas comment faire référence aux cases à cocher dans la listbox ... Bcdt |
|
|
|
10
|
|
|
#12 |
|
Futur Membre du Club
![]() Étudiant Inscription : août 2011 Messages : 38 ![]() |
Bonjour,
ok j'avais mal lu/pas compris ton post précédent. Bon j'ai fouillé dans cette voie. Et ça ne marchait pas .... J'ai modifié column bound dans la partie formulaire et/ou tables, de toutes les manières possibles sans grand résultat. Une fois ça a marché partiellement. Je ne sais pas vraiment pourquoi mais si je paramètre la colonne liée (columnbound) via les options de la table et du formulaire, ça ne marchait pas. Access continuait à m'afficher la colonne 1... Donc après multiples essais, j'ai tenté ceci : Code :
sel = sel & Me![Listjob].Column(2, varList) & Chr(13) + Chr(10) Et à priori bien Merci beaucoup pour l'aide. David |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com