Невозможно отфильтровать - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь записать код SQL в моей базе данных MS Access, в результате чего фильтр на Entity_name не работает должным образом

Function FilterResults()

Dim strCriteria As String
strCriteria = ""

If Nz(Me.cboEntitynameFilter) <> "" Then
    strEntityNameFilter = "Entity_Name = '" & Me.cboEntitynameFilter & "'"
Else
    strEntityNameFilter = "Entity_Name = '*'"
End If

If Nz(Me.cboAssignmentFilter) <> "" Then
    strAssignmentFilter = " AND " & "Assignment = '" & Me.cboAssignmentFilter & "'" '& " AND "
End If

If Nz(Me.cboFYFilter) <> "" Then
    strFYFilter = " AND " & "Financial_Year = '" & Me.cboFYFilter & "'"
End If


    strCriteria = Nz(strEntityNameFilter, "*") & Nz(strAssignmentFilter, "*") & Nz(strFYFilter, "*")
'    End If


    If strCriteria = ("Entity_Name = '*'") Then
        Me.Filter = ""
        Me.FilterOn = False
    Else
        If strCriteria <> "" Then
            Me.Filter = strCriteria
            Me.FilterOn = True
        End If
    End If

End Function

Возвращаемое значение strCriteria Entity_Name= '*' AND Assignment = 'MFI'

Фильтр не работает, а Entity_Name пусто.Что я делаю не так.

Я использую это в MS-Access и собираю запросы в VBA

1 Ответ

0 голосов
/ 10 октября 2018

Я бы так и сделал

Dim strCriteria AS string

strCriteria = "1 = 1"

If Len(Nz(Me.cboEntitynameFilter, "")) > 0 Then
    strCriteria = strCriteria & " and [Entity_Name] = """ & Me.cboEntitynameFilter & """"
End If


If Len(Nz(Me.cboAssignmentFilter, "")) > 0 Then
    strCriteria = strCriteria & " and [Assignment] = """ & Me.cboAssignmentFilter & """"
End If

 If Len(Nz(Me.cboFYFilter, "")) > 0 Then
    strCriteria = strCriteria & " and [Financial_Year] = """ & Me.cboFYFilter & """"
End If

Me.Filter = strCriteria
Me.FilterOn = True

, если какой-либо из выпадающих списков или текстовых полей не выбрал, чем это будет отображать эти поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...