VBA 如果文本框为空则显示所有值
VBA If textbox is empty display all values
我有 2 个文本框和一个按钮。该按钮使用文本框的值打开一个查询。一切正常,除了当一个文本框为空时我想从该文本框中找到所有记录(到目前为止我已经在 textbox2 上测试过)。这是我的代码:
Private Sub vbaBtn_Click()
Dim af1 As String, af2 As String
af1 = "([a1]='" + [krit1] + "') "
If krit2 = "" Then
af2 = "([a2]='" + "*" + "') "
Else
af2 = "([a2]='" + [krit2] + "') "
End If
DoCmd.OpenForm "FormLisategevusalad", acFormDS, , af1 & " " & "And" & " " & af2
End Sub
在我看来,VBA 总是选择 Else 选项而不是 If 选项,因为当我调试它时说错误是 "Invalid use of null" 并指向 Else 条件。
我是否使用了错误的方法来检测和清空字符串?如果我让空字符串识别工作,这是 af2 = "([a2]='" + "*" + "') "
到 return 所有记录的正确方法吗?
提前致谢。
空文本框包含 Null 值,因此将其与 + 连接会产生 Null。使用 &:
Private Sub vbaBtn_Click()
Dim af1 As String, af2 As String
af1 = "([a1]='" & [krit1] & "') "
If IsNull([krit2]) Then
af2 = "([a2] Is Not Null) "
Else
af2 = "([a2]='" & [krit2] & "') "
End If
DoCmd.OpenForm "FormLisategevusalad", acFormDS, ,af1 & " And " & af2
End Sub
我有 2 个文本框和一个按钮。该按钮使用文本框的值打开一个查询。一切正常,除了当一个文本框为空时我想从该文本框中找到所有记录(到目前为止我已经在 textbox2 上测试过)。这是我的代码:
Private Sub vbaBtn_Click()
Dim af1 As String, af2 As String
af1 = "([a1]='" + [krit1] + "') "
If krit2 = "" Then
af2 = "([a2]='" + "*" + "') "
Else
af2 = "([a2]='" + [krit2] + "') "
End If
DoCmd.OpenForm "FormLisategevusalad", acFormDS, , af1 & " " & "And" & " " & af2
End Sub
在我看来,VBA 总是选择 Else 选项而不是 If 选项,因为当我调试它时说错误是 "Invalid use of null" 并指向 Else 条件。
我是否使用了错误的方法来检测和清空字符串?如果我让空字符串识别工作,这是 af2 = "([a2]='" + "*" + "') "
到 return 所有记录的正确方法吗?
提前致谢。
空文本框包含 Null 值,因此将其与 + 连接会产生 Null。使用 &:
Private Sub vbaBtn_Click()
Dim af1 As String, af2 As String
af1 = "([a1]='" & [krit1] & "') "
If IsNull([krit2]) Then
af2 = "([a2] Is Not Null) "
Else
af2 = "([a2]='" & [krit2] & "') "
End If
DoCmd.OpenForm "FormLisategevusalad", acFormDS, ,af1 & " And " & af2
End Sub