Ms access MS access搜索按钮条件导致运行时错误3075额外

Ms access MS access搜索按钮条件导致运行时错误3075额外,ms-access,Ms Access,我有一个搜索按钮,可以搜索各种字段,效果很好,但是当我第一次打开表单并尝试搜索时,我会收到运行时错误3075额外信息,但是一旦我清除了过滤器,搜索条件就会正常工作。在下面的代码中,我应该修复什么?子类别和阶段是文本 Private Sub cmdfilter_Click() Dim strWhere As String Dim lngLen As Long If Not IsNull(Me.AgencyDropDown) Then strWhere = strWhe

我有一个搜索按钮,可以搜索各种字段,效果很好,但是当我第一次打开表单并尝试搜索时,我会收到运行时错误3075额外信息,但是一旦我清除了过滤器,搜索条件就会正常工作。在下面的代码中,我应该修复什么?子类别和阶段是文本

Private Sub cmdfilter_Click()
  Dim strWhere As String
  Dim lngLen As Long

  If Not IsNull(Me.AgencyDropDown) Then
        strWhere = strWhere & "([Agency] = " & Me.AgencyDropDown & ") AND "

End If

 If Not IsNull(Me.Itcleaddropdown) Then
        strWhere = strWhere & "([ITC Lead] = " & Me.Itcleaddropdown & ") AND "

End If


  If Not IsNull(Me.SubcatDropdown) Then
        strWhere = strWhere & "([Subcategory] = """ & Me.SubcatDropdown & """) AND "

End If

  If Not IsNull(Me.StageDrpdown) Then
        strWhere = strWhere & "([Stage] = """ & Me.StageDrpdown & """) AND "

End If

If Not IsNull(Me.ContractVehicleDropDown) Then
        strWhere = strWhere & "([Contract Vehicle] = " & Me.ContractVehicleDropDown & ") AND "

End If

  If Not IsNull(Me.FYdropdown) Then
        strWhere = strWhere & "([New FY] = " & Me.FYdropdown & ") AND "

End If

 If Not IsNull(Me.Searchdropdown) Then
        strWhere = strWhere & "([Opportunity Name] Like ""*" & Me.Searchdropdown & "*"") AND "

End If

 If Not IsNull(Me.SearchScopedropdown) Then
        strWhere = strWhere & "([Opportunity Scope] Like ""*" & Me.SearchScopedropdown & "*"") AND "

End If


 lngLen = Len(strWhere) - 5
    If lngLen <= 0 Then
    MsgBox "No criteria", vbInformation, "Nothing to do."
    Else
    strWhere = Left$(strWhere, lngLen)



        Me.filter = strWhere
        Me.FilterOn = True
Private Sub-cmdfilter\u Click()
作为字符串的Dim strWhere
幽幽幽幽
如果不为null(Me.AgencyDropDown),则
strWhere=strWhere&“([Agency]=”&Me.AgencyDropDown&“)和”
如果结束
如果不是IsNull(Me.itcledAddressDown),则
strWhere=strWhere&“([ITC Lead]=”&Me.itcLeadAddressDown&“)和”
如果结束
如果不为null(Me.SubcatDropdown),则
strWhere=strWhere&“([Subcategory]=”&Me.SubcatDropdown&“)和”
如果结束
如果不是IsNull(Me.stagedpown),那么
strWhere=strWhere&“([Stage]=”&Me.stagedUpdown&“”)和”
如果结束
如果不为null(Me.ContractVehicleDropDown),则
strWhere=strWhere&“([合同车辆]=”&Me.contractedvehicledropdown&“)和”
如果结束
如果不为空(Me.fy下拉列表),则
strWhere=strWhere&“([New FY]=”&Me.FY下拉列表&“)和”
如果结束
如果不为空(Me.Searchdropdown),则
strWhere=strWhere&([Opportunity Name]如“*”和Me.Searchdropdown&“*”)和“
如果结束
如果不为null(Me.searchScope下拉列表),则
strWhere=strWhere&([Opportunity Scope]如“*”和Me.searchScope下拉列表&“*”)和“
如果结束
lngLen=Len(strWhere)-5

如果lngLen我怀疑您的下拉列表值在表单打开后为空

在查询中,使用
NZ()
函数将所有可能的空值替换为:

  • 空字符串:
    nz(dropdown.value,”)
  • 0表示数字:
    nz(下拉式数值,0)
例如:

  If Not IsNull(Me.SubcatDropdown) Then
        strWhere = strWhere & "([Subcategory] = """ & nz(Me.SubcatDropdown,"") & """) AND "