Share via


Formal Shape Grammar

This is the formal grammar for creating any shape command:

  • Required grammatical terms are text strings delimited by angle brackets ("<>").
  • Optional terms are delimited by square brackets ("[ ]").
  • Alternatives are indicated by a virgule ("|").
  • Repeating alternatives are indicated by an ellipsis ("...").
  • Alpha indicates a string of alphabetical letters.
  • Digit indicates a string of numbers.
  • Unicode-digit indicates a string of unicode digits.

All other terms are literals.

Term Definition
<shape-command>
SHAPE [<table-exp> [[AS] <alias>]][<shape-action>]
<table-exp>
{<provider-command-text>} |
(<shape-command>) |
TABLE <quoted-name> |
<quoted-name>
<shape-action>
APPEND <aliased-field-list> | 
COMPUTE <aliased-field-list> [BY <field-list>]
<aliased-field-list>
<aliased-field> [, <aliased-field...>]
<aliased-field>
<field-exp> [[AS] <alias>]
<field-exp>
(<relation-exp>) |
<calculated-exp> |
<aggregate-exp> |
<new-exp>
<relation_exp>
<table-exp> [[AS] <alias>] 
   RELATE <relation-cond-list>
<relation-cond-list>
<relation-cond> [, <relation-cond>...]
<relation-cond>
<field-name> TO <child-ref>
<child-ref>
<field-name> | 
PARAMETER <param-ref>
<param-ref>
<number>
<field-list>
<field-name> [, <field-name>]
<aggregate-exp>
SUM(<qualified-field-name>) |
AVG(<qualified-field-name>) |
MIN(<qualified-field-name>) |
MAX(<qualified-field-name>) |
COUNT(<qualified-alias> | <qualified-name>) |
STDEV(<qualified-field-name>) |
ANY(<qualified-field-name>) 
<calculated-exp>
CALC(<expression>)
<qualified-field-name>
<alias>.[<alias>...]<field-name>
<alias>
<quoted-name>
<field-name>
<quoted-name> [[AS] <alias>]
<quoted-name>
"<string>" |
'<string>' |
[<string>] |
<name>
<qualified-name>
alias[.alias...]
<name>
alpha [ alpha | digit | _ | # | : | ...]
<number>
digit [digit...]
<new-exp>
NEW <field-type> [(<number> [, <number>])]
<field-type>
An OLE DB or ADO data type.
<string>
unicode-char [unicode-char...]
<expression>
A Visual Basic for Applications expression whose operands are other non-CALC columns in the same row.

See Also

Accessing Rows in a Hierarchical Recordset | Data Shaping Summary | Required Providers for Data Shaping | Shape APPEND Clause | Shape Commands in General | Shape COMPUTE Clause | Visual Basic for Applications Functions