求助VB的FOR循环语句结果不对

来源:百度知道 编辑:UC知道 时间:2024/05/17 04:15:50
Private Sub cmdPrint1_Click()
Dim i As Integer
Dim a As Integer
Text2.SetFocus
i = Int(Text2.Text)
If Int(Text2.Text) > 0 Then
For a = 0 To i
time1 = Format$(Now, "yyyy年MM月dd日hh时mm分ss秒")
rs2.Open "select * from 车辆排号", cnn, adOpenKeyset,adLockOptimistic
rs2.AddNew
rs2.Fields("时间") = time1
rs2.Fields("车牌号") = Text1.Text
rs2.Fields("排单号") = lblNumber
rs2.Fields("收货单位") = Text3.Text
rs2.Update
rs2.Close
Label2.Visible = False
Text2.Visible = False
cmdPrint1.Visible = False
cmdPrint.Visible = False
Me.PrintForm
If lblNumber >= 100 Then
lblNumber = 1
Else
lblNumber = lblNumber + 1
End If
a = a + 1
Next a
end if
end sub

当text2.text输入1,2,时,分别打印1和2份,但是输入3时,只打印2份,录入5时,只打印3份,录入9时,只打印5份,请高手帮忙找下问题,谢谢。

'0改成1
For a = 1 To i
...
a = a + 1 '删除这句
Next a
for-next语句不需要额外的变量计数
a会在每次循环后自动累加

Private Sub cmdPrint1_Click()
Dim i As Integer
Dim a As Integer
Text2.SetFocus
i = Int(Text2.Text)
If Int(Text2.Text) > 0 Then
For a = 0 To i
time1 = Format$(Now, "yyyy年MM月dd日hh时mm分ss秒")
rs2.Open "select * from 车辆排号", cnn, adOpenKeyset,adLockOptimistic
rs2.AddNew
rs2.Fields("时间") = time1
rs2.Fields("车牌号") = Text1.Text
rs2.Fields("排单号") = lblNumber
rs2.Fields("收货单位") = Text3.Text
rs2.Update
rs2.Close
Label2.Visible = False
Text2.Visible = False
cmdPrint1.Visible = False
cmdPrint.Visible = False
Me.PrintForm
If lblNumber >= 100 Then
lblNumber = 1
Else
lblNumber = lblNumber + 1
End If
'a = a + 1 这句出的错,删除了就好了