如何在 MS Access 中过滤数组

邱贝科

我正在编写一个可以与我的数据库(查询)进行比较的数组。我可以知道如何制作它以便它可以在我的数组中包含“或”逻辑吗?因为我想得到像 Filter = myArray(0) 或 myArray(1) 或 myArray(2) 这样的输出......因为我没有数组的数量,因为它取决于用户输入的数量类型,所以我只有一个 myArray(x)。谢谢你。

Private Sub TestButton_Click()
Dim myArray As Variant
Dim Status_Input As Variant
Dim x As Variant
Dim i As Variant
Dim Status_Filter As Variant

Status_Input = Forms![try2].StatusInput

myArray = Split(Status_Input, ";")

For x = LBound(myArray) To UBound(myArray)
MsgBox " " & myArray(x) & " "             'MsgBox = 03 20 27 (3 MsgBoxes)

Status_Filter = _
"[Status] Like " & myArray(x)

Debug.Print Status_Filter
Me.Filter = Status_Filter
Me.FilterOn = True

Next x

结束子

埃里克

您可以将过滤器附加到彼此,用OR. 另外,我建议您Like仅在需要使用通配符时使用。

如果不使用Like,则可以使用[Status] IN(1, 2, 3)代替来优化代码[Status] Like 1 OR [Status] Like 2 OR [Status] Like 3

Status_Filter = "[Status] Like " & myArray(LBound(myArray)) 'Note: fails if myArray is empty
For x = LBound(myArray) + 1 To UBound(myArray)
    Status_Filter = Status_Filter & " OR [Status] Like " & myArray(x)
Next x
Me.Filter = Status_Filter
Me.FilterOn = True

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章