Recuperer champ correspondant item coché d'un treeview [Résolu]

fixou81 200 Messages postés lundi 9 mai 2005Date d'inscription 12 juin 2007 Dernière intervention - 2 mai 2007 à 09:36 - Dernière réponse : fixou81 200 Messages postés lundi 9 mai 2005Date d'inscription 12 juin 2007 Dernière intervention
- 2 mai 2007 à 11:04
bonjour a tous,

je suis sous access.
voila j'ai une table avec les champs Numdoc (Numero auto), Nomdoc, chemindoc, descriptiondoc, docpere.
Sur mon formulaire j'affiche un treeview contenant les données Nomdoc (descriptiondoc) . Jusque là tous va bien. C'est un treeview avec des cases à cocher.
Je souhaite lorsque je parcours mon treeview recuperer chemindoc correspondant a l'item coché. Je m'explique :
Si dans ma table j'ai par exemple sur la meme ligne Nomdoc = Document 1, Chemindoc=C:\...\doc1, descriptiondoc=en position debout. Si le node coché correspond  a cette ligne alors je veux recuperer le chemindoc correspondant (afin d'ouvrir le document correspondant au node coché).
voila un bout de code que j'ai :
 For Each Nd In oT.Nodes
             If Nd.Checked Then
       'je fais une requete pour recuperer chemindoc'       Chemin "SELECT chemindoc FROM tbldoc WHERE  <gras>Nomdoc(Descriptiondoc)" Nd.Text</gras>  C'est cette partie en gras qui me pose probleme..
       Cree_Document_Dos 'c'est dans cette partie que j'utilise le document correspondant'
...
voila donc je ne vois pas comment utiliser le nd.checked pour utiliser des infos de ma base. Je suppose qu'il faut que j'utilise le nom du node..


merci a tous en tout cas
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 2 mai 2007 à 10:00
3
Merci
Re,
Dim CheminCol As New Collection

'Rempli la collection dans ta boucle ou tu rempli le treeview
Call CheminCol.Add(.Fields(1).Value, .Fields(1).Value & " (" & .Fields(3).Value & ")")

'Ensuite si ton node est formater juste de cette facon NomDoc(Description)
'je pense que si tu mets un truc du style de ce qui suit dans ta boucle
'au lieu de faire une requete ca devrait le faire
Dim CheminDoc As String
CheminDoc = CheminCol(Nd.Text), ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée

Merci jrivet 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de jrivet
Meilleure réponse
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 2 mai 2007 à 10:00
3
Merci
Re,
PEtit correctif c'est

'Rempli la collection dans ta boucle ou tu rempli le treeview
Call CheminCol.Add(.Fields(2).Value, .Fields(1).Value & " (" & .Fields(3).Value & ")")
@+: Ju£i?n
Pensez: Réponse acceptée

Merci jrivet 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de jrivet
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 2 mai 2007 à 09:40
0
Merci
Salut,
Ca représente quoi ca dans ta base Nomdoc(Descriptiondoc) car je ne connais pas ceci en SQL

@+: Ju£i?n
Pensez: Réponse acceptée
Commenter la réponse de jrivet
fixou81 200 Messages postés lundi 9 mai 2005Date d'inscription 12 juin 2007 Dernière intervention - 2 mai 2007 à 09:44
0
Merci
Nom c'est juste pour dire comment sont affichées les infos sur mon treevew. Mon treeview affiche le nom du document puis entre parenthese sa description. Bien sur le code n'est pas comme cela. Le code est
strLibelle = .Fields(1).Value & " (" & .Fields(3).Value & ")"
C'etait juste pour expliquer comment st l'affichage du treeview
Commenter la réponse de fixou81
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 2 mai 2007 à 09:48
0
Merci
Salut,
Et pourquoi ne pas récupérer le chemin de tes documents, lorsque tu rempli ton treeview. tu les stocke en parallèle dans une collection en les indexant par nom (ou adresse de node) et tu n'as plus besoin de refaire une requete pour aller les chercher.

@+: Ju£i?n
Pensez: Réponse acceptée
Commenter la réponse de jrivet
fixou81 200 Messages postés lundi 9 mai 2005Date d'inscription 12 juin 2007 Dernière intervention - 2 mai 2007 à 09:53
0
Merci
ah je comprend a peu pres ce que tu veux dire mais je ne sais pas bien ce qu'est une collection...et je ne vois aps comment stocker en parallele.
Je vais essayer de comprendre et je reecrirai a la suite s'il y a qqchose. Merci en tout cas.
Je comprend bien que c'est une solution mais je ne connais pas bien ce que tu m'as indiqué.
Commenter la réponse de fixou81
fixou81 200 Messages postés lundi 9 mai 2005Date d'inscription 12 juin 2007 Dernière intervention - 2 mai 2007 à 10:36
0
Merci
Merci beaucoup Jrivet ca marche tres bien, c'est super.
Par contre j'essaye de comprendre comment ca marche ces collections et ce petit bout de code que tu m'as donné.


surtout au niveau de
Call CheminCol.Add("" & .Fields(2).Value, "" & .Fields(1).Value & " (" & .Fields(3).Value & ")")
et de
CheminDoc = CheminCol(Nd.Text)
je comprend pas pourquoi ca me donne que chemindoc dans la variable alors que chemincol a plusieurs champs...
enfin en tout cas merci beaucoup je vais me pencher sur ces collections car cela a l'air tres utile!
Commenter la réponse de fixou81
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 2 mai 2007 à 10:44
0
Merci
Salut,
Si tu regardes de plus près la méthode Add de l'objet collection tu verras que le premier parametre est l'item à ajouter et le second est la clé associée a cette item.
Donc dans notre exemple
"" & .Fields(2).Value est l'item (donc le chemin)

et la clé (l'index) pour retourner cette item est "" & .Fields(1).Value & " (" & .Fields(3).Value & ")"

Et donc lorsque tu récupère le chemin
Tu récupère l'item de la collection correspondant à la clé Nd.text (qui n'est rien d'autre que "" & .Fields(1).Value & " (" & .Fields(3).Value & ")"
En revanche pourquoi mets tu ceci devant tes champs  "" &  c'est inutile

@+: Ju£i?n
Pensez: Réponse acceptée
Commenter la réponse de jrivet
fixou81 200 Messages postés lundi 9 mai 2005Date d'inscription 12 juin 2007 Dernière intervention - 2 mai 2007 à 11:04
0
Merci
j'avais mis "" car j'avais une erreur de
synthaxe mais en fait non ...
ok alors je comprend mieux j'avais pas bien compris ces histoires de clé...
Merci beaucoup du temps que tu mas accordé.
Commenter la réponse de fixou81

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.