Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Treeview actif

2 réponses
Avatar
séb
Bonjour,

J'ai téléchargé l'exemple de treeview de Raymond, mais je n'arrive pas à
l'adapter à mon besoin...
Est il possible qu'un treeview soit dynamique dans un formulaire ? je
m'explique : j'ai trois niveaux dans ce treeview : Famille/sous
famille/produit
Une fois le produit entré dans ce même formulaire, il se "range" dans la
bonne famille/sous famille. Jusque la ça marche (presque) mais je suis
obligé de fermer et d'ouvrir le formulaire pour que le treeview se mette à
jour... Par ailleurs, j'ai besoin que ce treeview s'affiche en fonction d'un
parametre client, mais la ça ne fonctionne pas, il m'affiche toujours le
premier client de la table :-(. J'ai bien essayer de mettre ce parametre
dans le code VBA, mais il me fait tout planter.
Est ce que quelqu'un peu m'aider?

Merci

Sébastien

2 réponses

Avatar
Domi
Bonjour,

Au risque de dire une bêtise, je ne crois pas qu'il soit possible de
"rafraîchir" un treeview sans passer par une fonction.

Afin d'éviter de devoir fermer/ouvrir le formulaire, je le vide et je le
recharge. C'est très rapide.

La fonction pour le vider est la suivante :

Private Sub ViderTreeview()

Dim X As Integer

With Me.NomTreeview.Nodes
For X = .Count To 1 Step -1
.Remove X
Next X
End With

End Sub

Espérant que cela puisse t'aider.

Pour le paramètre du client, je ne comprend pas très bien. S'il s'agit de
faire un tri particulier, base ton treeview sur une requête plutôt que
directement sur la table.

Bonne journée.

Domi


Bonjour,

J'ai téléchargé l'exemple de treeview de Raymond, mais je n'arrive pas à
l'adapter à mon besoin...
Est il possible qu'un treeview soit dynamique dans un formulaire ? je
m'explique : j'ai trois niveaux dans ce treeview : Famille/sous
famille/produit
Une fois le produit entré dans ce même formulaire, il se "range" dans la
bonne famille/sous famille. Jusque la ça marche (presque) mais je suis
obligé de fermer et d'ouvrir le formulaire pour que le treeview se mette à
jour... Par ailleurs, j'ai besoin que ce treeview s'affiche en fonction d'un
parametre client, mais la ça ne fonctionne pas, il m'affiche toujours le
premier client de la table :-(. J'ai bien essayer de mettre ce parametre
dans le code VBA, mais il me fait tout planter.
Est ce que quelqu'un peu m'aider?

Merci

Sébastien





Avatar
séb
Bonjour,

Merci pour ton aide :-)
En faite mon treeview est basé sur une requête avec plusieurs tables.
J'aimerais qu'il s'affiche en fonction du réfclient qui est sur le forms
ouvert. Voici ma commande sql :
SELECT clients.Réfchantier, Articles.CodeArticle, Articles.Libellé, [Sous
famille].SousFamille, famille.Famille FROM (famille INNER JOIN [Sous
famille] ON famille.RéfFamille = [Sous famille].Réffamille) INNER JOIN
(Articles INNER JOIN (clients INNER JOIN [client article] ON
clients.Réfchantier = [client article].RéfChantier) ON Articles.RéfArticles
= [client article].RéfArticles) ON [Sous famille].RéfSousFamille Articles.RéfSousFamille
GROUP BY clients.Réfchantier, Articles.CodeArticle, Articles.Libellé, [Sous
famille].SousFamille, famille.Famille
HAVING (((clients.Réfchantier)=[forms]![clients]![réfchantier]));
La requête marche parfaitement normalement, mais que je le rentre dans le
code VBA, ça plante... voici mon code :

Private Sub Init_Menu()
On Error Resume Next
Set Db = CurrentDb
Set Menu = Me.TreeView
chantier = Forms!clients!Réfchantier
With Menu.Nodes

StrSql = "le sql"
Set Rs = Db.OpenRecordset(StrSql)
Rs.MoveFirst
Set NodX = .Add(, , "menu", chantier, 3, 4)
Do Until Rs.EOF
A = Rs.Fields("Famille")
B = Rs.Fields("Famille")
C = "menu"
Set NodX = .Add(C, tvwChild, A, B, 3, 4)
NodX.ForeColor = RGB(255, 0, 0)
Rs.MoveNext
Loop
Rs.Close
Set Rs = Nothing

Fin_sub:
Set Menu = Nothing
NodX.EnsureVisible
End With

End Sub

Merci de votre aide
Séb

"Domi" a écrit dans le message de news:

Bonjour,

Au risque de dire une bêtise, je ne crois pas qu'il soit possible de
"rafraîchir" un treeview sans passer par une fonction.

Afin d'éviter de devoir fermer/ouvrir le formulaire, je le vide et je le
recharge. C'est très rapide.

La fonction pour le vider est la suivante :

Private Sub ViderTreeview()

Dim X As Integer

With Me.NomTreeview.Nodes
For X = .Count To 1 Step -1
.Remove X
Next X
End With

End Sub

Espérant que cela puisse t'aider.

Pour le paramètre du client, je ne comprend pas très bien. S'il s'agit de
faire un tri particulier, base ton treeview sur une requête plutôt que
directement sur la table.

Bonne journée.

Domi


Bonjour,

J'ai téléchargé l'exemple de treeview de Raymond, mais je n'arrive pas à
l'adapter à mon besoin...
Est il possible qu'un treeview soit dynamique dans un formulaire ? je
m'explique : j'ai trois niveaux dans ce treeview : Famille/sous
famille/produit
Une fois le produit entré dans ce même formulaire, il se "range" dans la
bonne famille/sous famille. Jusque la ça marche (presque) mais je suis
obligé de fermer et d'ouvrir le formulaire pour que le treeview se mette
à


jour... Par ailleurs, j'ai besoin que ce treeview s'affiche en fonction
d'un


parametre client, mais la ça ne fonctionne pas, il m'affiche toujours le
premier client de la table :-(. J'ai bien essayer de mettre ce parametre
dans le code VBA, mais il me fait tout planter.
Est ce que quelqu'un peu m'aider?

Merci

Sébastien