Office中国论坛/Access中国论坛

标题: 请教编箱号的问题 [打印本页]

作者: zuiyue    时间: 2008-8-4 10:08
标题: 请教编箱号的问题
各位大虾:
请问以下编箱号是怎样做的?我要的是编箱号栏是自动生成的,分两栏也可以。
货号箱数编箱号
WWW-568951-5
WWW-5690156-20
WWW-56911021-30
WWW-56923031-60
WWW-569310061-160

......
谢谢了!

[ 本帖最后由 zuiyue 于 2008-8-4 14:12 编辑 ]
作者: zhouyunliang    时间: 2008-8-4 12:05
定义一个自定义函数放在模块中
private sTotal as long
public function GetXH(byvar xs as long,TotalXS as long) as string
if stotal=0 or stotal>=totalxs then stotal=1
stotal=stotal+xh
getxh=stotal-xh & "-" & stotal
end function
xs为当前记录箱数,TotalXS为总箱数,用于初始化
作者: kevindeng    时间: 2008-8-4 12:25
SELECT 表1.货号, 表1.箱数, (DSum("箱数","表1","[货号]<='" & [货号] & "'")-[表1]![箱数]+1) & "-" & DSum("箱数","表1","[货号]<='" & [货号] & "'") AS 编箱号
FROM 表1;

最后的那个应该是61-160吧
作者: siliconxu    时间: 2008-8-4 12:49
见附件

Sorry, 用了Excel了……因为我觉得你这个用Excel好像更适合一点……

[ 本帖最后由 siliconxu 于 2008-8-4 13:14 编辑 ]
作者: zuiyue    时间: 2008-8-4 14:10
感谢!
我是想在ACCESS中做好编号,哪位大虾可以给个实例?谢谢!

[ 本帖最后由 zuiyue 于 2008-8-4 14:11 编辑 ]
作者: kevindeng    时间: 2008-8-4 14:35
看查询1
作者: zuiyue    时间: 2008-8-4 16:47
谢谢!我做来看看。复杂点的可能我搞不懂。
作者: zuiyue    时间: 2008-8-5 11:04
kevindeng:
你好!
你给出的很好,谢谢!
你是用“货号”加进去的,如果货号好像下面不是按顺序排列的话,是否还可以自动生成“箱号”?
如果加多一栏序号的话,是否可以?
我是才学ACCESS的,很多不懂,但为了减轻工作量,才用ACCESS的。
请大虾给再写一个附件,叩谢了!
序号货号箱数编箱号
01WWW-568951-5
02CWE-2354156-20
03ABF-35611021-30
04WSA-53563031-60
05ASS-785410061-160

作者: kevindeng    时间: 2008-8-5 12:02
加个ID号,ID为自动编号就可以了,查询改成
SELECT 表1.ID, 表1.货号, 表1.箱数, (DSum("箱数","表1","[ID]<=" & [ID])-[表1]![箱数]+1) & "-" & DSum("箱数","表1","[ID]<=" & [ID]) AS 编箱号
FROM 表1;
作者: zuiyue    时间: 2008-8-5 13:57
请问kevindeng:
如果箱数是用查询计算出来的可以吗?
(箱数=数量/装量)
叩谢!
作者: kevindeng    时间: 2008-8-5 14:23
把查询中的箱数替换成数量/装量就可以了
作者: zuiyue    时间: 2008-8-5 16:27
非常感谢kevindeng,可以做出来了。
在没有条件参数查找的情况下可以做到,在一个庞大的数据库中,需要查找一个参数值来实现每个参数都从1开始编排,可以做到吗?
比如下面用“合同号”来做参数查找:
合同号序号货号箱数编箱号
2008-0011WWW-568951-5
2008-0012CWE-2354156-20
2008-0013ABF-35611021-30
2008-0014WSA-53563031-60
2008-0015ASS-785410061-160
2008-0251CF-256101-10
2008-0252CF-365511-15
2008-0253CF-Q333016-45
2008-0281M-12551-5
2008-0282MD-426-7
2008-0283AF-438-10
2008-0284PO-34411-14

叩谢!

[ 本帖最后由 zuiyue 于 2008-8-5 16:33 编辑 ]
作者: kevindeng    时间: 2008-8-6 12:38
在查询中加个合同号的条件就可以了啊
SELECT 表1.合同号, 表1.序号, 表1.货号, 表1.数量, 表1.每箱数量, 表1!数量/表1!每箱数量 AS 箱数, (DSum("[数量]/[每箱数量]","表1","[合同号]='" & [合同号] & " ' AND [序号]<=" & [序号])-[数量]/[每箱数量]+1) & "-" & DSum("[数量]/[每箱数量]","表1","[合同号]='" & [合同号] & " ' AND [序号]<=" & [序号]) AS 编箱号
FROM 表1
ORDER BY 表1.合同号, 表1.序号;

[ 本帖最后由 kevindeng 于 2008-8-6 12:39 编辑 ]
作者: zuiyue    时间: 2008-8-6 13:56
谢谢!
小弟做来看看!
作者: sbhkie    时间: 2010-11-12 12:05
问一下,下一个供应商也从一开始怎改好点




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