Recuperer champ correspondant item coché d'un treeview

Résolu
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007 - 2 mai 2007 à 09:36
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007 - 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

9 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
2 mai 2007 à 10:00
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
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
2 mai 2007 à 10:00
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
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
2 mai 2007 à 09:40
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
0
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007
2 mai 2007 à 09:44
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
2 mai 2007 à 09:48
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
0
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007
2 mai 2007 à 09:53
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é.
0
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007
2 mai 2007 à 10:36
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!
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
2 mai 2007 à 10:44
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
0
fixou81 Messages postés 200 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 12 juin 2007
2 mai 2007 à 11:04
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é.
0
Rejoignez-nous