Bonjour le forum,

j'ai récupéré un treeview dont le code est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Sub Charger()
  '    On Error GoTo Err_Charger
      Dim NodCurrent As Node
      Dim StrText As String
      Dim NodRoot As Node
      Dim Bk As String
      Set Db = CurrentDb
      Set Rs = Db.OpenRecordset("Menus", dbOpenDynaset, dbReadOnly)
      Set Menu = Me.Xtree.Object
      Menu.Nodes.Clear
      Rs.FindFirst "Menu_Parent Is Null Or Menu_Parent = 0"  ' Cherche le premier pere
      Do Until Rs.NoMatch
         StrText = Rs!Menu_Libelle
         Set NodCurrent = Menu.Nodes.Add(, , "a" & Rs!ID_Menu, StrText) ' Ajoute une branche père
         Bk = Rs.Bookmark     ' mémorise la place
         AddChildren NodCurrent, Rs   ' Lance une proc recursive pour trouver les fils
         Rs.Bookmark = Bk        ' Retourne à sa place
         Rs.FindNext "Menu_Parent Is Null Or Menu_Parent = 0"  ' suite de la recherche
      Loop
      Menu.Sorted = True
    Bulle "Sélectionnez votre formulaire ou votre état.", "cliquez sur :", "+ pour étendre", "- pour réduire"
Exit_Charger:
    Exit Sub
Err_Charger:
    Bulle "Chargement rubrique", "Erreur chargement", Rs("Menu_Libelle"), ""
    Resume Exit_Charger
End Sub
 
Sub AddChildren(nodBoss As Node, Rst As DAO.Recordset)
      On Error GoTo ErrAddChildren
      Dim NodCurrent As Node
      Dim objTree As TreeView, StrText As String, Bk As String
      Dim HeyBoss
      Set objTree = Me!Xtree.Object
      ' ** Cherche le premier fils, le No est dans la clé du boss
      Rst.FindFirst "Menu_Parent =" & Mid(nodBoss.Key, 2)
      Do Until Rst.NoMatch
         StrText = Rst("Menu_Libelle")
         ' Ajoute le premier fils
         Set NodCurrent = objTree.Nodes.Add(nodBoss, tvwChild, "a" & Rst("ID_Menu"), StrText)
         Bk = Rst.Bookmark
         ' on vérifie si ce fils est lui méme pére
         AddChildren NodCurrent, Rst
         Rst.Bookmark = Bk
         Rst.FindNext "Menu_Parent=" & Mid(nodBoss.Key, 2)
      Loop
ExitAddChildren:
         Exit Sub
ErrAddChildren:
        Bulle "Chargement rubrique", "Erreur chargement", "", ""
         Resume ExitAddChildren
      End Sub
Je souhaite adapter ce code à une autre table.

Mon problème c'est que je ne comprends pas pourquoi le code n'est pas compatible avec des champs au format texte (en ce qui concerne les clés Péres et fils). Il n'accepte que le type numérique.

En espérant que ce soit plus clair pour vous.

Merci.