For loop 循环错误,添加的记录太多
我一直在尝试编写Access VBA代码来自动添加发芽测试的副本 基本上,我有一个表格,其中我输入了代表的总数(NoofReps)和每个代表的种子数(RepSize)(例如50个种子)。对于添加的每条记录,我希望它自动为每个代表添加一条记录,并自动计算代表编号(即,如果我有4个代表,那么它应该添加4条记录,编号为1-4个代表)以及代表大小(例如50) 我一直在尝试各种基于本论坛和其他论坛的信息的循环,但它生成的记录数量仍然存在错误。我已经尝试过“Do-while”和“Do-Until”两种方法,但在下面两种方法中都得到了相同的结果 有人能告诉我哪里出了问题吗?…如果我想重复2次,那么它会增加2次;如果我想重复3次,那么它会增加246次;如果我想重复4次,那么它会增加30000次以上 为了尝试修复代码,我已经开始在inorefreps中的代码中手动键入重复次数,以便知道错误在代码中,而不是表单中For loop 循环错误,添加的记录太多,for-loop,ms-access,while-loop,vba,For Loop,Ms Access,While Loop,Vba,我一直在尝试编写Access VBA代码来自动添加发芽测试的副本 基本上,我有一个表格,其中我输入了代表的总数(NoofReps)和每个代表的种子数(RepSize)(例如50个种子)。对于添加的每条记录,我希望它自动为每个代表添加一条记录,并自动计算代表编号(即,如果我有4个代表,那么它应该添加4条记录,编号为1-4个代表)以及代表大小(例如50) 我一直在尝试各种基于本论坛和其他论坛的信息的循环,但它生成的记录数量仍然存在错误。我已经尝试过“Do-while”和“Do-Until”两种方法,
Private Sub CmdAddReps3_Click()
Dim iRepNo As Integer ' stores the current value in the series
'Open the table
Set db = CurrentDb()
Set rstGReps = db.OpenRecordset("tblGReplicates")
' Initialise the variables
iRepNo = 1
iNoofReps = 3 'iNoofReps = Me.txtNoofReps
' Add the records using a loop
rstGReps.movefirst
Do 'Until rstGReps("RepNo") = (iNoofReps + 1) ' always want to include at least 1 repNo
rstGReps.AddNew
rstGReps("GTestID") = Me.GTestID
rstGReps("RepNo") = iRepNo
rstGReps("NoofSeed") = Me.txtNoOfSeeds
' Calculate the next RepNo value in the loop
iRepNo = iRepNo + 1
rstGReps.Update
rstGReps.moveNext
Loop Until rstGReps("RepNo") = (iNoofReps) + 1 ' so that the loop includes the final repNo.
MsgBox "Finished Looping"
rstGReps.Close
Set rstGReps = Nothing
Set db = Nothing
End Sub
任何帮助都将不胜感激 好的,您要在这里移动下一步:
rstGReps.moveNext
,然后在移动下一步后比较rstGReps(“RepNo”)=(inorefres)+1
,因此处于空记录中,因此总是等于false
循环,直到iRepNo=(INOFREPS)+1将其修复,那么您就不再引用该记录集,在引用该记录集时,该记录集已被设置为下一条记录
您也可以通过删除以下行来修复它:
rstGReps.moveNext
由于rstGReps.AddNew
已将记录集移动到新的空白记录,因此在添加记录后将其向前移动没有多大意义。如果删除它,您可能希望删除循环中的+1
,直到rstGReps(“RepNo”)=(inofreps)+1