ACC2: Error (-1310) Running Crosstab or Totalling Query

Last reviewed: November 25, 1997
Article ID: Q119077
The information in this article applies to:
  • Microsoft Access version 2.0

SYMPTOMS

Moderate: Requires basic macro, coding, and interoperability skills.

When you run a query that contains aggregate (totals) functions, you receive the error message:

   Reserved error (-1310); there is no message for this error.

This problem occurs only with queries for which all of the following conditions are true:
  • The query does not contain remote (ODBC) tables.
  • The query contains two or more tables and can be divided into two or more queries to obtain the same results.
  • The query does not have any criteria on the aggregate fields.

CAUSE

The error is caused by the query optimizer. Any changes made to the query or its underlying tables that cause Microsoft Access to change its query optimization strategy can either result in or resolve this error. Changes include adding criteria to the query, adding indexes to or removing them from underlying tables, adding rows to underlying tables, and then resaving the query, and so on.

RESOLUTION

Method 1

The best way to prevent the error is to divide the query into two or more separate queries that produce the same result. For example, the following sample query will result in the error message stated above. It uses tables from the sample database NWIND.MDB and returns the average unit price for each customer and the quantity of items sold:

   Tables: Customers, Orders, Order Details
      Group By: [Customers].[Company Name]
      Group By: [Order Details].[Quantity]
      Avg: [Order Details].[Unit Price]

To prevent the error, divide the query into two queries by following these steps:

  1. Remove the Customers table from the query.

  2. Drag the Customer ID field from the Orders table to the query grid.

  3. In the Total row of the Customer ID column, select Group By.

  4. Verify that the query runs correctly, then save it as TempTotals.

  5. Create a new query based on the TempTotals query and the Customers table. Note that the table and query automatically join on the Customer ID field.

  6. Drag the Company Name field from the Customers table, and the Quantity and AvgOfUnit Price fields from the TempTotals query, to the query grid.

Method 2

Adding criteria to the query can also prevent the error from occurring. Add criteria that do not affect the outcome of the query, such as comparing a field to itself. For example, you could use the following critera for a query that includes the Customers, Orders, and Order Details tables:

   Customers.[Customer ID]=Customers.[Customer ID]

STATUS

Microsoft has confirmed this to be a problem in Microsoft Access version 2.0. This problem no longer occurs in Microsoft Access version 7.0.

This problem no longer occurs with the Microsoft Jet database engine version 2.5, which is available with the Microsoft Access version 2.0 Service Pack. For information about how to obtain the Service Pack, please see the following article in the Microsoft Knowledge Base:

   ARTICLE-ID: Q122927
   TITLE     : WX1124: Microsoft Access Version 2.0 Service Pack

MORE INFORMATION

Steps to Reproduce Problem

  1. Open the sample database NWIND.MDB.

  2. Create a new query based on the Customers, Orders, and Order Details tables. Note that the tables join automatically.

  3. Drag the Company Name field from the Customers table to the query grid. Drag the Quantity and Unit Price fields from the Order Details table to the query grid.

  4. From the View menu, choose Totals. In the Total row for the Company Name and Quantity columns, select Group By. In the Total row for the Unit Price column, select Avg.

    Note that the SQL statement for this query is as follows:

        SELECT DISTINCTROW Customers.[Company Name],
    
            [Order Details].Quantity, Avg([Order Details].[Unit Price])
            AS [AvgOfUnit Price]
        FROM Customers INNER JOIN (Orders INNER JOIN
            [Order Details] ON Orders.[Order ID] = [Order Details].[Order ID])
            ON Customers.[Customer ID] = Orders.[Customer ID]
        GROUP BY Customers.[Company Name], [Order Details].Quantity;
    
    

  5. Run the query. Note that you receive the error message stated above.


Additional query words: queries querying jet25 jet 2.5
Keywords : QryTotal kberrmsg kbusage
Version : 2.0
Platform : WINDOWS
Hardware : x86
Issue type : kbbug
Solution Type : kbservicepack


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: November 25, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.