Full Version: Security Levels in a Treeview
UtterAccess Discussion Forums > Microsoft® Access > Access Forms
alorenzini
Is there a way to control what is shown on a treeview based on a login? Example.

I login as John Doe who has a security level of 2 (user ) a security level of 1 would be (admin).

On my treeview I have a node called Administation which should only be displayed if the logged in user has security level 1 else the Administration node should be suppressed. Here is the partial code of my Treview:

objTree.Nodes.Add "A", tvwChild, "C1", "Administration", "frame", "crha"

objTree.Nodes.Add "C1", tvwChild, "C11", "About CRHA Database", "form"
objTree.Nodes("C11").Tag = "edtSplashScreen"
objTree.Nodes.Add "C1", tvwChild, "C12", "Edit Communities", "form"
objTree.Nodes("C12").Tag = "frmEdtCommunities"
objTree.Nodes.Add "C1", tvwChild, "C12A", "Edit Neighborhood", "form"
objTree.Nodes("C12A").Tag = "frmEdtNeighborhood"

objTree.Nodes.Add "C1", tvwChild, "C13", "Edit Foundation Type", "form"
objTree.Nodes("C13").Tag = "frmEdtFoundation"
objTree.Nodes.Add "C1", tvwChild, "C14", "Edit Driveway Type", "form"
objTree.Nodes("C14").Tag = "frmEdtDriveway"
HiTechCoach
Try something like:

CODE
If SecurityLevel = 1 then

     objTree.Nodes.Add "A", tvwChild, "C1", "Administration", "frame", "crha"

End If

objTree.Nodes.Add "C1", tvwChild, "C11", "About CRHA Database", "form"
objTree.Nodes("C11").Tag = "edtSplashScreen"
objTree.Nodes.Add "C1", tvwChild, "C12", "Edit Communities", "form"
objTree.Nodes("C12").Tag = "frmEdtCommunities"
objTree.Nodes.Add "C1", tvwChild, "C12A", "Edit Neighborhood", "form"
objTree.Nodes("C12A").Tag = "frmEdtNeighborhood"

objTree.Nodes.Add "C1", tvwChild, "C13", "Edit Foundation Type", "form"
objTree.Nodes("C13").Tag = "frmEdtFoundation"
objTree.Nodes.Add "C1", tvwChild, "C14", "Edit Driveway Type", "form"
objTree.Nodes("C14").Tag = "frmEdtDriveway"
alorenzini
I tried this but I found out since objTree.Nodes.Add "A", is the root node it suppress the whole tree.
HiTechCoach
you will probaly need to reorganize your tree to make it a separate node under the root.
alorenzini
Yeah I was getting that feeling. I am just trying to think of a logical reordering. I have a snapshot of the tree if you care to give me some ideas.
HiTechCoach
I tend to look a work flow. Use that as a guide.
alorenzini
Yes, I really didn't do much. I just added a few if statment in the child nodes and it seems to be work.

If CurrentAccessLevel = 1 Or CurrentAccessLevel = 3 Then

