適用先: Access 2013、Office 2013
この例では、GetObjectOwner メソッドと SetObjectOwner メソッドの機能を示します。 このコードでは、グループアカウンティングが存在することを前提としています (このグループをシステムに追加する方法については 、「グループとユーザーの追加、ChangePassword メソッドの例 (VB)」 を参照してください)。 Categories テーブルの所有者は Accounting に設定されます。
' BeginOwnersVB
Sub Main()
On Error GoTo OwnersXError
Dim tblLoop As New ADOX.Table
Dim cat As New ADOX.Catalog
Dim strOwner As String
' Open the Catalog.
cat.ActiveConnection = "Provider='Microsoft.Jet.OLEDB.4.0';" & _
"Data Source='c:\Program Files\" & _
"Microsoft Office\Office\Samples\Northwind.mdb';" & _
"jet oledb:system database=" & _
"'c:\Program Files\Microsoft Office\Office\system.mdw'"
' Print the original owner of Categories
strOwner = cat.GetObjectOwner("Categories", adPermObjTable)
Debug.Print "Owner of Categories: " & strOwner
' Set the owner of Categories to Accounting
cat.SetObjectOwner "Categories", adPermObjTable, "Accounting"
' List the owners of all tables and columns in the catalog.
For Each tblLoop In cat.Tables
Debug.Print "Table: " & tblLoop.Name
Debug.Print " Owner: " & _
cat.GetObjectOwner(tblLoop.Name, adPermObjTable)
Next tblLoop
' Restore the original owner of Categories
cat.SetObjectOwner "Categories", adPermObjTable, strOwner
'Clean up
Set cat.ActiveConnection = Nothing
Set cat = Nothing
Exit Sub
OwnersXError:
Set cat = Nothing
If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If
End Sub
' EndOwnersVB