Ok - I think I have figured it out thanks to Denis (aka SydneyGeek) at the other forum. The following code performs the trick :
Sub GrantPermissions()
Dim cnn As New ADODB.Connection
Dim cat As New ADOX.Catalog
cnn.Provider = "Microsoft.Jet.OLEDB.4.0"
cnn.Properties("Jet OLEDB:Database Password") = strPass
cnn.Open "data source=" & dbFileName & _
"; jet oledb:system database=C:\Documents and Settings\Andrew\Application Data\Microsoft\Access\system.mdw", _
UserID:="Admin"
Set cat.ActiveConnection = cnn
'Give the Admin user Read rights on the MSysObjects object
'Just to help find the groups
Dim x As Integer
Dim xUserCount As Integer
xUserCount = cat.Users.Count
Debug.Print xUserCount
For x = 0 To xUserCount - 1
Debug.Print cat.Users(x)
Next
cat.Users("Admin").SetPermissions "MSysObjects", adPermObjTable, adAccessGrant, adRightRead
End Sub
but it gives me occasional problems - but only with databases that have passwords.
Thanks for looking!
Andrew