VB 入库时,入库单号是自动导入且累加,(如:RUKU0001....RUKU000N)时,在记录过程中,是自动导入累加,但每次执行1~N次不等,就无法自动导入入库单号.清空数据库重0001开始又可以执行,但执行到自动导编号000N(N代表从1~N)的时候就完了,最后增加那一个查找不到,也加载不了,但在数据库中已有记录.如下简易代码.
Private Sub Cmdcazao_Click() '入库单号查找
Dim swl As String
Dim rw As New ADODB.Recordset
List1.Clear
swl = "select * from ruku"
rw.Open swl, Conn, adOpenKeyset, adLockPessimistic
While rw.EOF = False
List1.AddItem rw.Fields("danhao") '将查找的入库单记录在LIST1控件中
rw.MoveNext
Wend
rw.close
rw.Close
End Sub
Private Sub Cmdjilu_Click() '入库记录
Dim SQL2 As String '以下代码是自动导入入库单号
Dim Rs2 As New ADODB.Recordset
Dim i1 As String
Dim i2 As String
Dim j1As String
Dim j2 As String
i2 = "ruku"
j2 = "0001"
SQL2 = "select * from ruku"
Rs2.Open SQL2, Conn, adOpenKeyset, adLockPessimistic
While (Rs2.EOF = False)
If Rs2.EOF = False Then
j2 = Format(j2, "#0000")
j1 = Trim(i2 & j2)
If Trim(Rs2.Fields("danhao")) = j1 Then
List1.AddItem Trim(Rs2.Fields("danhao"))
j2 = j2 + 1
Else
Label3.Caption = j1
Rs2.MoveNext
End If
Else
j2 = Format(j2, "#0000")
j1= Trim(i2 & j2)
Label3.Caption = j1
End If
Dim svl As String 经以上入库单号自动导入后,即开始增加入库记录
Dim rv As New ADODB.Recordset
List1.Clear
svl = "select * from caiwupinzhen"
rv.Open sv, Conn, adOpenKeyset, adLockPessimistic
if Label3.Caption $amp; rv.addnew
rv.fields("danhao") = Label3.caption
rv.update
end if
rv.movenext
wend
rv.close
end sub
以上所出现的问题是:当增加到3~20个不等,自动导入入库单号的时候,最后一个记录查找不到(意思如:记录单号从RUKU0001开始~记录到RUKU0005, 按照程序导入方式下一个应该是RUKU0006,但实际导入的是RUKU0005. 利用查找程序,也查找不到RUKU0005之单号,但进入数据库中,RUKU0005是有记录的.经确认数据库中是存在RUKU0005记录,进入VB继续执行入库操作,不管入库多少次,始终入库单号是RUKU0005,回到数据库,数据库中RUKU0005被入库时不断的累计,入多少次就增加了多少个RUKU0005.)
把数据库数据清空,从RUKU0001开始,执行到RUKU0007或RUKU0025时(不等的情况下)又出现以上问题点了.
出现这种问题是什么原因,如何解决? 调试了半天,头的晕了,我是新手.自学的.很多不懂,还请各位高手指点指点..感激不尽..
我来回答: