Sql 如何在Access 2010中将单个字段的所有记录相乘
我想将Access 2010中单个字段的所有记录相乘。 我尝试了Sql 如何在Access 2010中将单个字段的所有记录相乘,sql,ms-access,ms-access-2010,Sql,Ms Access,Ms Access 2010,我想将Access 2010中单个字段的所有记录相乘。 我尝试了mult(字段名)和product(字段名),但没有成功。 有人能帮我吗?Access中是否有这样做的功能 示例: 我有一张有S1字段的桌子 S1 --- 557 560 563 566 569 572 575 578 581 并且输出应该在另一个具有字段结果的表中 Result -------- 6.25E+24 不幸的是,Access SQL中没有允许您执行以下操作的PRODUCT()函数 SELECT PRODUCT([
mult(字段名)
和product(字段名)
,但没有成功。
有人能帮我吗?Access中是否有这样做的功能
示例:我有一张有S1字段的桌子
S1
---
557
560
563
566
569
572
575
578
581
并且输出应该在另一个具有字段结果的表中
Result
--------
6.25E+24
不幸的是,Access SQL中没有允许您执行以下操作的
PRODUCT()
函数
SELECT PRODUCT([S1]) AS Result FROM [YourTable]
但是,您可以使用VBA“滚动您自己的”DProduct()
域聚合函数,类似于内置的DSum()
函数:
选项比较数据库
选项显式
公共函数DProduct(Expr作为字符串,Domain作为字符串,可选条件)作为变量
Dim SQL为字符串,结果为双精度
Dim cdb作为DAO.Database,rst作为DAO.Recordset
On错误转到D产品\ U错误
设置cdb=CurrentDb
SQL=“选择“&Expr&”作为来自[”&Domain&“]的Expr1”
如果不符合(标准),则
SQL=SQL&“WHERE”&标准
如果结束
Set rst=cdb.OpenRecordset(SQL,dbOpenSnapshot)
如果rst.BOF和rst.EOF,则
DProduct=Null
其他的
结果=1
直到rst.EOF为止
结果=结果*rst!Expr1
rst.MoveNext
环
D产品=结果
如果结束
rst.关闭
设置rst=无
设置cdb=无
退出功能
D产品错误:
DProduct=Null
端函数
使用问题中的样本数据进行测试
?DProduct("S1", "YourTable")
6.24666417941851E+24
一些示例数据可能会有所帮助。因为我有一个表,其中包含字段S1,我想将此列S1 S1 557 560 563 566 569 572 575 578 581的所有值进行乘法运算,请将其添加,并将预期输出格式化为您的问题。并且输出应位于另一个表中,该表具有字段结果6.25E+24,正如我所说的,请添加所有这些直接回答你的问题。然后使用
{}
按钮格式化代码。