objTree.Nodes.Add "C1", tvwChild, "C12", "Edit Communities", "form"
objTree.Nodes("C12").Tag = "frmEdtCommunities"
objTree.Nodes.Add "C1", tvwChild, "C12A", "Edit Neighborhood", "form"
objTree.Nodes("C12A").Tag = "frmEdtNeighborhood"
objTree.Nodes.Add "C1", tvwChild, "C13", "Edit Foundation Type", "form"
objTree.Nodes("C13").Tag = "frmEdtFoundation"
objTree.Nodes.Add "C1", tvwChild, "C14", "Edit Driveway Type", "form"
objTree.Nodes("C14").Tag = "frmEdtDriveway"
objTree.Nodes.Add "C1", tvwChild, "C15", "Edit Roof Types", "form"
objTree.Nodes("C15").Tag = "frmEdtRoof"
objTree.Nodes.Add "C1", tvwChild, "C16", "Edit Assigned Maintenance Worker", "form"
objTree.Nodes("C16").Tag = "frmedtAssignedMaintenanceWorker"
objTree.Nodes.Add "C1", tvwChild, "C17", "Edit Recommendation Type", "form"
objTree.Nodes("C17").Tag = "frmEdtRecommendation"
objTree.Nodes.Add "C1", tvwChild, "C18", "Edit Renovation Type", "form"
objTree.Nodes("C18").Tag = "frmEdtRenovation"
objTree.Nodes.Add "C1", tvwChild, "C19", "Edit Siding Type", "form"
objTree.Nodes("C19").Tag = "frmEdtSiding"
objTree.Nodes.Add "C1", tvwChild, "C20", "Edit Unit Status", "form"
objTree.Nodes("C20").Tag = "frmEdtUnitStatus"
objTree.Nodes.Add "C1", tvwChild, "C21", "Edit Unit Type", "form"
objTree.Nodes("C21").Tag = "frmEdtUnitType"
objTree.Nodes.Add "C1", tvwChild, "C22", "Edit Heating Type", "form"
objTree.Nodes("C22").Tag = "frmEdtHeatingType"
objTree.Nodes.Add "C1", tvwChild, "C22A", "Edit Interior Status Type", "form"
objTree.Nodes("C22A").Tag = "frmEdtInteriorStatus"
objTree.Nodes.Add "C1", tvwChild, "C22B", "Edit Exterior Status Type", "form"
objTree.Nodes("C22B").Tag = "frmEdtExteriorStatus"
End If
If CurrentAccessLevel = 1 Then
objTree.Nodes.Add "C1", tvwChild, "C22C", "User Administration", "form"
objTree.Nodes.Add "C22C", tvwChild, "C22C1", "Manage User Access Views", "form"
objTree.Nodes("C22C1").Tag = "edtfrmSecurityAccessViews"
objTree.Nodes.Add "C22C", tvwChild, "C22C2", "Manage User Access Levels", "form"
objTree.Nodes("C22C2").Tag = "edtfrmSecurityAccess"
objTree.Nodes.Add "C22C", tvwChild, "C22C3", "Add New Employee", "form"
objTree.Nodes("C22C3").Tag = "edtfrmNewUser"
objTree.Nodes.Add "C22C", tvwChild, "C22C4", "Add New User", "form"
objTree.Nodes("C22C4").Tag = "edtfrmAddNewUser"
objTree.Nodes.Add "C22C", tvwChild, "C22C5", "User Manager", "form"
objTree.Nodes("C22C5").Tag = "fmnuUsers"
objTree.Nodes.Add "C1", tvwChild, "C23", "Missing Data Reports", "form"
objTree.Nodes.Add "C23", tvwChild, "C24A", "Preview Missing Data Report # 1", "report"
objTree.Nodes("C24A").Tag = "rptMissingDataNo1Report"
objTree.Nodes.Add "C23", tvwChild, "C25A", "Preview Missing Data Report # 2", "report"
objTree.Nodes("C25A").Tag = "rptMissingDataNo2Report"
objTree.Nodes.Add "C23", tvwChild, "C26A", "Preview Missing Data Report # 3", "report"
objTree.Nodes("C26A").Tag = "rptMissingDataNo3Report"
objTree.Nodes.Add "C23", tvwChild, "C27A", "Preview Missing Data Report # 4", "report"
objTree.Nodes("C27A").Tag = "rptMissingDataNo4Report"
objTree.Nodes.Add "C23", tvwChild, "C28A", "Preview Missing Data Report # 5", "report"
objTree.Nodes("C28A").Tag = "rptMissingDataNo5Report"
objTree.Nodes.Add "C23", tvwChild, "C29A", "Preview Missing Data Report # 6", "report"
objTree.Nodes("C29A").Tag = "rptMissingDataNo6Report"
End If
HiTechCoach
Glad to hear that you found a solution!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.