Table Properties (LvProp)

Access stores various design view properties in the LvProp column of the MSysObjects table. This is the format of the data stored in this field.

LvProp format

Every LvProp field contains a 4 byte signature followed by a number of property blocks.

Name Length Type Description
LvProp Signature 4 bytes Jet 3: 'KKD\0'
Jet 4: 'MR2\0'

now a variable number of property blocks follows:

Block Length 4 bytes UINT 32 LE

Contains the length in bytes of this property block.

Block Type 2 bytes UINT 16 LE

The type of this property block.

  • 0x0000: Table Property Value Block
  • 0x0001: Column Property Value Block
  • 0x0080: Property Name Block
Block Contents (Block Length)-6 bytes

The contents of the property block, formatted according to the type field.

Property Name Block

There is exactly one block with a type 0x0080. This property block simply contains a list of strings. These strings are referenced by the other property blocks.

Name Length Type Description
Length 2 bytes UINT 16 LE
Property Name (Length) bytes A property name.

Property Value Blocks

There is a property value block for the table itself (type 0x0000), and one for every column (type 0x0001). They are formatted as follows

Name Length Type Description
Header Length 4 bytes UINT 32 LE Length of this header
Name Length 2 bytes UINT 16 LE Length of the following string in bytes
Name (Name Length) bytes The name of the corresponding column, or empty string if this block is for the table.

This is followed by a number of records containing the values stored in this property block (repeated until the end of the block):

Length 2 bytes UINT 16 LE Length of this record in bytes
Unknown 1 byte Some unknown flag
Type 1 byte Type of this value
Name index 2 bytes UINT 16 LE The name of this property. This is an index referencing to the 0x0080 block.
Value Length 2 bytes UINT 16 LE The length of the following string in bytes.
Value (Value Length) bytes The actual value of the property.