Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

回复 加入收藏帖  复制
我要提问 帖子上移

[5分]请教两个表对应日期求和

雨泉 等级: 一星助教★ 积分:150 金币:756 来自:金昌Access交流中心 发表于:2019-06-23 22:29:00   已结帖
楼主

现在有两个表  分别是:  牛只账目价值表  和  牛只养殖成本表

(请下载附件)

牛只账目价值表中   有  牛号是8785的这头牛,出生在2017/11/6,断奶日期是2018/2/6,也就是说从2017年11月6日出生到2018年2月6日之间,这段时间这头牛都是哺乳犊牛阶段,是吃奶的。
根据  牛只养殖成本 这张表 可以查出2017年11月6日出生到2018年2月6日之间  每一天的饲养成本(哺乳列的值就是日养殖成本,2019年6月1日哺乳犊牛一天吃1元)。


现在的问题是:如何用代码将8785这头牛2017年11月6日出生到2018年2月6日这段时间的饲养成本填入   牛只账目价值  表的  账目价值列中。
简单点将:已知饲养日期   和  每天的饲养费用,  求这段时间的饲养金额;   即对期间的养殖成本求和。

请用VBA代码实现,查询我自己就能搞定。

点击下载此附件

 

access培训  诚聘access开发人员

    雨泉
      获得社区协助:请教问题(即发帖)1篇,其中获得解决的1篇;
      协助社区成员:协助他人(即回帖)4篇,其中被设为【最佳答案】的2篇;
      协助我们社区:发布技术文章15篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
Top

扫描下方工作人员的微信二维码加微信,邀您加入Access课堂微信群,进入一个技术交际圈:

网站工作人员微信

chinasa 等级:贵宾★★★★★ 积分:871 金币:120 来自:宁波Access交流中心 发表于2019/6/26 15:55:38 
1楼 得分: 0

Dim ConnDB As New ADODB.Connection
Dim ConnStr As String

Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Dim Jz
Jz = 0
rs1.Open "牛只账面价值", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs2.Open "牛只养殖成本", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

rs1.MoveFirst
Do Until rs1.EOF
If rs1("牛号") = "8785" Then
   rs2.MoveFirst
   Do Until rs2.EOF
   If Format(rs2("日期"), "yyyy-mm-dd") >= Format(rs1("出生日期"), "yyyy-mm-dd") And Format(rs2("日期"), "yyyy-mm-dd") <= Format(rs1("断奶日期"), "yyyy-mm-dd") Then
   Jz = Jz + rs2("哺乳")
   End If
   rs2.MoveNext
   Loop

rs1("账面价值") = Jz
rs1.Update
End If

rs1.MoveNext
Loop

MsgBox Jz

 


rs1.Close
Set rs1 = Nothing
rs2.Close
Set rs2 = Nothing



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    chinasa
      获得社区协助:请教问题(即发帖)123篇,其中获得解决的113篇;
      协助社区成员:协助他人(即回帖)839篇,其中被设为【最佳答案】的219篇;
      协助我们社区:发布技术文章3篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
chinasa 等级:贵宾★★★★★ 积分:871 金币:120 来自:宁波Access交流中心 发表于2019/6/26 15:56:51 
2楼 得分: 0

你有两个8785,如果只是测试数据也就罢了,如果实际业务中确实有牛号重复的问题,那需要进行特殊处理。

如果运行出错,请看下ADO是否引用。



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    chinasa
      获得社区协助:请教问题(即发帖)123篇,其中获得解决的113篇;
      协助社区成员:协助他人(即回帖)839篇,其中被设为【最佳答案】的219篇;
      协助我们社区:发布技术文章3篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
雨泉 等级:一星助教★ 积分:150 金币:756 来自:金昌Access交流中心 发表于2019/6/27 15:48:12 
3楼 得分: 0
您好,chinasa,首先非常感谢您给我回复,我也用您的代码测试了一下效果,可运行,但需要一头牛一头的去测试,我牧场奶牛九千多只,我希望能够自动对每头牛进行测算。您是否可以办完改一下?

    雨泉
      获得社区协助:请教问题(即发帖)1篇,其中获得解决的1篇;
      协助社区成员:协助他人(即回帖)4篇,其中被设为【最佳答案】的2篇;
      协助我们社区:发布技术文章15篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
