【发布时间】:2016-09-15 09:38:06
【问题描述】:
我有一个On_Load() sub,它逐条检查子表单上的记录。例如,如果子表单加载了 12 条记录,我需要子表单从第一条记录开始,运行 DCount(它检查作业号是否出现在不同的表上),然后移动到下一条记录,并检查那个,等等,直到它到达最后一条记录。这是我目前的代码:
Set rst = Me.RecordsetClone
On Error Resume Next
rst.MoveFirst
'Put code to check keyword schedule here. First get job no
Do Until Me.Specific_Job_No.Value = "00"
strSpec = Format(Me.Specific_Job_No.Value, "00")
strJob = Left(Me.Parent.JobRef.Value, 18) + strSpec
'Then check if that job no is in slot 1, then 2, etc
If DCount("*", "tblKeywordsSchedule", "[Slot1] Like ""*" & strJob & "*""") > 0 Then
Me![Added to Schedule] = True
Me![Added to Schedule].Locked = True
Else
Me![Added to Schedule] = False
Me![Added to Schedule].Locked = False
End If
'Then go to next record
rst.MoveNext
Loop
我的问题是,它卡在rst.MoveNext 上,并且一遍又一遍地检查第一条记录。我做错了什么?
【问题讨论】:
-
您的代码对我来说毫无意义。您正在对与您的记录集无关的条件进行循环,并且在您的循环中,您不会对记录集中存在的任何值执行任何操作。你想达到什么目的??
-
@ThomasG 我正在尝试遍历加载到记录集中的十二条记录并对它们执行某些操作(取决于 DCount)。
-
Dount 和之后的所有操作都是根据您的表单(我!)而不是记录集的值执行的。那么在上面循环有什么用呢?