[AccessD] Fascinating behavior of database properties collection

John Colby jwcolby at gmail.com
Sun May 16 11:51:18 CDT 2021


Thanks Stuart.  I'm really just researching the database properties for a
project.  There are all the built-in properties as well as any custom
properties that we may want to define.  I did all this stuff 20 years ago
and now I need a refresh.

I used db properties for embedding version numbers, copyright notices,
Developer name etc.

On Sat, May 15, 2021 at 9:15 PM Stuart McLachlan <stuart at lexacorp.com.pg>
wrote:

> Managed to derive all of the  possible Property Types according to:
>
>
> https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/
> property-type-property-dao
> <https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/property-type-property-dao>
>
> There is no defined Type 0, so I'm guessing that it is used for  a
> pre-defined property with no
> value.
>
> FWIW, here are the type values:
>
> 1       dbBoolean
> 2       dbByte
> 3       dbInteger
> 4       dbLong
> 5       dbCurrency
> 6       dbSingle
> 7       dbDouble
> 8       dbDate
> 9       dbBinary
> 10      dbText
> 11      dbLongBinary
> 12      dbMemo
> 15      dbGUID
> 16      dbBigInt
> 17      dbVarBinary
> 18      dbChar
> 19      dbNumeric
> 20      dbDecimal
> 21      dbFloat
> 22      dbTime
> 23      dbTimeStamp
>
> A conditional display based on type may be useful in your property
> iteration.
>
>
> On 16 May 2021 at 10:54, Stuart McLachlan wrote:
>
> >
> > "Connection" appears to be the only property of Type 0  in my test
> > accdb. So it may be desireable  to test for that.
> >
> > Debug.Print intIndex & " : " & lPrp.Name & " : " & lPrp.Type
> > (Where does one find the enumerations for property type? )
> >
> > Property Count : 47
> > 1 : Name : 12
> > 2 : Connect : 12
> > 3 : Transactions : 1
> > 4 : Updatable : 1
> > 5 : CollatingOrder : 3
> > 6 : QueryTimeout : 3
> > 7 : Version : 12
> > 8 : RecordsAffected : 4
> > 9 : ReplicaID : 15
> > 10 : DesignMasterID : 15
> > 11 : Connection : 0
> > 12 : ANSI Query Mode : 4
> > 13 : Themed Form Controls : 4
> > 14 : Use Microsoft Access 2007 compatible cache : 4
> > 15 : Clear Cache on Close : 4
> > 16 : Never Cache : 4
> > 17 : AccessVersion : 10
> > 18 : NavPane Category : 4
> > 19 : Show Navigation Pane Search Bar : 4
> > 20 : Build : 4
> > 21 : ProjVer : 3
> > 22 : HasOfflineLists : 3
> > 23 : UseMDIMode : 2
> > 24 : ShowDocumentTabs : 1
> > 25 : Picture Property Storage Format : 4
> > 26 : WebDesignMode : 2
> > 27 : CheckTruncatedNumFields : 4
> > 28 : Theme Resource Name : 10
> > 29 : StartUpShowDBWindow : 1
> > 30 : StartUpShowStatusBar : 1
> > 31 : AllowShortcutMenus : 1
> > 32 : AllowFullMenus : 1
> > 33 : AllowBuiltInToolbars : 1
> > 34 : AllowToolbarChanges : 1
> > 35 : AllowSpecialKeys : 1
> > 36 : UseAppIconForFrmRpt : 1
> > 37 : AllowDatasheetSchema : 1
> > 38 : DesignWithData : 1
> > 39 : Show Values Limit : 4
> > 40 : Show Values in Indexed : 4
> > 41 : Show Values in Non-Indexed : 4
> > 42 : Show Values in Remote : 4
> > 43 : Auto Compact : 4
> > 44 : NavPane Closed : 4
> > 45 : NavPane Width : 4
> > 46 : NavPane View By : 4
> > 47 : NavPane Sort By : 4
> >
> > On 15 May 2021 at 20:09, John Colby wrote:
> >
> > > I wasn't trapping errors and Property(10) which is a connection
> > > object (apparently) could not convert to a string to print out.
> > > Thus the loop errored, bubbled up to the next higher level and
> > > appeared to not exist after that.
> > >
> > > I put on error resume next before the problematic line and found it.
> > >
> > > Property Count : 56
> > > 1 : Connect :
> > > 2 : Transactions : True
> > > 3 : Updatable : True
> > > 4 : CollatingOrder : 1033
> > > 5 : QueryTimeout : 60
> > > 6 : Version : 12.0
> > > 7 : RecordsAffected : 0
> > > 8 : ReplicaID :
> > > 9 : DesignMasterID :
> > > 11 : AccessVersion : 09.50
> > > 12 : Build : 606
> > > 13 : AppTitle : C2DbProperties2007
> > > 14 : StartUpShowDBWindow : True
> > > 15 : StartUpShowStatusBar : True
> > > 16 : AllowShortcutMenus : True
> > > 17 : AllowFullMenus : True
> > > 18 : AllowBuiltInToolbars : True
> > > 19 : AllowToolbarChanges : True
> > > 20 : AllowSpecialKeys : True
> > > 21 : HijriCalendar : False
> > > 22 : Auto Compact : 0
> > > 23 : Perform Name AutoCorrect : 0
> > > 24 : Log Name AutoCorrect Changes : 0
> > > 25 : Track Name AutoCorrect Info : 0
> > > 26 : Four-Digit Year Formatting : 0
> > > 27 : Show Values Limit : 1000
> > > 28 : Show Values in Indexed : 1
> > > 29 : Show Values in Non-Indexed : 1
> > > 30 : Show Values in Remote : 0
> > > 31 : Show Values in Snapshot : 1
> > > 32 : Show Values in Server : 0
> > > 33 : Row Limit : 10000
> > > 34 : AllowBreakIntoCode : True
> > > 35 : AllowBypassKey : True
> > > 36 : StartUpForm : frm_CopyFiles
> > > 37 : ProjVer : 119
> > > 38 : UseAppIconForFrmRpt : False
> > > 39 : Use Default Page Folder : 0
> > > 40 : Use Default Connection File : 0
> > > 41 : ANSI Query Mode : 0
> > > 42 : NavPane Closed : 0
> > > 43 : NavPane Width : 215
> > > 44 : NavPane Category : 0
> > > 45 : NavPane View By : 0
> > > 46 : NavPane Sort By : 1
> > > 47 : HasOfflineLists : 70
> > > 48 : UseMDIMode : 1
> > > 49 : ShowDocumentTabs : True
> > > 50 : AllowDatasheetSchema : True
> > > 51 : Picture Property Storage Format : 1
> > > 52 : Theme Resource Name : Office Theme
> > > 53 : Show Navigation Pane Search Bar : 0
> > > 54 : WebDesignMode : 0
> > > 55 : DesignWithData : True
> > > 56 : DesignWithData : True
> > >
> > > ? lproperties(10).Name
> > > Connection
> > >
> > >
> > >
> > > On Sat, May 15, 2021 at 7:28 PM Bill Benson <bensonforums at gmail.com>
> > > wrote:
> > >
> > > > Many properties have no value until set.
> > > >
> > > > On Sat, May 15, 2021 at 7:12 PM John Colby <jwcolby at gmail.com>
> > > > wrote:
> > > >
> > > > > This code:
> > > > >
> > > > > Notice the count property of the collection says it has 56
> > > > > properties,
> > > > but
> > > > > it only prints names and values for 10 of the properties.  At
> > > > > least using the "For each" iterator.
> > > > >
> > > > > However if I index in directly with an integer, for example
> > > > > lProperties(40).name I get a value returned.
> > > > >
> > > > > Function mIterateProperties(lProperties As DAO.Properties)
> > > > > Dim lPrp As DAO.Property
> > > > > Dim intIndex As Integer
> > > > >     Debug.Print "Property Count : " & lProperties.Count
> > > > >     For Each lPrp In lProperties
> > > > >         intIndex = intIndex + 1
> > > > >         Debug.Print intIndex & " : " & lPrp.Name & " : " &
> > > > >         lPrp.Value
> > > > >     Next lPrp
> > > > > End Function
> > > > >
> > > > > Gives this result:
> > > > >
> > > > > Property Count : 56
> > > > > 1 : Name :
> > > > > C:\DavidEmbley\C2DbProperties\C2DbProperties2007.accdb 2 :
> > > > > Connect : 3 : Transactions : True 4 : Updatable : True 5 :
> > > > > CollatingOrder : 1033 6 : QueryTimeout : 60 7 : Version : 12.0 8
> > > > > : RecordsAffected : 0 9 : ReplicaID : 10 : DesignMasterID :
> > > > >
> > > > > Some of the values that can't be seen with the For Each iterator
> > > > > are:
> > > > >
> > > > >       opt_StartupShowStatusBar =
> > > > >       dbs.Properties("StartupShowStatusBar")
> > > > >       opt_StartupShowDBWindow =
> > > > >       dbs.Properties("StartupShowDBWindow")
> > > > >       opt_AllowBuiltinToolbars =
> > > > >       dbs.Properties("AllowBuiltinToolbars") opt_AllowFullMenus
> > > > >       = dbs.Properties("AllowFullMenus") opt_AllowBreakIntoCode
> > > > >       = dbs.Properties("AllowBreakIntoCode")
> > > > >       opt_AllowSpecialKeys = dbs.Properties("AllowSpecialKeys")
> > > > >       opt_AllowBypassKey = dbs.Properties("AllowBypassKey")
> > > > >       opt_AllowShortcutMenus =
> > > > >       dbs.Properties("AllowShortcutMenus")
> > > > >       opt_AllowToolbarChanges =
> > > > >       dbs.Properties("AllowToolbarChanges")
> > > > >
> > > > > They return a boolean value.
> > > > >
> > > > > Mighty strange if you ask me.
> > > > >
> > > > > --
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> https://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>


-- 
John W. Colby
Colby Consulting


More information about the AccessD mailing list