Office中国论坛/Access中国论坛

标题: [求助]如何用VBA得到一个表中符合相关条件的记录的值的总和 [打印本页]

作者: Threaten    时间: 2005-11-22 20:59
标题: [求助]如何用VBA得到一个表中符合相关条件的记录的值的总和
请问,如何用VBA得到一个表中符合相关条件的记录的值的总和;

比如表1中字段F1,F2,F3,我要得到F1,和F2等于相关条件的F3的总数?

有没有办法呀?

谢谢


作者: 一点通    时间: 2005-11-22 21:50
用查询可以实现
作者: Threaten    时间: 2005-11-22 23:11
我知道可以用查询,可是在VBA中怎么可以得到这个数的值呢?


作者: 方漠    时间: 2005-11-23 06:04
传你的实例上来,别人才好帮你。
作者: z13173693566    时间: 2005-11-23 18:02
use Dsum()?
作者: 情比金坚    时间: 2005-11-23 19:46
用dcount()函数就行
作者: Threaten    时间: 2005-11-24 07:39
比如我单位卖券,一共有五种券,卖掉有相应的奖金

奖金确认的条件有,1:必须确定是哪一种券,2:在某个日期之前卖掉,3:单价必须在某个金额之上,4:单笔交易的量(即券销售量)必须在某个数字之上,5:此卖券人必须是可以享受提取奖金的福利(即有些人卖券是没有奖金的),6:每个部门都有指标,此卖券人的累计销售量必须已经超过其所属部门的指标才能享有奖金.

以上前5点我都可以做到,在Selling_Form下的Input按钮的单击事件,可是第6点我却没有办法计算出此人卖此种类型券的累计销售量,如果能知道就可以和此人所属部门的指标进行比较,就能知道此人是否有奖金了~~~

各位大侠帮帮我吧,帮我看看.谢谢~~[attach]14358[/attach]

作者: Threaten    时间: 2005-11-25 18:40
请各位大大帮帮忙吧!
作者: 方漠    时间: 2005-11-25 22:01
先在查询视图中设计你所需要的查询,然后切换到SQL视图,将SQL语句COPY替换进VBA.

以下代码是求某一物料的来料总量,可任意选择料号,总量即显示在文本框里.

'Rstr="Your Query SQL"

   Rstr = "SELECT GRNReceiptLine.PN, Sum(GRNReceiptLine.PID) AS QtyOfSum FROM GRNReceiptLine " _
           & "GROUP BY GRNReceiptLine.PN  HAVING (((GRNReceiptLine.PN)='" & Me.Text3 & "' ));"

Set Rst = CurrentDb.OpenRecordset(Rstr)
Me.Text22 = Rst!QtyOfSum
Rst.Close
作者: Threaten    时间: 2005-11-26 09:31
请大侠看看,我按你说的做了,在Selling_Form下的Input增加了些代码可是却提示"参数不足,期待是2"

请问是怎么回事?

谢谢![attach]14414[/attach]

作者: asdf26    时间: 2005-11-26 10:09
标题: 回10楼
可能是条件语句没有写对,你再捉摸捉摸。

[em05]
作者: Threaten    时间: 2005-11-26 20:10
条件语句我是从SQL给Copy过来的,不会错的.我都琢磨了三个小时了,唉~~~


作者: CHENZHIRONG    时间: 2005-11-26 21:04
标题: 回复:(Threaten)请大侠看看,我按你说的做了,在Sell...
你的代码看起来太累了。[attach]14420[/attach]

作者: Threaten    时间: 2005-11-26 22:04
[em04]对不起,我没有看出来是什么地方错了,做了什么改动?

能告诉我吗?

不好意思,[em04]
作者: CHENZHIRONG    时间: 2005-11-26 22:28
"WHERE (((Selling_Detail.Ticket_Item)=" & Me.Ticket_Item_TextBox & ") AND ((Selling_Detail.ID_No)='" & Me.ID_TextBox & "') AND ((Selling_Detail.Return)=False));"
作者: 方漠    时间: 2005-11-27 04:25
Pls copy it to your database:

Rstr = "SELECT Count(Selling_Detail.Ticket_No) AS QtySum FROM Selling_Detail " _
& "WHERE (((Selling_Detail.Ticket_Item)=" & [Forms]![Selling_Form]![Ticket_Item_TextBox] & ") AND ((Selling_Detail.ID_No)='" & [Forms]![Selling_Form]![ID_TextBox] & "') AND ((Selling_Detail.Return)=False));"







欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3