我有一个多项目表格,显示客户记录,例如名字和姓氏,出生日期,地址等。...可以以多种方式多次列出同一客户,并且其名称可能与其他客户相同或相似。 (因为错误的历史数据处理)。吉姆·史密斯(Jim Smith),詹姆斯·史密斯(James Smith)和小吉姆·史密斯(Jim Smith Jr.)可以是同一个人,也可以是三个以上的不同个人(具有出生日期和其他有助于解决此类问题的信息)。
我已经设置了两个组合框以按顺序过滤表单,但是我需要一些帮助以使它们能够按需运行。第一个组合通过简单的选择查询从基础表中提取不同姓氏的列表。选择名称后,第二个组合框将提供一组具有所选姓氏的独特名字。
是否可以在vba中使用所选的姓氏和通配符,以便选择“ Smith”也将返回“ Smith Jr。”,“ Smith-Jones”和“ Smithers”?现在,我有以下代码可以重新查询第二个组合框并在表单上设置初始过滤器,在我的示例中,此刻仅设置为“ Smith”:
Private Sub cboFindLast_AfterUpdate()
Me.cboFindFirst.Requery
Me.cboFindFirst = Null
Me.Filter = "LName = '" & Me.cboFindLast & "'"
Me.FilterOn = True
End Sub
除了不返回“ Smith +”条目外,此操作均按要求进行。此时,用户可以从cboFindFirst中选择以进一步减少列表。同样,如果选择“ Ann”将返回Ann,Anna,Annie,甚至Ruth-Ann(如果其中任何一个出现),那将是很好的。当前在第二个框中的代码是:
Private Sub cboFindFirst_AfterUpdate()
Me.Filter = "FName = '" & Me.cboFindFirst & "' And LName = '" & Me.cboFindLast & "'"
Me.FilterOn = True
End Sub
同样,这种方法效果很好,并且可以将列表减少到所有“ Ann Smith”唱片,但也许她结婚后还有最近的“ Annie Smith-Jones”唱片,我也希望该唱片也能显示。
当然,请对通配符使用LIKE: