is the table in your first post the result that you want?
Create a table Hie_emp to hold the result:
Hie_emp
EMPLOYEE_ID number, LAST_NAME text, MANAGER_ID number, LEVEL number, ID autonumber
put following code in a module, run the sub Hierarchical, check table Hie_emp for the result (order by ID)
Code:
Public Sub Hierarchical()
Dim root As Long
root = DFirst("employee_ID", "employees", "manager_id=100")
If root = Null Then Exit Sub
'add a root node
CurrentDb.Execute "delete * from hie_emp"
CurrentDb.Execute "insert into Hie_emp (employee_id,last_name,Manager_id,[Level]) select employee_id,last_name,Manager_id,1 from employees where employee_id=" & root
CreateTree root, 1
End Sub
Private Sub CreateTree(PID As Long, level As Long)
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT * FROM employees where manager_id=" & PID & " ORDER BY employee_id")
Do While Not rst.EOF
'adding a node for every one
CurrentDb.Execute "insert into Hie_emp (employee_id,last_name,Manager_id,[Level]) values ( '" & rst!employee_id & "','" & rst!last_name & "'," & rst!Manager_id & "," & (level + 1) & ")"
CreateTree rst!employee_id, level + 1
rst.MoveNext
Loop 'while not .eof
rst.Close 'rst
End Sub