ACC: Data Not Sorted in Index Field Order

Last reviewed: May 28, 1997
Article ID: Q114081
The information in this article applies to:
  • Microsoft Access 1.0, 1.1, 2.0, 7.0, 97

SYMPTOMS

Novice: Requires knowledge of the user interface on single-user computers.

When you use an index on a table without a primary index, the table does not sort according to the order of the fields in the index.

CAUSE

Opening a table in Datasheet view is, internally, the same as opening a recordset. If there is no primary index on the table, Microsoft Access uses any field with a unique index to sort the recordset. If none or more than one of the fields has a unique index, Microsoft Access chooses one at random. The order of the indexes shown in the Index window has no bearing on which index is used to sort the recordset.

RESOLUTION

To sort a recordset on a particular field, either make that field the primary index for the table (by setting its PrimaryIndex property to Yes), or use a query to sort the data.

STATUS

This behavior is by design.

MORE INFORMATION

Steps to Reproduce Behavior

  1. Start Microsoft Access and open any database.

  2. Create a table with three fields. Make one of the fields an AutoNumber field, and make the other two Text fields.

    NOTE: In versions 1.x and 2.0, AutoNumber is called Counter.

  3. Do not specify a primary key for the table. Define an ascending compound index on the two text fields. For example:

          Index Name     Field Name     Sort Order
          ----------------------------------------
          FieldText      Field1          Ascending
                         Field2          Ascending
    
       Set all index properties to No.
    
    

  4. Save the table, and then enter the following data in the table:

          AutoNumber  Field1  Field2
          -----------------------
    
          1           zzzz    dddd
          2           dddd    yyyy
          3           mmmm    iiii
    
    

  5. Close the table, and then open it in Datasheet view. Note that it is sorted as follows:

          AutoNumber  Field1  Field2
          -----------------------
    
          2           dddd    yyyy
          3           mmmm    iiii
          1           zzzz    dddd
    
    

  6. Switch to Design view and add the AutoNumber field to the index:

          Index Name     Field Name     Sort Order
          ----------------------------------------
          AutoNumber     Autonumber     Ascending
          FieldText      Field1         Ascending
                         Field2         Ascending
    
       Leave all the index properties set to No.
    
    

  7. Save and close the table, and then open it in Datasheet view. Note that it is sorted as follows:

          AutoNumber  Field1  Field2
          -----------------------
    
          2           dddd    yyyy
          3           mmmm    iiii
          1           zzzz    dddd
    
       Instead of sorting first on the AutoNumber field, and then on Field1 and
       Field2 as you might expect, the sorting remains unchanged.
    
    

  8. Set the AutNumber field's UniqueIndex property to Yes. The table is sorted as:

          AutoNumber  Field1  Field2
          -----------------------
    
          1           zzzz    dddd
          2           dddd    yyyy
          3           mmmm    iiii
    
       Note that the data is sorted on the AutoNumber field.
    
    

REFERENCES

For more information about Indexes, search the Help Index for "indexes, creating," or ask the Microsoft Access 97 Office Assistant.


Additional query words: indexes indexing sorting ordering
Keywords : kbusage RptSort
Version : 1.0 1.1 2.0 7.0 97
Platform : WINDOWS
Hardware : X86
Issue type : kbprb
Resolution Type : Info_Provided


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: May 28, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.