【发布时间】:2016-08-31 11:07:25
【问题描述】:
大家好!
我正在尝试在我的 vb6 项目中使用 FOR 循环。在主题中有两个记录集。第一个记录集在 MS Access 数据库表中找到记录并获取一些值,然后第二个记录集使用这些值在另一个表中更新。 当我编译没有错误,但在表中没有值更新。此外,这个循环只工作一次,我的意思是它没有循环。怎么了?请帮忙! 谢谢
Sub UpdatePreQty()
Dim rsTmp As New ADODB.Recordset
Dim rsStock As New ADODB.Recordset
Dim tmpICODE As String
Dim tmpBCODE As String
Dim tmpQty As String
For I = 1 To Val(txtTmpItemCount.Text)
Dim strsql As String '-----Write this line only once on a form
strsql = "SELECT * FROM [bill_details] WHERE [bill_sno] =" & sno
If rsTmp.State = adStateOpen Then rsTmp.Close
rsTmp.Open strsql, cn, adOpenStatic, adLockOptimistic
tmpICODE = rsTmp("prod_sno")
tmpBCODE = rsTmp("Batch")
tmpQty = rsTmp("qty")
If rsStock.State = adStateOpen Then rsStock.Close
rsStock.Open "SELECT * FROM Batch where BCODE='" & tmpBCODE & "' and ICODE ='" & tmpICODE & "' and [ccode]='" & Ccode & "'", cn, adOpenDynamic, adLockOptimistic
rsStock("OUT") = (Val(rsStock("OUT")) - tmpQty)
rsStock("CBAL") = Val(rsStock("OBAL")) + Val(rsStock("IN")) - Val(rsStock("OUT")) '
rsStock.Update
Next
MsgBox "Previous stock update"
If rsStock.State = adStateOpen Then rsStock.Close
If rsTmp.State = adStateOpen Then rsTmp.Close
End Sub
【问题讨论】:
-
将
Next更改为Next I