Многократная фильтрация поля со списком в форме MS Access с использованием текста и чисел - PullRequest
0 голосов
/ 07 ноября 2018

Я очень новичок в MS Access, только что закончил онлайн-курс и пытаюсь улучшить свои навыки, работая над небольшим проектом.

Я столкнулся с препятствием и за последние пару дней не могу понять, как его исправить.

У меня есть список сотрудников с такой информацией, как идентификатор сотрудника, имя, фамилия, должность, класс, отдел и смена. Я создал 5 полей со списком, чтобы отфильтровать список, и каждый из них связан с другими. Все они отлично работают, кроме одного - Grade, который представляет собой однозначное значение.

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

Насколько я понимаю, я должен создать переменную как целое число и добавить ее в код, верно? Как это должно быть связано?

Ниже приведен пример кода. Я был бы очень признателен за объяснение и пример того, как это должно быть исправлено.

Private Sub GradeFilt_GotFocus()
   Me.AllowEdits = True
   If Nz(FiltStr, "") = "" Then
      Me.GradeFilt.RowSource = "SELECT DISTINCT Employees.Grade FROM Employees;"
   Else
      Me.GradeFilt.RowSource = "SELECT DISTINCT Employees.Grade FROM Employees WHERE" & FiltStr & ";"
   End If
   Me.GradeFilt.Dropdown
End Sub

Private Sub GradeFilt_LostFocus()
   Me.AllowEdits = False
End Sub



Sub BuildFiltStr()
   FiltStr = ""
   If Me!NameFilt <> "" Then
      FiltStr = "[LastName] = '" & Me!NameFilt & "'"
   End If
   If Me!RoleFilt <> "" Then
      If FiltStr = "" Then
         FiltStr = "[Role] = '" & Me!RoleFilt & "'"
      Else
         FiltStr = FiltStr & " AND [Role] = '" & Me!RoleFilt & "'"
      End If
   End If
   If Me!GradeFilt <> "" Then
      If FiltStr = "" Then
         FiltStr = "[Grade] = '" & Me!GradeFilt & "'"
      Else
         FiltStr = FiltStr & " AND [Grade] = '" & Me!GradeFilt & "'"
      End If
   End If
   If Me!DeptFilt <> "" Then
      If FiltStr = "" Then
         FiltStr = "[Dept] = '" & Me!DeptFilt & "'"
      Else
         FiltStr = FiltStr & " AND [Dept] = '" & Me!DeptFilt & "'"
      End If
   End If
   If Me!ShiftFilt <> "" Then
      If FiltStr = "" Then
         FiltStr = "[Shift] = '" & Me!ShiftFilt & "'"
      Else
         FiltStr = FiltStr & " AND [Shift] = '" & Me!ShiftFilt & "'"
      End If
   End If
   If FiltStr = "" Then
      Me.Filter = ""
      Me.FilterOn = False
   Else
      Me.Filter = FiltStr
      Me.FilterOn = True
   End If
End Sub

Большое спасибо!

...