0

afterupdateイベントでフォーム上のデータをフィルタリングするコンボボックスがあります。以下は、データをフィルタリングするために使用しようとしているクエリです。このコードはデータを効果的にフィルタリングしますが、私が直面している問題は、コンボボックスから「」を選択するとデータが表示されないことです。 「」の選択に関するフォームのすべてのデータ

Dim strCriteria As String
strCriteria = "[Jobno]='" & cboPMNO & "'"
Set rst = Me.RecordsetClone
If strCriteria = "<ALL>" Then
Me.FilterOn = False
ElseIf rst.NoMatch Then
MsgBox "No entry found"
Else
Me.FilterOn = False
Me.Filter = strCriteria
Me.FilterOn = True
End If
4

1 に答える 1

0

これを試して:

Dim strCriteria As String
strCriteria = "[Jobno]='" & Nz(cboPMNO, "<ALL>") & "'"
Set rst = Me.RecordsetClone
If strCriteria = "<ALL>" or strCriteria = "" Then
    Me.Filter = ""
    Me.FilterOn = False
ElseIf rst.NoMatch Then
    MsgBox "No entry found"
Else
    Me.Filter = strCriteria
    If Me.FilterOn = False Then Me.FilterOn = True
End If

通常、この種のフィルターを作成する方法を次に示します。絶対に必要でない限り、私はメッセージボックスが大嫌いです。私の意見では、一致するものがない場合は、空白のフォームまたはリストボックスを表示する方がよいでしょう。

Dim strCriteria as String
If Nz(Me.cboPMNO, "<ALL>") <> "<ALL>" Then
    strCriteria = "[Jobno] = '" & Me.cboPMNO & "'"
End If
If strCriteria <> "" Then
    Me.Filter = strCriteria
    If Me.FilterOn = False Then Me.FilterOn = True
Else
    Me.Filter = ""
    Me.FilterOn = False
End If
于 2012-04-16T13:42:14.900 に答える