Skip to content

pyaccesskit.enums

pyaccesskit.enums

Semantic enumerations used throughout the public API.

These enums describe Access concepts in Python terms. They are deliberately not the raw COM constants (acTextBox = 109 etc.); the COM adapters translate between the two, so no magic numbers ever appear in user code. Every enum is a :class:~enum.StrEnum, which keeps specs readable when serialized to JSON/YAML.

Engine

Bases: StrEnum

Which automation engine a session may use (see AccessDatabase.open(engine=...)).

AUTO class-attribute instance-attribute

AUTO = 'auto'

In-process DAO when available, otherwise Access; upgrades to Access for design features.

DAO class-attribute instance-attribute

DAO = 'dao'

In-process DAO only. Never starts MSACCESS.EXE; design features raise CapabilityError.

ACCESS class-attribute instance-attribute

ACCESS = 'access'

Microsoft Access automation (works with any Python/Office bitness combination).

Transport

Bases: StrEnum

How a session currently reaches the database (reported by AccessDatabase.transport).

DAO_INPROC class-attribute instance-attribute

DAO_INPROC = 'dao-inproc'

DAO loaded into the Python process.

ACCESS_HOSTED class-attribute instance-attribute

ACCESS_HOSTED = 'access-hosted'

DAO hosted by a hidden Access instance; the database is not opened in the Access UI.

ACCESS_DESIGN class-attribute instance-attribute

ACCESS_DESIGN = 'access-design'

The database is Access's current database; forms, reports and modules are available.

MEMORY class-attribute instance-attribute

MEMORY = 'memory'

In-memory fake used for tests and dry runs.

DataType

Bases: StrEnum

Access field data types, named after the Access table designer.

TEXT class-attribute instance-attribute

TEXT = 'text'

Short Text (up to 255 characters).

LONG_TEXT class-attribute instance-attribute

LONG_TEXT = 'long_text'

Long Text (formerly Memo).

NUMBER class-attribute instance-attribute

NUMBER = 'number'

Number; the storage size is given by :class:NumberSize.

DECIMAL class-attribute instance-attribute

DECIMAL = 'decimal'

Number with Field Size = Decimal (fixed precision and scale).

BINARY class-attribute instance-attribute

BINARY = 'binary'

Fixed/variable binary (not creatable from the Access UI).

MULTI_VALUE class-attribute instance-attribute

MULTI_VALUE = 'multi_value'

A multi-valued (complex) lookup field.

UNKNOWN class-attribute instance-attribute

UNKNOWN = 'unknown'

A type PyAccessKit does not model yet; the raw DAO type is preserved on introspection.

NumberSize

Bases: StrEnum

The Field Size of a Number field, exactly as offered by the Access table designer.

Note that Access's INTEGER is a 16-bit integer; the default, LONG_INTEGER, is 32-bit.

JoinType

Bases: StrEnum

Default join type of a relationship (as shown in the Relationships window).

LEFT class-attribute instance-attribute

LEFT = 'left'

Include all records from the primary table.

RIGHT class-attribute instance-attribute

RIGHT = 'right'

Include all records from the foreign (related) table.

QueryKind

Bases: StrEnum

Kind of a saved query (derived from DAO QueryDef.Type).

ObjectKind

Bases: StrEnum

Kinds of objects stored in an Access database.

ModuleKind

Bases: StrEnum

VBA module kinds.

FormView

Bases: StrEnum

A form's Default View.

ScrollBars

Bases: StrEnum

A form's Scroll Bars setting.

Section

Bases: StrEnum

Form sections a control can be placed in.

LayoutKind

Bases: StrEnum

How a form's controls are arranged when they have no explicit position.

AUTO class-attribute instance-attribute

AUTO = 'auto'

STACKED for single/split forms, TABULAR for continuous and datasheet forms.

STACKED class-attribute instance-attribute

STACKED = 'stacked'

One control per row with its label on the left (like Access's stacked layout).

TABULAR class-attribute instance-attribute

TABULAR = 'tabular'

Labels in the form header and one row of controls in the detail section.

NONE class-attribute instance-attribute

NONE = 'none'

No automatic layout: every control must be positioned with at=.

RowSourceType

Bases: StrEnum

Where a combo box gets its rows from.

TABLE_QUERY class-attribute instance-attribute

TABLE_QUERY = 'table_query'

A table name, query name or SQL statement.

VALUE_LIST class-attribute instance-attribute

VALUE_LIST = 'value_list'

A semicolon-separated list of values.

ControlKind

Bases: StrEnum

Kinds of form controls (for building and introspection).

MacroSecurity

Bases: StrEnum

What Access may run when PyAccessKit opens a database as the current database.

DISABLE class-attribute instance-attribute

DISABLE = 'disable'

Disable all macros and VBA (msoAutomationSecurityForceDisable). Default; deterministic.

USE_UI class-attribute instance-attribute

USE_UI = 'ui'

Follow the user's Trust Center settings (msoAutomationSecurityByUI).

ENABLE class-attribute instance-attribute

ENABLE = 'enable'

Enable all macros and VBA, including AutoExec (msoAutomationSecurityLow).

DialogPolicy

Bases: StrEnum

What to do when Access shows a modal dialog during an automated call.

FAIL class-attribute instance-attribute

FAIL = 'fail'

Dismiss the dialog and raise AccessDialogError (default).

WARN class-attribute instance-attribute

WARN = 'warn'

Dismiss the dialog and emit an AccessDialogWarning.

OFF class-attribute instance-attribute

OFF = 'off'

Do not watch for dialogs (a blocking dialog can then hang until call_timeout).

PropertyType

Bases: StrEnum

Data types for user-defined DAO properties (CreateProperty).