Office中国论坛/Access中国论坛

标题: 在窗体中如何设置主窗体的数量是子窗体的合计数量? [打印本页]

作者: pwj2009    时间: 2011-12-29 08:55
标题: 在窗体中如何设置主窗体的数量是子窗体的合计数量?
有2个表,。 表1中有字段为数字类型的 车、磨。
                    表2中有字段为数字类型的车工序、磨工序


要求。。表2对应表1.(1对多)。。。表1中的车子段自动生成是表2车工序的总计数
                                                            表1中的车子段自动生成是表2车工序的总计数
作者: Henry D. Sy    时间: 2011-12-29 10:55
库中找不到你所描述的问题窗口
作者: pwj2009    时间: 2011-12-30 01:14
...重新上传,修改了一下说明,请在看看!!
作者: pwj2009    时间: 2011-12-30 01:15
已经重新上产数据库,并做了解释,请再帮忙看看!
作者: Henry D. Sy    时间: 2011-12-30 09:41
什么下拉表?
作者: Henry D. Sy    时间: 2011-12-30 10:06
也不知道是不是这个意思
  1. Private Sub Form_Load()
  2.     Dim rs As DAO.Recordset
  3.     Set rs = Me.RecordsetClone
  4.     With rs
  5.         .MoveLast
  6.         .MoveFirst
  7.         Do While Not .EOF
  8.             .Edit
  9.             .Fields("车") = DSum("车工序", "加工工序", "图号='" & .Fields("图号") & "'")
  10.             .Fields("磨") = DSum("磨工序", "加工工序", "图号='" & .Fields("图号") & "'")
  11.             .Update
  12.             .MoveNext
  13.         Loop
  14.     End With
  15.     rs.Close
  16.     Set rs = Nothing
  17. End Sub
复制代码

作者: Henry D. Sy    时间: 2011-12-30 10:07
为什么总是喜欢把能通过查询计算得来的数据保存到表呢?
作者: ycxchen    时间: 2011-12-31 15:14
Henry D. Sy 发表于 2011-12-30 10:06
也不知道是不是这个意思

在我的电脑运行不行,提示对RecordsetClone属性的无效引用,如何解决?
作者: Henry D. Sy    时间: 2011-12-31 15:35
引用dao
作者: ycxchen    时间: 2011-12-31 17:22
本帖最后由 ycxchen 于 2011-12-31 17:24 编辑

已经引用DAO 3.6 object  Libyary,问题不解决。请指教。
作者: Henry D. Sy    时间: 2011-12-31 23:19
ycxchen 发表于 2011-12-31 17:22
已经引用DAO 3.6 object  Libyary,问题不解决。请指教。

传例子,不要猜这猜哪的。
作者: ycxchen    时间: 2012-1-1 08:43
[attach]47874[/attach]请版主指教。
作者: Henry D. Sy    时间: 2012-1-1 09:25
ycxchen 发表于 2012-1-1 08:43
请版主指教。

你将代码放错窗体了[attach]47875[/attach]

作者: ycxchen    时间: 2012-1-1 11:57
学习了,感谢!
作者: pwj2009    时间: 2012-1-2 09:53
Henry D. Sy  版主,你这方法,是要加载才可以。我下拉表更新数据后,不会立刻显示统计数据,我加了刷新也不行。怎样做到我更新下拉表,上面的表马上可以更新?,
作者: pwj2009    时间: 2012-1-2 09:53
本帖最后由 pwj2009 于 2012-1-2 10:06 编辑
Henry D. Sy 发表于 2012-1-1 09:25
你将代码放错窗体了


Henry D. Sy  版主,你这方法,是要加载才可以。我下拉表更新数据后,不会立刻显示统计数据,我加了刷新也不行。怎样做到我更新下拉表,上面的表马上可以更新

             我在子窗体1更新后加入事件:
            Dim rst2 As DAO.Recordset '定义ADO数据集
             Set rst2 = CurrentDb.OpenRecordset("SELECT * FROM 工序 Where 图号=" & Me.图号 & "", dbOpenDynaset, dbSeeChanges)
        rst2.Edit
        rst2![车] = DSum("车工序", "加工工序", "图号=" & Me.图号 & "") '铆焊加工
        rst2![磨] = DSum("磨工序", "加工工序", "图号=" & Me.图号 & "")
  rst1.Update
        rst1.Close
        Forms!主窗体!子窗体.Form.Recalc

运行错误提示:标准表达式中数据类型不匹配,。

作者: Henry D. Sy    时间: 2012-1-2 10:00
pwj2009 发表于 2012-1-2 09:53
Henry D. Sy  版主,你这方法,是要加载才可以。我下拉表更新数据后,不会立刻显示统计数据,我加了刷新也 ...

那就在下拉表更新后,重新运行一下,加载的代码?
为何不用查询来计算你,非要保存这中能通过计算的数据呢,很容易出错的。(比如没有及时重新运行代码)
作者: Henry D. Sy    时间: 2012-1-2 10:18
应该把加工表中的什么车呀,磨呀去掉!
然后,将下面的语句作为子窗体的窗体记录源
  1. SELECT 加工工序.图号, 工序.品名, 工序.规格型号, Sum(加工工序.车工序) AS 车, Sum(加工工序.磨工序) AS 磨
  2. FROM 加工工序 LEFT JOIN 工序 ON 加工工序.图号 = 工序.图号
  3. GROUP BY 加工工序.图号, 工序.品名, 工序.规格型号;
复制代码
[attach]47898[/attach]
作者: pwj2009    时间: 2012-1-2 10:32
Henry D. Sy 发表于 2012-1-2 10:00
那就在下拉表更新后,重新运行一下,加载的代码?
为何不用查询来计算你,非要保存这中能通过计算的数据 ...

我试过了,在更新后加入加载的代码,出错,。:这个项目中找不到此项目
作者: Henry D. Sy    时间: 2012-1-2 10:48
类型不匹配
可能你没有引用dao
或者没有分清,文本和数字型
这个项目中找不到此项目
引用了根本不存在地控件(字段名称)
作者: Henry D. Sy    时间: 2012-1-2 11:02
Where 图号=" & Me.图号
这个Me.图号 哪里来的
作者: pwj2009    时间: 2012-1-2 11:06
Henry D. Sy 发表于 2012-1-2 10:48
类型不匹配
可能你没有引用dao
或者没有分清,文本和数字型

就在这个文件中的,肯定是数字类型的。。

字段,都是在这文件,肯定有的啊!
作者: Henry D. Sy    时间: 2012-1-2 11:33
把你的问题库传上来
作者: Henry D. Sy    时间: 2012-1-2 11:36
为什么不用18楼的方法?




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