雨泉 等级:一星助教★ 积分:150 金币:756 来自:金昌Access交流中心 发表于2019/6/27 21:50:31 
4楼 得分: 0
您好,chinasa,不好意思,上面帖子把字打错了。能否给我继续完善一下代码,因为您给我的代码 不能自动按牛号计算养殖成本,我想实现自动计算。

    雨泉
      获得社区协助:请教问题(即发帖)1篇,其中获得解决的1篇;
      协助社区成员:协助他人(即回帖)4篇,其中被设为【最佳答案】的2篇;
      协助我们社区:发布技术文章15篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
chinasa 等级:贵宾★★★★★ 积分:871 金币:120 来自:宁波Access交流中心 发表于2019/6/28 8:02:42 最佳答案
5楼 得分: 5

Dim ConnDB As New ADODB.Connection
Dim ConnStr As String

Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Dim Jz
Jz = 0
rs1.Open "牛只账面价值", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs2.Open "牛只养殖成本", CurrentProject.Connection, adOpenKeyset, adLockOptimistic

rs1.MoveFirst
Do Until rs1.EOF
'If rs1("牛号") = "8785" Then
   rs2.MoveFirst
   Do Until rs2.EOF
   If Format(rs2("日期"), "yyyy-mm-dd") >= Format(rs1("出生日期"), "yyyy-mm-dd") And Format(rs2("日期"), "yyyy-mm-dd") <= Format(rs1("断奶日期"), "yyyy-mm-dd") Then
   Jz = Jz + rs2("哺乳")
   End If
   rs2.MoveNext
   Loop

rs1("账面价值") = Jz
rs1.Update
'End If

rs1.MoveNext
Loop

'MsgBox Jz

 


rs1.Close
Set rs1 = Nothing
rs2.Close
Set rs2 = Nothing
MsgBox "ok"



    很高兴与您就本帖子进行交流,如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,我也将获得2个积分奖励,并不会减少您的积分!
    chinasa
      获得社区协助:请教问题(即发帖)123篇,其中获得解决的113篇;
      协助社区成员:协助他人(即回帖)839篇,其中被设为【最佳答案】的219篇;
      协助我们社区:发布技术文章3篇,邀请了0名新会员注册本社区(如何邀请会员注册,详见:http://www.accessoft.com/sitehelp.asp)。
张志 等级:管理员★★★★★ 积分:108510 金币:41640 来自:上海Access交流中心 发表于2019/6/29 10:24:45 
6楼 得分: 0
Private Sub btnCal_Click()
    Dim rst As New ADODB.Recordset
    Dim startDate As String ' 开始日期,由于dlookup函数里要用作条件,需要加#号,故设置为文本型
    Dim endDate As String '结束日期
    rst.Open "牛只账面价值", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    
    rst.MoveFirst
    Do Until rst.EOF
        startDate = "#" & Format(rst!出生日期, "yyyy-mm-dd") & "#"
        endDate = "#" & Format(rst!断奶日期, "yyyy-mm-dd") & "#"
        rst!账面价值 = DSum("[哺乳]", "牛只养殖成本", "[日期] between " & startDate & " And " & endDate)
        rst.Update
        rst.MoveNext
    Loop
    rst.Close
    Set rst = Nothing
    MsgBox "ok"
    
End Sub


    希望我的回答能解决了您的问题,或者所附上的这些信息对您有所帮助!如有任何疑问或需要进一步帮助,请您直接在本站发贴,我们非常乐意帮助您解决问题!
    如果我的回答已经解决了您的问题,请点击上方的“最佳答案”,这样本帖子就不会在“待解决问题区”显示了,以方便大家对那些正在等待解决的帖子给予关注!
    张志  [协助社区成员回帖2838篇,其中【最佳答案】1139篇;发布技术文章1041篇。]
    UMVSoft在线支持工程师
    http://www.umvsoft.com
    QQ:2851379730 点击这里给张志发消息
    如果您没有注册这个论坛,请单击下面的链接进行注册,与我在论坛进行交流:
    http://www.accessoft.com/reg/reg.asp?userid=8
    本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。
总记录:6篇  页次:1/1 9 1 :
您还没有在Access软件网登录不能回复帖子
  • 你没有登录,请点击后面链接登录:登录
  • 如果你没有注册,请点击后面链接注册:注册,注册完成后,请再次访问本页功能。