Vba 如何向combobox选定值添加通配符,以扩展以多项目形式返回的值

Vba 如何向combobox选定值添加通配符,以扩展以多项目形式返回的值,vba,forms,ms-access,Vba,Forms,Ms Access,我有一个多项目表单,其中显示客户记录,例如姓名、出生日期、地址等。同一客户可以以多种方式多次列出,并且可能与其他客户具有相同或类似的名称(因为历史数据处理不好)。Jim Smith、James Smith和Jim Smith Jr.可能是同一个人,也可能是三个以上不同的人(出生日期和其他信息有助于解决此类问题) 我已经设置了两个组合框来按顺序过滤表单,但是我需要一些帮助来让它们按需要运行。第一个组合通过简单的select查询从基础表中提取不同姓氏的列表。一旦选择了一个名字,第二个组合框将提供一组

我有一个多项目表单,其中显示客户记录,例如姓名、出生日期、地址等。同一客户可以以多种方式多次列出,并且可能与其他客户具有相同或类似的名称(因为历史数据处理不好)。Jim Smith、James Smith和Jim Smith Jr.可能是同一个人,也可能是三个以上不同的人(出生日期和其他信息有助于解决此类问题)

我已经设置了两个组合框来按顺序过滤表单,但是我需要一些帮助来让它们按需要运行。第一个组合通过简单的select查询从基础表中提取不同姓氏的列表。一旦选择了一个名字,第二个组合框将提供一组不同的名字和所选的姓氏

有没有办法在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与通配符结合使用:

Me.Filter=“LName LIKE”&Me.cboFindLast&“*”


Me.Filter=“FName LIKE'&Me.cboFindFirst&“*”和LName LIKE'&Me.cboFindLast&“*”

为什么一个客户端有多个名称?应该有一个客户端主记录,然后将该记录ID密钥保存到相关的从属记录中。您是正确的!应该有。然而,我正在处理一个我继承的旧数据库,它将在大约2年内归档。该系统从其他几个系统接收数据,许多管理人员A)不太懂计算机,B)输入调查中的二手信息。一名研究人员可能会遇到“吉姆·史密斯”,一年或两年后,另一名研究人员会遇到“詹姆斯·史密斯”,每个人都会在报告中说明他们得到了什么。每个人都要打扫卫生,这太可怕了。我正在取得进展。干杯,好悲伤。。。有时候这样做让我觉得自己很傻。。。我用通配符试过了,但忘记了“LIKE”。非常感谢!