Group Object, Groups Collection, User Object, and Users Collection Example
This example illustrates the use of the Group and User objects and the Groups and Users collections. First, it creates a new User object and appends the object to the Users collection of the default Workspace object. Next, it creates a new Group object and appends the object to the Groups collection of the default Workspace object. Then the example adds user Pat Smith to the Accounting group. Finally, it enumerates the Users and Groups collections of the default Workspace object. See the methods and properties listed in the Group and User summary topics for additional examples.
Sub GroupX()
Dim wrkDefault As Workspace
Dim usrNew As User
Dim usrLoop As User
Dim grpNew As Group
Dim grpLoop As Group
Dim grpMember As Group
Set wrkDefault = DBEngine.Workspaces(0)
With wrkDefault
' Create and append new user.
Set usrNew = .CreateUser("Pat Smith", _
"abc123DEF456", "Password1")
.Users.Append usrNew
' Create and append new group.
Set grpNew = .CreateGroup("Accounting", _
"UVW987xyz654")
.Groups.Append grpNew
' Make the user Pat Smith a member of the
' Accounting group by creating and adding the
' appropriate Group object to the user's Groups
' collection. The same is accomplished if a User
' object representing Pat Smith is created and
' appended to the Accounting group's Users
' collection.
Set grpMember = usrNew.CreateGroup("Accounting")
usrNew.Groups.Append grpMember
Debug.Print "Users collection:"
' Enumerate all User objects in the default
' workspace's Users collection.
For Each usrLoop In .Users
Debug.Print " " & usrLoop.Name
Debug.Print " Belongs to these groups:"
' Enumerate all Group objects in each User
' object's Groups collection.
If usrLoop.Groups.Count <> 0 Then
For Each grpLoop In usrLoop.Groups
Debug.Print " " & _
grpLoop.Name
Next grpLoop
Else
Debug.Print " [None]"
End If
Next usrLoop
Debug.Print "Groups collection:"
' Enumerate all Group objects in the default
' workspace's Groups collection.
For Each grpLoop In .Groups
Debug.Print " " & grpLoop.Name
Debug.Print " Has as its members:"
' Enumerate all User objects in each Group
' object's Users collection.
If grpLoop.Users.Count <> 0 Then
For Each usrLoop In grpLoop.Users
Debug.Print " " & _
usrLoop.Name
Next usrLoop
Else
Debug.Print " [None]"
End If
Next grpLoop
' Delete new User and Group objects because this
' is only a demonstration.
.Users.Delete "Pat Smith"
.Groups.Delete "Accounting"
End With
End Sub