下拉列表VBA中无效使用Null

时间:2015-11-24 22:19:32

标签: vba ms-access 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) & "'"
Debug.Print strFilter '
DoCmd.ApplyFilter , strFilter
End Sub

它适用于每个cmb_WorkCity,除了一个城市,我选择的所有员工姓名导致无效使用Null,我现在正在拉我的头发,因为我改变的任何结果都是相同的。该代码以前工作过,它今天随机停止工作。

再次感谢您的帮助

2 个答案:

答案 0 :(得分:0)

Replace不喜欢null,因此您必须将Me.cmb_NameNz()函数括在一起,如下所示:

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

答案 1 :(得分:0)

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