У меня есть многоэлементная форма, которая отображает записи клиента, например, имя и фамилию, дату рождения, адрес и т. Д.… Один и тот же клиент может быть указан несколько раз несколькими способами и может иметь то же или похожее имя, что и другиеклиенты (потому что плохой исторический процесс обработки данных). Джим Смит, Джеймс Смит и Джим Смит-младший могут быть одинаковыми или более чем тремя разными людьми (дата рождения и другая информация помогают решить такие проблемы).
Я настроил два поля со списком для последовательной фильтрации формы, но мне нужна помощь, чтобы они работали по своему усмотрению. Первая комбинация извлекает список различных фамилий из базовой таблицы с помощью простого запроса выбора. После выбора имени второе поле со списком предлагает набор отдельных имен с выбранной фамилией.
Есть ли способ использовать выбранную фамилию и символы подстановки в vba, чтобы при выборе «Смит» также возвращались «Смит младший», «Смит-Джонс» и «Смитерс»? Прямо сейчас у меня есть следующее, которое запрашивает второй комбинированный список и устанавливает начальный фильтр в форме, на данный момент только «Смит» в моем примере:
Private Sub cboFindLast_AfterUpdate()
Me.cboFindFirst.Requery
Me.cboFindFirst = Null
Me.Filter = "LName = '" & Me.cboFindLast & "'"
Me.FilterOn = True
End Sub
Это работает как требуется, за исключением того, что не возвращает«Смит +» записи. В этот момент пользователь может выбрать из cboFindFirst, чтобы еще больше сократить список. Опять же, было бы неплохо, если бы при выборе «Энн» были возвращены Энн, Анна, Энни и даже Рут-Энн, если таковые возникнут. Код, который в настоящее время находится во втором блоке:
Private Sub cboFindFirst_AfterUpdate()
Me.Filter = "FName = '" & Me.cboFindFirst & "' And LName = '" & Me.cboFindLast & "'"
Me.FilterOn = True
End Sub
Опять же, это работает хорошо и сокращает список, например, до всех записей «Энн Смит», но, возможно, есть более поздняя «Энни Смит-Джонс»”После того, как она вышла замуж, и я хотел бы, чтобы эта запись также была показана.