【发布时间】:2016-01-14 17:50:57
【问题描述】:
我有一个搜索按钮,单击该按钮会在子表单中显示与父表单中文本框中的值匹配的记录。我有一个单选按钮可以在“和搜索”(如果匹配所有条件)和“或搜索”(如果匹配任何一个条件)之间进行选择。我正在使用过滤器来显示结果。这非常适用于“和搜索”,但不适用于“或搜索”。在“或搜索”期间显示所有记录,尽管文本框中有任何值。 我的代码如下。 希望能在这里找到解决办法。谢谢。
Private Sub Form_Open(Cancel As Integer)
Dim StrId, StrName, FilterId, FilterName, AndOr As String
Dim IntRadio as Integer
If Not IsNull(Forms!ParentForm!TxId.Value) Then
StrId = Forms!ParentForm!TxId.Value
End If
FilterId = "[BookID] Like '*" & StrId & "*'"
FilterName = "[BookName] Like '*" & StrName & "*'"
If IntRadio = 1 Then
AndOr = " and "
Else
AndOr = " or "
End If
Me.Filter = FilterId & AndOr & FilterName
Me.FilterOn = True
Me.Requery
If Me.RecordsetClone.RecordCount = 0 Then
Cancel = True
MsgBox "No Records", vbOKOnly + vbInformation, "No Data"
End If
End Sub
【问题讨论】:
-
查看
FltrName的内容——看看Debug.Print FltrName向您展示了什么。因为你没有给StrName一个值,我怀疑FltrName包含这个:[BookName] Like '**' -
非常感谢!!空字符串是问题!
标签: vba ms-access search filter subform