Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在Access 2010中将单个字段的所有记录相乘_Sql_Ms Access_Ms Access 2010 - Fatal编程技术网

Sql 如何在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([

我想将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([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,正如我所说的,请添加所有这些直接回答你的问题。然后使用
{}
按钮格式化代码。