Office中国论坛/Access中国论坛

标题: [原创]先进先出法核算成本例子 [打印本页]

作者: andymark    时间: 2006-6-30 05:39
标题: [原创]先进先出法核算成本例子
采用类似补银行存款的方式,核算先进先出法。平时并不需要对出货单价进行成本核算,月未或需查询时执行更新即可,特适合不需即时核算单价,会计制度不规范的企业。在输出报表时必须以日期,单据号进行排序方显示正确。

[attach]18818[/attach]
   (修正了进货单 退货结算的问题)

[此贴子已经被作者于2006-6-30 20:16:09编辑过]


作者: zx1688    时间: 2006-6-30 06:03
谢谢分享,正想找这方面的东西
作者: FIFI    时间: 2006-6-30 16:34
发现了一个我之前就发现的类似问题:

    当我们选择了查询项之后,如选择好商品名称“XXXXXXX”就出现了该商品的所有信息,如果这个时候点击了“更新”然后又不小心点到了子窗体的某个地方的话,所有的数据都变成了“#已删除的”。这是为什么呀?
作者: andymark    时间: 2006-6-30 16:59
以下是引用FIFI在2006-6-30 8:34:00的发言:


发现了一个我之前就发现的类似问题:

    当我们选择了查询项之后,如选择好商品名称“XXXXXXX”就出现了该商品的所有信息,如果这个时候点击了“更新”然后又不小心点到了子窗体的某个地方的话,所有的数据都变成了“#已删除的”。这是为什么呀?

    那是因为更新后,子窗体没有同步更新 ,在更新事件中增加刷新子窗体:

   Private Sub Cmd更新_Click()
       BdJh                    '补登进货资料
       Xjxc                      '按先进先出核算出货单价
      Checkdj                 '检查单据是否OK,适合按单据支付企业
      BdYe                      '补登数量金额结余数
      Cmd查询_Click      '刷新子窗体
End Sub
作者: FIFI    时间: 2006-6-30 17:19
    1、比如你的“spdm”为“010102-50-165-035”的,在06-01-22日这天的发货数量和发货金额是负数,表示退货是吗?

    2、比如我要求查询的时候,要求商品名称、开始日期、截止日期都不能为空,那么代码应该怎么改?
作者: andymark    时间: 2006-6-30 17:44
以下是引用FIFI在2006-6-30 9:19:00的发言:


    1、比如你的“spdm”为“010102-50-165-035”的,在06-01-22日这天的发货数量和发货金额是负数,表示退货是吗?

    2、比如我要求查询的时候,要求商品名称、开始日期、截止日期都不能为空,那么代码应该怎么改?



  1.负数代表退货

       2.把查询代码修改为下面的,同时调整开始日期结束日期顺序,使期先于商品代码输入

 Private Sub Cmd查询_Click()
      
    strWhere = ""
   
    If IsNull(Me.TxtSpdm) Then
       MsgBox "商品代码不能为空"
       Me.TxtSpdm.SetFocus
       Exit Sub
    End If
   
    If IsNull(Me.TxtBd) Then
        MsgBox "日期不能为空"
        Me.TxtBd.SetFocus
        Exit Sub
    End If
   
    If IsNull(Me.TxtEd) Then
        MsgBox "日期不能为空"
        Me.TxtEd.SetFocus
        Exit Sub
    End If
     
     If Me.TxtEd < Me.TxtBd Then
         MsgBox "结束日期必须大于等于开始日期"
         Exit Sub
     End If
     
     strWhere = strWhere & "([spdm] = '" & Me.TxtSpdm & "') AND "
     strWhere = strWhere & "([kdrq] >= #" & Format(Me.TxtBd, "yyyy-mm-dd") & "#) AND "
     strWhere = strWhere & "([kdrq] <= #" & Format(Me.TxtEd, "yyyy-mm-dd") & "#) AND "
   
     strWhere = Left(strWhere, Len(strWhere) - 5)
   
    Me.Frmjxhnr.Form.Filter = strWhere
    Me.Frmjxhnr.Form.FilterOn = True
   
End Sub
作者: 青青    时间: 2006-6-30 20:08
andymark,能否将计算的原理大概介绍一下,便于大家阅读和移植您的代码。

另外我问一下:

退货的单价是否按退货时点的先进先出计算退货单价?因为有些企业是按原出库时的单价退货的。

多人共同执行这操作是否会有问题?每执行一次要删除表里记录,运行多了,数据库是否会膨胀?


作者: wjb5645    时间: 2006-6-30 22:47
很好哟,看来还要学学ADO了,

谢谢andymark,幸苦了
作者: andymark    时间: 2006-7-1 04:38
以下是引用青青在2006-6-30 12:08:00的发言:


andymark,能否将计算的原理大概介绍一下,便于大家阅读和移植您的代码。

另外我问一下:

退货的单价是否按退货时点的先进先出计算退货单价?因为有些企业是按原出库时的单价退货的。

多人共同执行这操作是否会有问题?每执行一次要删除表里记录,运行多了,数据库是否会膨胀?




     退货包含进货退货和出货退货

     在进货退货,可以采用原来的单价,而出货退货必须要在单据标明具体那批货才能处理

     更新了代码,重置自动编号的初始值(其实这个可以不用管它,对数据库不会造成影响的)

     多人操作执行同时执行更新,可能不不行,但可以把它放到本地表上,就不会相互干扰
作者: 32123    时间: 2006-8-7 23:25
ddddddd
作者: 好学    时间: 2006-8-8 06:39
这个方法最合适用在库存管理[em01]
作者: narcissus82    时间: 2009-5-4 11:02
kankan
作者: fjh    时间: 2015-6-25 16:39
学习
作者: Metoo    时间: 2017-2-27 15:41
先下载看看 不知能否打开




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