注册 登录
编程论坛 VB6论坛

vb入库单编号怎么按数据库的编号列里的最大值加上1显示在窗体上单击按钮再次保存在数据库中的编号列里

w5781776 发布于 2016-06-03 20:55, 3403 次点击
只有本站会员才能查看附件,请 登录
5 回复
#2
chen35232016-06-04 16:35
我的蠢办法是设一text控件与ymxshz同步,即通过Adodc控件同步,在添加确认前Number=Right(text,5)
Adodc1.Recordset("ymxshz") = Number+1
#3
ZHRXJR2016-06-04 17:45
第一步,在入库前首先得到最后记录的编号,存储在一个变量中,例如存储在BH这个变量中;
第二步,截取变量的后9位:BH = Right(BH, 9)得到了例如201600001;
第三步,BH = CStr(Val(BH) + 1),使编号增加1,Val(BH)是转换为数字,然后加1,再转换为字符串
第四步,BH = "cdfy" & BH,在BH的左边增加 "cdfy" 字符,这样在入库时编号就存储BH这个变量就可以了。
问题是,每增加一条记录编号会增加一次,那么你必须还需要判断是不是在同一天。
至于详细情况不知道你的意图,不好回答。


[此贴子已经被作者于2016-6-4 18:09编辑过]

#4
ZHRXJR2016-06-04 18:10
程序代码:
Dim BH As String
'数据库连接语句略
Adodc1.RecordSource = "Select * From 数据表  Order BY 日期时间 Desc"
Adodc1.Refresh
If FormatDateTime(Adodc1.Recordset.Fields("日期时间"), 2) = FormatDateTime(Date, 2) Then
'判断最后一条记录的日期是不是今天的日期, FormatDateTime(Date, 2) 是格式化日期,只得到年月日,不包括时间
BH = Adodc1.Recordset.Fields("编号")   '如果是,这个编号不用处理
Else
BH = Adodc1.Recordset.Fields("编号")   '如果不是需要处理编号,使其增加1
BH = Right(BH, 9)
BH = CStr(Val(BH) + 1)    '编号加1
BH = "cdfy" & BH   '编号处理完成
End If
'.............................
'
以下就可以进行存储数据了
Adodc1.RecordSource = "Select * From 数据表"
Adodc1.Refresh
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("编号") = BH    '存储编号,这个编号是根据上面判断得到的
'
其他字段的数据存储
'
.........................
Adodc1.Recordset.Update


[此贴子已经被作者于2016-6-4 18:39编辑过]

#5
xiangyue05102016-06-06 13:08
select 语句中用max即可以,不过你这个例子可能还需要提取后面的几位进行操作,参考SUBSTRING
#6
w57817762016-06-10 10:47
我想不用adodc控件,用SQL语句的方法
1