设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 3492|回复: 27
打印 上一主题 下一主题

[模块/函数] 汇总语句总是不对 帮忙啊

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-7 15:28:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 shitou1ge 于 2009-4-7 15:34 编辑

图片中zzz  为主机  zzz=zzz\001+zzz\003+zzz\11+zzz\12   可是我的总是没有数字显示  倒底是咋回事 小妹请大家帮忙


Private Sub 主机统计()
  Dim jilu As Long, i As Long, j As Long, BBB As String
  Dim AAA As Long, sum
  
    DoCmd.OpenForm "定额明细总表1", , , , , acHidden
Forms!定额明细总表1.Requery
  jilu = DCount("cpbm", "汇总表")

  For i = 1 To jilu
   If IsNull(Forms!定额明细总表1!CPLX) Then
    Else
        If Forms!定额明细总表1!CPLX = "主机" Then
           AAA = Forms!定额明细总表1!编号
           BBB = Forms!定额明细总表1!CPBM

        
            sum = 0

            DoCmd.GoToRecord , "定额明细总表1", acFirst
            For j = 1 To jilu
      If (Forms!定额明细总表1!CPLX = "组件" Or Forms!定额明细总表1!CPLX = "零件") Then
    If Forms!定额明细总表1!CPBM Like BBB & "*" And Len(Forms!定额明细总表1!CPBM) < 8 Then
       sum = sum + Forms!定额明细总表1!CLGYZJE
        End If
        End If
              DoCmd.GoToRecord acDataForm, "定额明细总表1", acNext
            Next
             DoCmd.GoToRecord acDataForm, "定额明细总表1", acGoTo, AAA
            

            
             Forms!定额明细总表1!CLGYZJE = sum
                    End If
    End If
    DoCmd.GoToRecord acDataForm, "定额明细总表1", acNext
  Next
    DoCmd.Close acForm, "定额明细总表1"
End Sub

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2009-4-7 15:36:45 | 只看该作者
有时去掉 Or Forms!定额明细总表1!CPLX = "零件" 这一句  zzz就能显示 但是不包括 zzz\001和zzz\003的值了
3#
发表于 2009-4-7 16:08:50 | 只看该作者
你把如下不等于"主机"的语句块放在等于"主机"的If条件中,当然不会得到你想要的结果啦。
If (Forms!定额明细总表1!CPLX = "组件" Or Forms!定额明细总表1!CPLX = "零件") Then
4#
 楼主| 发表于 2009-4-7 16:37:12 | 只看该作者
不是的  你看DoCmd.GoToRecord , "定额明细总表1", acFirst 这一句 是又从第一条记录开始查找的 
5#
 楼主| 发表于 2009-4-7 16:38:55 | 只看该作者
6#
发表于 2009-4-7 17:33:01 | 只看该作者
本帖最后由 koutx 于 2009-4-7 17:41 编辑

If Forms!定额明细总表1!CPLX = "主机" Then'看看这条If语句的End If在什么位置????
           AAA = Forms!定额明细总表1!编号
        BBB = Forms!定额明细总表1!CPBM
            sum = 0
            DoCmd.GoToRecord , "定额明细总表1", acFirst
            For j = 1 To jilu'                           For循环块只会运行最后一句!
                If (Forms!定额明细总表1!CPLX = "组件" Or Forms!定额明细总表1!CPLX = "零件") Then
            If Forms!定额明细总表1!CPBM Like BBB & "*" And Len(Forms!定额明细总表1!CPBM) < 8 Then
          sum = sum + Forms!定额明细总表1!CLGYZJE
             End If
              End If
            DoCmd.GoToRecord acDataForm, "定额明细总表1", acNext'只运行此一句
           Next
          DoCmd.GoToRecord acDataForm, "定额明细总表1", acGoTo, AAA        
          Forms!定额明细总表1!CLGYZJE = sum
End If'                                                                                    在这那
7#
 楼主| 发表于 2009-4-7 19:34:10 | 只看该作者
本帖最后由 shitou1ge 于 2009-4-7 19:49 编辑

8#
 楼主| 发表于 2009-4-7 19:49:06 | 只看该作者
我也是个新手 请大哥指教
If Forms!定额明细总表1!CPLX = "主机" Then   
           AAA = Forms!定额明细总表1!编号
           BBB = Forms!定额明细总表1!CPBM
以上是当在表中找到为“主机“时  在这条记录上做一标记 记下其编号为 AAA

DoCmd.GoToRecord , "定额明细总表1", acFirst   '这一句不是又回到定额明细表1 的第一条记录吗?以下循不是从第一条记录开始吗 ,不会找到批配的记录吗?  
For j = 1 To jilu'                           
If (Forms!定额明细总表1!CPLX = "组件" Or Forms!定额明细总表1!CPLX = "零件") Then
 If Forms!定额明细总表1!CPBM Like BBB & "*" And Len(Forms!定额明细总表1!CPBM) < 8 Then
          sum = sum + Forms!定额明细总表1!CLGYZJE
     End If
End If
            DoCmd.GoToRecord acDataForm, "定额明细总表1", acNext
Next
此段 循环不是又从第一条开始到最后一条 寻找匹配记录吗 应该不受 前面 =”主机“ 条件的限制吧?
DoCmd.GoToRecord acDataForm, "定额明细总表1", acGoTo, AAA      
这句是回到刚才的记录点 也就是=”主机“的那条记录的位置
9#
 楼主| 发表于 2009-4-7 19:50:57 | 只看该作者
请大哥帮忙哦
10#
 楼主| 发表于 2009-4-8 10:36:23 | 只看该作者
唉 还没找到原因 就要沉底啦 救命啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-9 18:28 , Processed in 0.112205 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表