Office中国论坛/Access中国论坛

标题: 月未结存的问题,求助,第二次发贴求助 [打印本页]

作者: footprint    时间: 2007-2-11 04:25
标题: 月未结存的问题,求助,第二次发贴求助
请教:月未结存的问题,如将第一个月汇总的数据追加到该表的下面,将n月改成n+1月.



请教:月未结存的问题,如将第一个月汇总的数据追加到该表的下面,将n月改成n+1月.  红色的字是要求电脑追加到该表的后面的结果,追加到后面,,

有一个窗体,下面有一个按钮命名为"本月结存"

有一张表为"信息表",以下是"信息表"的内容:

ID              日期                名称               入库

   1           2005-1-27         电脑                5

   2           2005-1-28        冰箱                 6

   3           2005-1-29         电脑                4

   4           2005-1-30         冰箱                2

按了"结存"按钮后变成:

ID              日期                名称               入库

   1           2005-1-27         电脑                5

   2           2005-1-28        冰箱                 6

   3           2005-1-29         电脑                4

   4           2005-1-30         冰箱                2

  5           2005-2-1            电脑              11  '''这里是电脑的总和, ( 按了结存后自动追加的)

  6            2005-2-1            冰箱              8   '''这里是冰箱的总和.   (按了结存后自动追加的)

感谢的话我就不说了,,,呵呵~!


作者: 一点通    时间: 2007-2-11 05:12
创建一个追加查询就行了,但我觉得你这样保存数据是不可取的,会使数据出现错乱,明细与合计数不可能都存在一个表吧,而且合计的数据在以后的计算中都可以算出来的,何必多此一举?
作者: footprint    时间: 2007-2-11 06:36
创建一个追加查询,是什么意思,如何创建?望指教
作者: andymark    时间: 2007-2-11 06:39
以下是引用footprint在2007-2-10 22:36:00的发言:
创建一个追加查询,是什么意思,如何创建?望指教

       我觉得上传例子,你会易容理解
作者: wjb5645    时间: 2007-2-11 09:04
你可把合计数跟明细合并,并排序,但要一个可行的供排序的字段,可在合并查询中预设.
作者: 蓝天8390    时间: 2007-2-11 19:07
我赞成一点通老师的观点,觉得1楼那样做确实是多此一举
作者: tz-chf    时间: 2007-2-11 19:18
哪有这种做法的,概念都没搞清。

建议先看看基础理论,再开始做数据库。
作者: footprint    时间: 2007-2-11 19:57
[em14]看来得去看看基础理论了,我买了本陈可欣的书<<accessvba>>,什么都没搞懂.
作者: 浩雨    时间: 2007-2-11 21:39
表是用来存放数据的一个容器,不要等同于表格或电子表格,是两码事,只是显示的形色与表格相同。表为查询表、窗体和报表提供数据依据,只要把数据有规律的存入表中就可以,其他的事可由查询表、窗体和报表来体现。
作者: einstein_supeng    时间: 2007-2-13 00:35
以下是引用浩雨在2007-2-11 13:39:00的发言:
表是用来存放数据的一个容器,不要等同于表格或电子表格,是两码事,只是显示的形色与表格相同。表为查询表、窗体和报表提供数据依据,只要把数据有规律的存入表中就可以,其他的事可由查询表、窗体和报表来体现。

说得好!
作者: xianbin555    时间: 2007-2-13 02:58
'说明:要求在月底汇总信息表当前月份中的内容,日期生成下月的1号,下述代码在access2000测试通过
Private Sub 命令_Click()
On Error GoTo 0
  If CurrentData.AllTables!信息表.IsLoaded = True Then
  DoCmd.Close acTable, "信息表"
  End If                                                        '在汇总之前如果信息表打开则关闭信息表
Dim rs As ADODB.Recordset
Dim rsa As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open "select 名称,sum(入库) as 入库,month(日期) as 日期 from 信息表 group by 名称, month(日期) having month(日期)=month(now())", _
CurrentProject.Connection, adOpenKeyset, adLockOptimistic      '使用查询打开打开当前月份汇总记录集
  If rs.EOF Then                                               '如果查询内容为空,退出过程
  MsgBox "信息表中当前月份没有记录"
  Exit Sub
  End If
Set rsa = New ADODB.Recordset
rsa.Open "select 名称,入库,日期 from 信息表", CurrentProject.Connection, adOpenKeyset, adLockOptimistic    '打开信息表记录集
Do Until rs.EOF
rsa.AddNew
rsa!名称 = rs!名称 & Month(Now()) & "月汇总"
rsa!入库 = rs!入库
rsa!日期 = CDate(Year(Now()) & "-" & Month(Now()) + 1 & "-1")
rs.MoveNext
Loop
MsgBox "信息表中" & Month(Now()) & "月份内容汇总成功!"
Set rsa = Nothing
Set rs = Nothing
0:
End Sub

作者: footprint    时间: 2007-2-15 03:26
o
作者: footprint    时间: 2007-2-15 03:36
感谢xianbin555




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