Ошибка "Не удается группировать поля, выбранные с помощью "*", при выполнении запроса в Access

Исходный номер базы знаний: 835414

Примечание.

Эта статья применима к файлам баз данных Microsoft Access (.mdb) или (.accdb). Требуются базовые навыки работы с кодом, макросами и взаимодействия.

Симптомы

При выполнении запроса в базе данных Microsoft Access, которая использует одну из следующих агрегатных функций, может появилось сообщение об ошибке:

  • Sum
  • Min
  • Max

Появляется следующее сообщение об ошибке:

Не удается сгруппировать поля, выбранные с помощью "*".

Причина

Эта проблема возникает при использовании агрегатных функций в запросе, а для свойства Output All Fields запроса не задано значение Нет.

Если для свойства Output All Fields запроса задано значение Да, в предложение select запроса Access добавляется подстановочный знак звездочки (*), представляющий все столбцы таблицы базы данных. Однако нельзя иметь подстановочный знак звездочки (*) вместе с агрегатной функцией в предложении select запроса Access. Таким образом, при выполнении запроса Access может появилось сообщение об ошибке, указанное в разделе "Симптомы".

Разрешение

Чтобы устранить эту проблему, задайте для свойства Output All Fields запроса значение Нет, а затем выполните запрос Access, использующий агрегатную функцию. Для этого выполните следующие действия:

  1. Запустите Access.

  2. Откройте базу данных Access, содержащую проблемный запрос.

  3. В окне База данных щелкните Запросы в разделе Объекты .

    Примечание.

    В Access 2007 щелкните группу Запросы в левой области навигации.

  4. Щелкните правой кнопкой мыши запрос, который требуется изменить, и выберите пункт Конструктор.

  5. В меню Вид выберите пункт Свойства.

    Примечание.

    В Access 2007 перейдите на вкладку Конструктор , а затем щелкните Лист свойств в группе Сервис .

  6. В диалоговом окне Свойства запроса задайте для свойства запроса Output All Fields значение Нет.

    Примечание.

    В Access 2007 откройте вкладку Хранимая процедура в диалоговом окне Свойства . Убедитесь, что параметр Выводить все столбцы не выбран.

  7. В меню Запрос выберите команду Выполнить.

    Примечание.

    В Access 2007 откройте вкладку Конструктор и нажмите кнопку Выполнить в группе Сервис .

Дополнительные сведения

Параметр Выводить все поля можно использовать для автоматического включения всех полей из базовых таблиц в результаты окончательного запроса. Вы также можете использовать параметр Вывод всех полей , чтобы автоматически включать все поля из запросов в результаты окончательного запроса. При этом не нужно добавлять все поля из базовых таблиц или все поля из запросов в сетку конструктора.

Для этого в Access 2003 и более ранних версиях Access выполните следующие действия.

  1. Запустите Access.
  2. В окне База данных выберите пункт Параметры в меню Сервис .
  3. В диалоговом окне Параметры выберите поле Вывод всех полей проверка на вкладке Таблицы и запросы.
  4. Чтобы выполнить поиск абонентской группы для пользователя в поле Абонентская группа (телефонный контекст), нажмите кнопку Обзор.

В Access 2007 выполните следующие действия.

  1. Запустите Access.
  2. Нажмите кнопку Microsoft Office, а затем выберите Пункт Параметры доступа.
  3. Щелкните Конструкторы объектов.
  4. Щелкните, чтобы выбрать поле Вывод всех полей проверка в разделе Конструктор запросов, а затем нажмите кнопку ОК.

Примечание.

При изменении параметра Выводить все поля это влияет только на параметр свойства для новых запросов, которые вы создаете. При изменении параметра Выводить все поля это не влияет на существующие запросы.

Действия по воспроизведению проблемы в Access 2003

  1. Запустите Access.

  2. Откройте пример базы данных Northwind.mdb.

  3. Выполните запрос "Промежуточные итоги заказа" в образце базы данных Northwind.mdb, чтобы убедиться, что запрос "Промежуточные итоги заказа" успешно выполняется. Для этого выполните следующие действия:

    1. В окне База данных щелкните Запросы в разделе Объекты .
    2. В правой области щелкните правой кнопкой мыши запрос «Промежуточные итоги заказа» и выберите команду Открыть.
    3. В меню Файл выберите команду Закрыть.

    Обратите внимание, что запрос промежуточных итогов заказов использует агрегатную функциюSum().

  4. Откройте запрос подытоги заказов в режиме конструктора. Для этого выполните следующие действия:

    1. В окне База данных щелкните Запросы в разделе Объекты .
    2. В правой области щелкните правой кнопкой мыши запрос «Промежуточные итоги заказа» и выберите пункт Конструктор.
  5. Щелкните в любом месте окна Запрос за пределами сетки запросов и за пределами списков полей.

  6. В меню Вид выберите пункт Свойства.

  7. В диалоговом окне Свойства запроса задайте для свойства запроса Output All Fields значение Да.

  8. Закройте диалоговое окно Свойства запроса .

  9. В меню Запрос выберите команду Выполнить.

    При выполнении запроса может появилось сообщение об ошибке, указанное в разделе "Симптомы".