QueryTable XML

<queryTable xmlns="…" name="Database1.accdb" connectionId="2"
  autoFormatId="16" applyNumberFormats="0" applyBorderFormats="0" 
  applyFontFormats="0" applyPatternFormats="0" applyAlignmentFormats="0" 
  applyWidthHeightFormats="0">
  <queryTableRefresh nextId="6" unboundColumnsRight="1">
    <queryTableFields count="4">
      <queryTableField id="1" name="ID" tableColumnId="1"/>
      <queryTableField id="2" name="Field1" tableColumnId="2"/>
      <queryTableField id="3" name="Field2" tableColumnId="3"/>
      <queryTableField id="5" dataBound="0" tableColumnId="4"/>
    </queryTableFields>
    <queryTableDeletedFields count="1">
      <deletedField name="Field3"/>
    </queryTableDeletedFields>
  </queryTableRefresh>
</queryTable>

In the context of <queryTableRefresh>:

  • @nextId is the next available Id that can be assigned to a field. This is an optimization done for load/save, to avoid recalculating the value.

  • @unboundColumnsRight are the number of columns on the right side of the QueryTable that aren’t data bound (don’t come from the external data)

In the context of <queryTableFields>:

  • Each of the <queryTableField> elements expresses information about one of the columns in the Table that is part of the QueryTable. For example, the right-most column's @dataBound is set to 0, indicating that this column is not bound to external data.

In the context of <queryTable>:

  • @queryTableDeletedFields collection expresses which fields returned by the connection have been deleted from the QueryTable. This is tracked so that the connection information does not have to be updated with which columns are no longer required.