创建过滤循环函数



创建了一个过滤器按钮,用于搜索每个对象的 ID 和当前显示在表单上的下一个连续组件 #。我正在从组件 1 到 5 过滤。我应该如何处理它来创建上限 (5( 是固定或无限的循环函数?

Private Sub NextComponent_Click()
Me.Refresh
[Forms]![Frm_main_WOSamples]![Frm_sub_Qry_stats_WOSamples].Requery
Dim add As String
Dim MyVar As String
Dim MyCar, myzar As String
Dim i As Integer
Dim Tot As Integer
Dim zar, twar, oar, iar, qar As Variant
Dim rep, tep, cep, oep, pep As String
add = "[WOSampleNum] = " & rep
rep = Me.WOSampleNum + 1
tep = Me.WOSampleNum + 2
cep = Me.WOSampleNum + 3
oep = Me.WOSampleNum + 4
pep = Me.WOSampleNum + 5

Dim won As String
Dim ton As String
Dim zon As String
ton = Me.WorkOrderID
zar = DLookup("[WorkOrderID]", "tbl_WOSamples", "[WOSampleNum] =" & rep & " And [WorkOrderID] =" & ton)
oar = DLookup("[WorkOrderID]", "tbl_WOSamples", "[WOSampleNum] =" & tep & " And [WorkOrderID] =" & ton)
twar = DLookup("[WorkOrderID]", "tbl_WOSamples", "[WOSampleNum] =" & cep & " And [WorkOrderID] =" & ton)
iar = DLookup("[WorkOrderID]", "tbl_WOSamples", "[WOSampleNum] =" & oep & " And [WorkOrderID] =" & ton)
qar = DLookup("[WorkOrderID]", "tbl_WOSamples", "[WOSampleNum] =" & pep & " And [WorkOrderID] =" & ton)
If Forms![Frm_main_WOSamples].[Frm_sub_Qry_stats_WOSamples].Form![CountOfWOSampleNum] = WOSampleNum Then
ElseIf Forms![Frm_main_WOSamples].[Frm_sub_Qry_stats_WOSamples].Form![CountOfWOSampleNum] <> WOSampleNum 
Then
If zar = ton Then
Me.Filter = "WOSampleNum = " & rep
Me.FilterOn = True
ElseIf oar = ton Then
Me.Filter = "WOSampleNum = " & tep
Me.FilterOn = True
ElseIf twar = ton Then
Me.Filter = "WOSampleNum = " & cep
Me.FilterOn = True
ElseIf iar = ton Then
Me.Filter = "WOSampleNum = " & oep
Me.FilterOn = True
ElseIf qar = ton Then
Me.Filter = "WOSampleNum = " & pep
Me.FilterOn = True
End If
End If

看看这是否正确解释了逻辑:

Dim ton As Long, won As Long, i As Integer
ton = Me.WorkOrderID
If Forms![Frm_main_WOSamples].[Frm_sub_Qry_stats_WOSamples].Form![CountOfWOSampleNum] <> Me.WOSampleNum Then
For i = 1 To 5
won = Me.WOSampleNum + i
If Nz(DLookup("[WorkOrderID]", "tbl_WOSamples", "[WOSampleNum] =" & won & " And [WorkOrderID] =" & ton), 0) = ton Then
Me.Filter = "WOSampleNum = " & won
Me.FilterOn = True
Exit For
End If
Next
End If

最新更新