Solved

Access 2010 - What are hidden objecs? System Objects

Posted on 2013-06-06
15
637 Views
Last Modified: 2013-07-03
Can someone tell me what hidden and system objects are and some examples?
0
Comment
Question by:brothertruffle880
  • 7
  • 4
  • 2
  • +1
15 Comments
 
LVL 31

Accepted Solution

by:
Helen_Feddema earned 167 total points
ID: 39226683
System objects are tables used for internal purposes, such as the MSysObjects table that lists database objects and their properties.  They are usually hidden, because changes to them can cause serious problems.  They are sometimes used as sources for queries, especially in add-ins.  Hidden objects are ones you have chosen to hide (unless Hidden objects are made visible in the Options dialog).  You can hide an object by opening its properties sheet (from the Nav bar) and checking the Hidden checkbox.  This can be useful if you don't want users to see an object.
0
 
LVL 75

Assisted Solution

by:DatabaseMX (Joe Anderson - Access MVP)
DatabaseMX (Joe Anderson - Access MVP) earned 167 total points
ID: 39226691
Be default, all System  Objects are Hidden. These include any object (mainly tables) that start with the prefix MSys (like MSysObjects) or Usys (like USysRibbons).

You can unhide these ... Options>>Current Database >> Navigation.

You can also Hide any of your own objects as desired, by setting the Hidden attribute of the object ... Right Click >> Properties >> check the Hidden box.  
These will be then become Hidden when the Show Hidden Objects check box in the Navigation Options is Unchecked.

The idea is to keep users from seeing certain objects ... if say you are showing the Navigation Pane.

All MSys tables cannot be edited by anyone.  Read Only.

mx
0
 
LVL 57
ID: 39226705
any table prefixed with 'usys' will also be hidden unless "Show Hidden Objects" is checked in options.

Jim.
0
 
LVL 75
ID: 39226725
:-)
0
 
LVL 31

Expert Comment

by:Helen_Feddema
ID: 39226824
USys objects (if any) are used for add-ins.
0
 
LVL 57
ID: 39226848
<<Sys objects (if any) are used for add-ins. >>

  Typically yes, but Access doesn't care really.  Any table can be hidden that way.

Jim.
0
 
LVL 75
ID: 39226874
But USys prefixed objects will be automatically hidden IF - the  "Show System Objects" is Unchecked - whether or not the Hidden attribute is check for that object.



mx
0
Backup Your Microsoft Windows Server®

Backup all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

 
LVL 75
ID: 39226878
"USys objects (if any) are used for add-ins."

Except the USysRibbons table ... not related to an Add In.

I've used the USys prefix for many of my 'app system' tables for many years.

mx
0
 
LVL 57
ID: 39226932
<<Typically yes, but Access doesn't care really.  Any table can be hidden that way.>>

 Actually that goes for Msys as well.  

  One thing with the Hidden attribute, make sure you don't set the dbHiddenObject attribute on a table.  This is a JET level attribute and you will loose the table on the next compact and repair if it's set.

   This is different then using Application.SetHiddenAttribute, which sets the hidden attribute on the Access object (it's not a JET object attribute).

Jim.
0
 
LVL 75
ID: 39227126
Yeah ... that bug has been around a long time.
0
 
LVL 21

Assisted Solution

by:Boyd (HiTechCoach) Trimmell, Microsoft Access MVP
Boyd (HiTechCoach) Trimmell, Microsoft Access MVP earned 166 total points
ID: 39227882
@Jim and MX,

One thing with the Hidden attribute, make sure you don't set the dbHiddenObject attribute on a table.  This is a JET level attribute and you will loose the table on the next compact and repair if it's set.
Yeah ... that bug has been around a long time.

Most do not realized it was fixed in JET 4.

I have been using it with JET 4 databases for 10+ years and never lost a table after a compact.  I even use it to hide Linked tables in front ends.

If you use Application.SetHiddenAttribute  the object will show if you select show hidden objects.  It is exactly the same as selecting the Hidden attribute  check box in Table properties.
0
 
LVL 75
ID: 39227891
I kind of thought it was probably fixed.
0
 
LVL 21
ID: 39227982
It works fine in ACE (.accdb) databases also.

I use this with JET4 and ACE databases:

Public Sub HideTable(strTablename As String)
    With CurrentDb
        With .TableDefs(strTablename)
            .Attributes = .Attributes Or dbHiddenObject
        End With
    End With
    RefreshDatabaseWindow
End Sub
    
  
Public Sub UnHideTable(strTablename As String)
    With CurrentDb
        With .TableDefs(strTablename)
            If dbHiddenObject = (.Attributes And dbHiddenObject) Then
                .Attributes = .Attributes - dbHiddenObject
            End If
        End With
    End With
    RefreshDatabaseWindow
End Sub

Open in new window


from: How to Hide a table
0
 
LVL 57
ID: 39228733
I didn't think it was a bug per say, but a "by design" type of thing.   Didn't realize they had changed it.  I can't remember the last time I bothered to hide a table.

 Thanks for posting the correction!

Jim.
0
 
LVL 75
ID: 39229581
Exactly - at least by that method.
0

Featured Post

Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

It took me quite some time to sort out all the different properties of combo and list boxes available from Visual Basic at run-time. Not that the documentation is lacking: the help pages are quite thorough and well written. The problem was rather wh…
Introduction When developing Access applications, often we need to know whether an object exists.  This article presents a quick and reliable routine to determine if an object exists without that object being opened. If you wanted to inspect/ite…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…

912 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now