…you can see them, thanks to a post by JoelS_999 in the Microsoft Community Forums. And, while this may not be exactly what you want, this neat little piece of code will allow you to see them in a table, tblSysObjProps. This is especially helpful when upgrading from Access 2003 and below, where you have used Descriptions to store information pertinent to your Object.
Public Function ListObjProps() ' Created by Joel S. on 12/05/2013 ' ' This function lists MS Access 2010 objects (i.e. tables, queries, forms, reports, ' etc.) and their top-level properties as shown in the navigation pane. The output ' is written into a table, which allows an open, grid-like view of the object ' properties, similar to the navigation pane in Access 2000-2003. Also, the output ' table makes it possible to sort on the Description field, which the Access 2010 ' navigation pane does not allow. ' ' CAVEATS: The DateCreated and LastUpdated fields will reflect the values stored ' in the MSysObjects system table, not the values shown in the navigation pane ' (which sometimes appear to be incorrect). Also, the Type field will show "Tables" not ' "Queries" for query objects, so this could cause confusion if some of the tables ' and queries in the database use exactly the same names. Finally, this function should ' be run whenever the user deems he/she has added/deleted/modified enough ' MS Access objects to warrant refreshing the output table. On Error GoTo Err_ListObjProps Dim db As Database 'Variable for current database Dim ctnr As Container 'High-level containers for MS Access objects Dim obj As Document 'Individual MS Access Objects--tables, queries, forms, etc. Dim prop As DAO.Property 'Object properties Dim tdf As TableDef 'Output table definition Dim strTbl As String 'Output table name Dim rst As Recordset 'Recordset for updating output table Dim boolRstOpen As Boolean 'Flag to indicate whether recordset is open 'Turn off warnings DoCmd.SetWarnings False DoCmd.Hourglass True boolRstOpen = False 'Initiate flag to indicate recordset hasn't been opened. Set db = CurrentDb() strTbl = "tblSysObjProps" 'Name output table. (Can be renamed if user wishes.) On Error Resume Next 'Close and delete previous output table if needed DoCmd.Close acTable, strTbl, acSaveNo DoCmd.DeleteObject acTable, strTbl On Error GoTo Err_ListObjProps 'Create new output table definition Set tdf = db.CreateTableDef(strTbl) With tdf .Fields.Append .CreateField("Name", dbText) .Fields.Append .CreateField("Type", dbText) .Fields.Append .CreateField("Description", dbText) .Fields.Append .CreateField("DateCreated", dbDate) .Fields.Append .CreateField("LastUpdated", dbDate) End With 'Append new output table definition to database db.TableDefs.Append tdf 'Open output table for updating Set rst = db.OpenRecordset(tdf.Name) boolRstOpen = True If (rst.RecordCount > 0) Then rst.MoveLast End If 'Cycle through all container types--tables, queries, forms, reports, etc. For Each ctnr In db.Containers 'Cycle through each object in the container--individual tables, queries, etc. For Each obj In ctnr.Documents 'Create new record in output table rst.AddNew obj.Properties.Refresh 'Print object name to immediate window if needed 'Debug.Print obj.Name 'Cycle through each top-level property for the object in question 'and write the value for each specified property into output table. For Each prop In obj.Properties Select Case prop.Name Case "Container" rst!Type = prop.Value Case "DateCreated" rst!DateCreated = prop.Value Case "Description" rst!Description = prop.Value Case "LastUpdated" rst!LastUpdated = prop.Value Case "Name" rst!Name = prop.Value End Select 'Print object properties to immediate window if needed 'Debug.Print vbTab & prop.Name & " = " & prop.Value Next prop 'Update output table for last record entered. rst.Update rst.MoveLast Next obj Next ctnr 'Clean up and close function If boolRstOpen Then rst.Close End If 'MS Access quirk requires the hidden output table to be explicitly hidden then unhidden. Application.SetHiddenAttribute acTable, strTbl, True Application.SetHiddenAttribute acTable, strTbl, False db.Close DoCmd.Hourglass False DoCmd.SetWarnings True MsgBox ("ListObjProps function completed successfully. See table " _ & strTbl & " for output.") Exit Function Err_ListObjProps: 'Clean up and close function On Error Resume Next If boolRstOpen Then rst.Close End If db.Close DoCmd.Hourglass False DoCmd.SetWarnings True MsgBox ("ERROR: ListObjProps function did not complete successfully.") End Function
Still missing the Database Window? Here are some options…
AAD Consulting’s Database Window for Access 2007 and Access 2010
Avenius Gunter’s Database Window for Access 2007, Access 2010 and Access 2013
Access Junkie’s Database Window for Access 2007
1,064 total views, 3 views today
danno,
To open a Form in Design View you just need to use this line…
DoCmd.OpenForm “YourFormName”, acDesign
Now, I do not use Datasheet View but I would think you could get that to work by using something like…
‘Untested Air Code
Dim strMyForm As String
strMyForm = Me.txtYourFieldThatContainsFormName
DoCmd.OpenForm strMyForm, acDesign
‘End
… in the On_Click event of the Control. And, don’t forget to set the *Display as Hyperlink* to *Always*!
This is outstanding. I was finally forced to move to 2010 from 2003 and to say I’ve been greatly hobbled by the lack of sorting on Descriptions is an understatement. My main db has 1157 objects. This type of sorting is vital for me.
I created a datasheet form to sort all of the objects. Crazy question: is it possible to create a hyperlink of sorts with the Name field to open that object in design view? I’d just about be back to a real development environment if that’s possible.