不循环 MS Access
Not Looping MS Access
我不确定如何处理这个循环。我见过各种方式并以各种方式尝试了 If Not (rs.EOF And rs.BOF) Then
但它只经过一次编码。此代码应该遍历满足 SELECT 查询条件的 table 摄入量。肯定有多个记录满足此查询,因此它应该循环不止一次。此代码确实在第一次工作并给出了消息框,但随后就结束了。谢谢:)
Set db = CurrentDb
i = Me.searchlat
strSQL = "SELECT IntakeID, Program, applicationdate From Intake
WHERE Status Not Like 'Approved' And Status Not Like 'Denied' And Status
Not Like 'Withdrawn' And Status Not Like 'Incomplete Application' And Status
Not Like 'No Show' AND workerid = '" & i & "'"
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
While Not rs.EOF
If Me.Program = "CF" And Me.applicationdate < Date - "25" Then
MsgBox ("The following cases are nearing 30 days pending:" & " " & Me.caseid)
rs.MoveNext
End If
Wend
只需将 rs.MoveNext
移到 If 语句之外,但仍在循环中。
目前,代码进入循环,在 if
条件不适用的地方,退出循环(因为它没有看到移动到下一条记录的命令)。
此外,有时它会有所帮助,在 While/Wend 循环之前添加以下内容以确保记录集位于开头:
rs.MoveLast
rs.MoveFirst
在您的 select 查询中,您不在 select caseid
中。将您的 select 查询更改为
"SELECT IntakeID, Program, applicationdate,caseid From Intake.......
并检查。
strSQL = "SELECT IntakeID, Program,
applicationdate, caseid From Intake WHERE Status Not Like 'Approved'
And Status Not Like 'Denied' And Status Not Like 'Withdrawn'
And Status Not Like 'Incomplete Application' And Status
Not Like 'No Show' AND workerid = '" & i & "'"
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
While Not rs.EOF
If Me.Program = "CF" And Me.applicationdate < Date - "25" Then
MsgBox ("The following cases are nearing 30 days pending:" & " " & rs!caseid)
End If
rs.MoveNext
Wend
我不确定如何处理这个循环。我见过各种方式并以各种方式尝试了 If Not (rs.EOF And rs.BOF) Then
但它只经过一次编码。此代码应该遍历满足 SELECT 查询条件的 table 摄入量。肯定有多个记录满足此查询,因此它应该循环不止一次。此代码确实在第一次工作并给出了消息框,但随后就结束了。谢谢:)
Set db = CurrentDb
i = Me.searchlat
strSQL = "SELECT IntakeID, Program, applicationdate From Intake
WHERE Status Not Like 'Approved' And Status Not Like 'Denied' And Status
Not Like 'Withdrawn' And Status Not Like 'Incomplete Application' And Status
Not Like 'No Show' AND workerid = '" & i & "'"
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
While Not rs.EOF
If Me.Program = "CF" And Me.applicationdate < Date - "25" Then
MsgBox ("The following cases are nearing 30 days pending:" & " " & Me.caseid)
rs.MoveNext
End If
Wend
只需将 rs.MoveNext
移到 If 语句之外,但仍在循环中。
目前,代码进入循环,在 if
条件不适用的地方,退出循环(因为它没有看到移动到下一条记录的命令)。
此外,有时它会有所帮助,在 While/Wend 循环之前添加以下内容以确保记录集位于开头:
rs.MoveLast
rs.MoveFirst
在您的 select 查询中,您不在 select caseid
中。将您的 select 查询更改为
"SELECT IntakeID, Program, applicationdate,caseid From Intake.......
并检查。
strSQL = "SELECT IntakeID, Program,
applicationdate, caseid From Intake WHERE Status Not Like 'Approved'
And Status Not Like 'Denied' And Status Not Like 'Withdrawn'
And Status Not Like 'Incomplete Application' And Status
Not Like 'No Show' AND workerid = '" & i & "'"
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
While Not rs.EOF
If Me.Program = "CF" And Me.applicationdate < Date - "25" Then
MsgBox ("The following cases are nearing 30 days pending:" & " " & rs!caseid)
End If
rs.MoveNext
Wend