2015-02-10 2 views
0

Я получил сообщение об ошибке «Ошибка синтаксиса в выражении запроса 'Выберите сумму ([BatteryDataTable] .NumberOfBatter в)»Ошибка выполнения 3075

Оригинал инструкции SQL ниже:

sqlDateRangeSearch = "Select *, **Select sum([BatteryDataTable].NumberOfBattery as " & Me.SumOfBattery & ")** from BattryDataTable" & _ 
" where BatteryDateChanged BETWEEN " & _ 
Format(Me.FromDTPicker.Value, "\#yyyy-m-d\#") & " and " & _ 
Format(Me.ToDTPicker.Value, "\#yyyy-m-d\#") & ";" 
Me.RecordSource = sqlDateRangeSearch 

Я я пытаюсь сделать это, чтобы отобразить все выбранные записи, сумму значений всех выбранных записей, между выбранными датами. Выбранные записи будут отображаться в форме, а сумма значений всех выбранных записей отображается в текстовом поле в той же форме. Кстати, кто-то здесь помог мне с этим кодом. Я был глубоко оценен. Ошибка в части синтаксиса, выделенного полужирным шрифтом. Заранее большое спасибо.

ответ

0

При создании написать SQL, вы не должны повторять такие заявления, как SELECT, WHERE и т.д. Вы просто разделяющие выбранные staements с comma, как вы уже сделали. Удаление второго экземпляра, о котором вы упоминали, SELECT, мы надеемся, удалим ошибку для вас.

0

Многие проблемы с вашим SQL.

  • как писал Dane, вам не нужно повторять SELECT в этом SQL ЗАЯВЛЕНИЯ
  • имя псевдонима вы даете для столбца суммы должны быть включены в вашего SQL (в двойных кавычках) & должен находиться за пределами закрывающего кронштейна SUM
  • **, который вы используете до & после того, как SUM не имеют значения.

Итак, вот ваш измененный SQL-запрос.

sqlDateRangeSearch = "Select *, sum(NumberOfBattery) as SumOfBattery from BattryDataTable" & _ 
" WHERE BatteryDateChanged BETWEEN " & _ 
Format(Me.FromDTPicker.Value, "\#yyyy-m-d\#") & " AND " & _ 
Format(Me.ToDTPicker.Value, "\#yyyy-m-d\#") & ";" 
Me.RecordSource = sqlDateRangeSearch 

Надеюсь, вы найдете это полезным.

+0

Спасибо вам большое за вашу помощь. Я пробовал ваши оба предложения, но не работал. Я придумал это. См. Ниже. Получено сообщение об ошибке как ошибка времени выполнения «3075»: ошибка синтаксиса (отсутствующий оператор) в выражении запроса GROUP BY ID ». Обычно, это может относиться к неправильной орфографии, где-то в инструкции. Я проверил много времени для написания всех имен, все должно быть правильно. Я, должно быть, пропустил что-то еще. Пожалуйста, порекомендуйте. Заранее большое спасибо. См. Код в следующем теге. – AccessUser

+0

sqlDateRangeSearch = "SELECT *, SUM (BatteryNumber) как" "и Me.SumOfBattery &" 'from BatteryDataTable "& _ " WHERE BatteryDateChanged BETWEEN "& _ Формат (Me.FromDTPicker.Value," \ # yyyy-md \ # ") &" AND "& _ Формат (Me.ToDTPicker.Value," \ # yyyy-md \ # ") &" ORDER BY ASCENDING, GROUP BY ID, Wings, RoomUnit, RoomNumber, Devices, BatteryDateChanged; " – AccessUser

Смежные вопросы