Ms access 运行时错误3075

Ms access 运行时错误3075,ms-access,vba,Ms Access,Vba,我在查询表达式“Select sum[BatteryDataTable].NumberOfBatter as”中收到此错误消息语法错误 原始sql语句如下: sqlDateRangeSearch = "Select *, **Select sum([BatteryDataTable].NumberOfBattery as " & Me.SumOfBattery & ")** from BattryDataTable" & _ " where BatteryDateChan

我在查询表达式“Select sum[BatteryDataTable].NumberOfBatter as”中收到此错误消息语法错误

原始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

我试图做的是显示所有选定的记录,所有选定记录的值的总和,在选定的日期之间。选定的记录将显示在表单中,所有选定记录的值之和将以相同的表单显示在文本框中。顺便说一句,这里有人帮我写了这个代码。我深为感激。粗体部分的语法导致了错误。事先非常感谢

当您创建一个write-an-SQL语句时,不需要重复SELECT、WHERE等语句。您只需像以前一样用逗号分隔所选语句即可。删除前面提到的第二个实例SELECT将有望为您消除错误。

SQL中存在许多问题

正如Dane所写,您不需要在这个SQL中重复SELECT 陈述 您为sum列指定的别名必须包含在 双引号内的SQL&应该在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

希望这对您有所帮助。

非常感谢两位的帮助。我试过你的两个建议,但都不管用。我想到了这个。请看下面。获取的错误消息为运行时错误“3075”:语法错误,查询表达式组中按ID缺少运算符。通常,它可能与语句中某些地方的拼写错误有关。我已经检查了很多次所有名字的拼写,它们应该都是正确的。我一定错过了别的什么。请告知。事先非常感谢。请查看下一个标记上的代码。sqlDateRangeSearch=SELECT*,SUMBatteryNumber为来自BatteryDataTable的“&Me.SumOfBattery&”,其中BatteryDate在&\FormatMe.FromdPicker.Value、\yyyyy-m-d\”和&\uFormatMe.ToDTPicker.Value、\yyyyyy-m-d\&之间更改,按ID、Wings、RoomUnit、RoomNumber、Devices分组,电池更换;