Office中国论坛/Access中国论坛

标题: 关分批收货输单问题(附件) [打印本页]

作者: luhao    时间: 2009-4-10 22:01
标题: 关分批收货输单问题(附件)
本帖最后由 luhao 于 2009-4-11 12:33 编辑

在日常工作中,对于订单大的,仓库收货不可能一次性收完,如分2批,3批收同一分订单的货。也是同一分订购单可能分数日,数次才能收完。
这个问题思考了近个星期,不知从那儿入手。

望老师们给个思路,最好有个简单的例子。
作者: fd901028    时间: 2009-4-10 22:15
采用批次管理(批号可同订单号)。考虑可建一查询,将历次入库总计一下,在改批次号录入后(刷新一下该查询)显示在入库单据上。
作者: luhao    时间: 2009-4-10 22:41
采用批次管理(批号可同订单号)。考虑可建一查询,将历次入库总计一下,在改批次号录入后(刷新一下该查询)显示在入库单据上。
fd901028 发表于 2009-4-10 22:15

j是不是,以订单为主表,分多个入库主表,而入库明细表的数据是来自订单的。总入库数量不可能比订单货品数量多
作者: ACMAIN_CHM    时间: 2009-4-10 22:56

create table PO
(
    PONO    COUNTER constraint pk_PO primary key,
    PODate    date,
    Buyer    varchar(6),
    Vendor    varchar(6),
    .....
)

create table POitem
(
    PONO        long constraint fk_POitem_PO references PO(PONO),
    POITEMNO    integer,
    MaterialNo    varchar(8),
    Qty            double,
    Price        currency,
    Uom            varchar(10),
    Amt            currency,
    deliverDay    date,
    ...
    constraint pk_POitem PRIMARY KEY (PONO,POITEMNO)
)

create table GoodReceiving
(
    GRNO        COUNTER constraint pk_GoodReceiving primary key,
    MaterialNo    varchar(8),
    Qty            double,
    BatchNo        varchar(10),
    Price        currency,
    Amt            currency,
    GRdate        date,
    PONO        long,
    POitem        integer,
    constraint fk_GoodReceiving_POitem FOREIGN KEY (PONO,POITEMNO) REFERENCES POitem (PONO,POITEMNO)
   
)



******************
*  一切皆有可能  *
******************

.
ACMAIN - Access论坛回贴准则(个人).
.


作者: fd901028    时间: 2009-4-10 22:57
入库明细数量录入后刷新一下Dlookup 一下累计入库数量,超了订单数量 就msgbox “超了!”
作者: luhao    时间: 2009-4-11 12:34
create table PO
(
    PONO    COUNTER constraint pk_PO primary key,
    PODate    date,
    Buyer    varchar(6),
    Vendor    varchar(6),
    .....
)

create table POitem
(
    PONO     ...
ACMAIN_CHM 发表于 2009-4-10 22:56


可以帮我修改下吗
作者: todaynew    时间: 2009-4-11 13:09
本帖最后由 todaynew 于 2009-4-11 13:11 编辑

你的表的基本思路没问题,只要订单表与入仓表一对多就可以了。不过有一个建议:
订单明细表与入仓明细表应加【定货ID】,一个为主键一个为外键,并且也是一对多关系。这样具体货品的统计就没有问题了。
作者: luhao    时间: 2009-4-11 17:43
你的表的基本思路没问题,只要订单表与入仓表一对多就可以了。不过有一个建议:
订单明细表与入仓明细表应加【定货ID】,一个为主键一个为外键,并且也是一对多关系。这样具体货品的统计就没有问题了。
todaynew 发表于 2009-4-11 13:09

这样做,表的结构很像很乱,能修改个例子吗
作者: luhao    时间: 2009-4-11 17:43
你的表的基本思路没问题,只要订单表与入仓表一对多就可以了。不过有一个建议:
订单明细表与入仓明细表应加【定货ID】,一个为主键一个为外键,并且也是一对多关系。这样具体货品的统计就没有问题了。
todaynew 发表于 2009-4-11 13:09

这样做,表的结构很像很乱,能修改个例子吗
作者: todaynew    时间: 2009-4-11 19:12
本帖最后由 todaynew 于 2009-4-11 19:47 编辑
这样做,表的结构很像很乱,能修改个例子吗
luhao 发表于 2009-4-11 17:43

[attach]37252[/attach]
[attach]37249[/attach][attach]37251[/attach]

[attach]37250[/attach]


Private Sub 订货ID_AfterUpdate()
   Me.产品.Value = DLookup("产品", "订单明细", "订货ID=" & Me.订货ID)
   Me.数量.Value = DLookup("数量", "订单明细", "订货ID=" & Me.订货ID) - Nz(DSum("数量", "入仓明细", "订货ID=" & Me.订货ID), 0)
End Sub


Private Sub 订货ID_Enter()
   Dim str As String
   str = "select 订货ID,产品,数量 from 订单明细 where 订单号='" & Me.Parent.Form.订单号 & "'"
   Me.订货ID.RowSource = str
End Sub

说明:入仓数量默认为订单数量减已入库数量,可以根据本次实际入库数量进行修改。

作者: luhao    时间: 2009-4-12 21:28
37252
3724937251

37250


Private Sub 订货ID_AfterUpdate()
   Me.产品.Value = DLookup("产品", "订单明细", "订货ID=" & Me.订货ID)
   Me.数量.Value = DLookup("数量", "订单明细", "订货ID=" & Me ...
todaynew 发表于 2009-4-11 19:12

谢谢




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