Ms access 在下拉VBA中无效地使用Null

Ms access 在下拉VBA中无效地使用Null,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,我的下拉菜单有以下代码 Private Sub cmb_Name_AfterUpdate() Dim strFilter As String Me.cmb_WorkCity.Requery strFilter = "[Employee Name]='" & Replace(Me.cmb_Name.Column(0), "'", "''") & _ "' And [Movement Type]='" & Me.cmb_Name.Column(1) &

我的下拉菜单有以下代码

Private Sub cmb_Name_AfterUpdate()
Dim strFilter As String
Me.cmb_WorkCity.Requery
strFilter = "[Employee Name]='" & Replace(Me.cmb_Name.Column(0), "'", "''") & _
            "' And [Movement Type]='" & Me.cmb_Name.Column(1) & "'"
Debug.Print strFilter '
DoCmd.ApplyFilter , strFilter
End Sub
它适用于每一个cmb_工作城市,除了一个我选择的所有员工姓名都会导致无效使用Null的城市之外,我现在很紧张,因为我所做的任何更改都会导致相同的结果。代码以前是有效的,今天只是随机停止工作


再次感谢您的帮助

Replace
不喜欢
null
,因此您必须在
Me.cmb\u Name
中附上
Nz()
函数,如下所示:

Private Sub cmb_Name_AfterUpdate()
Dim strFilter As String
Me.cmb_WorkCity.Requery
strFilter = "[Employee Name]='" & Replace(Nz(Me.cmb_Name.Column(0)), "'", "''") & _
            "' And [Movement Type]='" & Me.cmb_Name.Column(1) & "'"
Debug.Print strFilter '
DoCmd.ApplyFilter , strFilter
End Sub

我发现了这个问题,它与表中未填写的数据点有关,再次感谢大家的帮助

您能提供一个有效的示例值和一个无效的示例值吗?例如,如果WorkCity是Columbus,此人的名字是Smith,John,它有效,如果WorkCity是Dublin(这种情况只发生在本例中),Dublin下的所有名字都会导致此错误。我设置的replace函数可以帮助处理类似于姓氏中的O'Mailey这样的情况。Access不喜欢名称中的“”,因此不得不将其替换。我使用了下面mdialogo的建议,这就是下面提到的debug.print的结果。前两个是作为工作城市的“哥伦布”的一部分,后两个是“都柏林”,我看了一下总体数据,没有什么能让这两个在数据内容和结构上有所不同。[员工姓名]='Jones,Melika'和[Movement Type]='Term'[员工姓名]='MacGuinness,Neil'和[Movement Type]='Term'[员工姓名]=''和[Movement Type]=''[Employee Name]=''和[Movement Type]=''我发现了这个问题,它与表中未填写的数据点有关,再次感谢大家的帮助!感谢mdialogo的快速响应,我在上面的代码中添加了Nz(),这导致记录根本没有被提取。当我检查它的打印结果时,结果是[Employee Name]=''和[Movement Type]=''