Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 我的事件过程在单击时不执行任何操作_Ms Access_Vba_Ms Access 2010 - Fatal编程技术网

Ms access 我的事件过程在单击时不执行任何操作

Ms access 我的事件过程在单击时不执行任何操作,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,在Access中,我的VBA有两个问题:第一个是当我单击搜索按钮时,什么也没有发生,第二个是声明ME子句有错误 Private Sub Search_Click() Dim strWhere As String, lngLen As Long Const conJetDate = "\#mm\/dd\/yyyy\#" strWhere = "" If Not IsNull(Me.AssignedTo) Then strWhere = strWhere & "(

在Access中,我的VBA有两个问题:第一个是当我单击搜索按钮时,什么也没有发生,第二个是声明ME子句有错误

Private Sub Search_Click()

  Dim strWhere As String, lngLen As Long
  Const conJetDate = "\#mm\/dd\/yyyy\#"
  strWhere = ""

  If Not IsNull(Me.AssignedTo) Then
    strWhere = strWhere & "([AssignedTo] Like '*" & Me.AssignedTo & "*') AND"  
  End If

  If Not IsNull(Me.OpenedBy) Then
    strWhere = strWhere & "([OpenedBy] Like '*" & Me.OpenedBy & "*') AND"  
  End If

  If Not IsNull(Me.Status) Then
    strWhere = strWhere & "([Status] Like '*" & Me.Status & "*')AND"  
  End If

  If Not IsNull(Me.Category) Then
    strWhere = strWhere & "([Category] Like '*" & Me.Category & "*')AND"  
  End If

  If Not IsNull(Me.Priority) Then
    strWhere = strWhere & "([Priority] Like '*" & Me.Priority & "*')AND"
  End If

  If Not IsNull(Me.OpenedDateFrom) Then
    strWhere = strWhere & "([EnteredOn] >= " & Format(Me.OpenedDateFrom, conJetDate) & ") AND "  
  End If

  If Not IsNull(Me.DueDateFrom) Then
    strWhere = strWhere & "([EnteredOn] <= " & Format(Me.DueDateFrom, conJetDate) & ") AND "  
  End If

  lngLen = Len(strWhere) - 5

  If lngLen <= 0 Then
    MsgBox "No criteria", vbInformation, "Nothing to do."
  Else

  End If

  strWhere = Left$(strWhere, lngLen)
  Me.Filter = strWhere
  Me.FilterOn = True
End Sub
Private Sub Search\u Click()
线一样暗,格伦一样长
Const congetdate=“\\\\ mm\/dd\/yyyy\\”
strWhere=“”
如果不为null(Me.AssignedTo),则
strWhere=strWhere&“([AssignedTo]类似“*”&Me.AssignedTo&“*”)和”
如果结束
如果不是IsNull(Me.OpenedBy),那么
strWhere=strWhere&“([OpenedBy]类似“*”&Me.OpenedBy&“*”)和”
如果结束
如果不是IsNull(Me.Status),则
strWhere=strWhere&“([Status]如“*”&Me.Status&“*”)和”
如果结束
如果不为空(Me.Category),则
strWhere=strWhere&“([Category]如“*”&Me.Category&“*”)和”
如果结束
如果不为null(Me.Priority),则
strWhere=strWhere&“([Priority]如“*”&Me.Priority&“*”)和”
如果结束
如果不为null(Me.OpenedDateFrom),则
strWhere=strWhere&([EnteredOn]>=“&Format(Me.OpenedDateFrom,congetdate)&”)和”
如果结束
如果不为null(Me.DueDateFrom),则

strWhere=strWhere&“(输入)我确信你必须
Me.Requery
Me.Refresh
在你设置
Me.Filter
之后。另外,对于日期,你必须用
#
包围它们。我确信你需要使用4而不是5来删除额外的
。最后,我将字符串上的分隔符改为
。这只是我个人的偏好。请参阅代码:

Private Sub Search_Click()
  Dim strWhere As String
  strWhere = IIF(Len(Me.AssignedTo & "") <> 0, "([AssignedTo] Like ""*" & Me.AssignedTo & "*"") AND", "") & _
             IIF(Len(Me.OpenedBy & "") <> 0, "([OpenedBy] Like ""*" & Me.OpenedBy & "*"") AND", "") & _
             IIF(Len(Me.Status & "") <> 0, "([Status] Like ""*" & Me.Status & "*"") AND", "") & _
             IIF(Len(Me.Category & "") <> 0, "([Category] Like ""*" & Me.Category & "*"") AND", "") & _
             IIF(Len(Me.Priority & "") <> 0, "([Priority] Like ""*" & Me.Priority & "*"") AND", "") & _
             IIF(Len(Me.OpenedDateFrom & "") <> 0, "([EnteredOn] >= #" & Format(Me.OpenedDateFrom, "mm/dd/yyyy") & "#) AND", "") & _
             IIF(Len(Me.DueDateFrom & "") <> 0, "([EnteredOn] <= #" & Format(Me.DueDateFrom, "mm/dd/yyyy") & "#) AND", "") 

  If Len(strWhere & "") = 0 Then
    MsgBox "No criteria", vbInformation, "Nothing to do."
  Else
    Me.Filter = Left(strWhere, Len(strWhere & "") - 4)
    Me.FilterOn = True
    Me.Requery
  End If  
End Sub
Private Sub Search\u Click()
作为字符串的Dim strWhere
strWhere=IIF(Len(Me.AssignedTo&“)0,([AssignedTo]类似“*”&Me.AssignedTo&“*”)和“,”)&_
IIF(Len(Me.OpenedBy&“)0,([OpenedBy]类似于“*”&Me.OpenedBy&“*”)和“,”)&_
IIF(Len(Me.Status&“)0、([Status]类似“*”&Me.Status&“*”)和“,”)和_
IIF(Len(Me.Category&“0”([Category]如“*”&Me.Category&“*”)和“,”)和_
IIF(Len(Me.Priority&“0”([Priority]如“*”&Me.Priority&“*”)和“,”)和_
IIF(Len(Me.OpenedDateFrom&“)0、([EnteredOn]>=#“&格式(Me.OpenedDateFrom,“mm/dd/yyyyy”)&“#”)和“,”)&_

IIF(Len(Me.DueDateFrom&“”)0,([EnteredOn]如果您不一定需要宏,创建事件过程而不是宏应该可以解决您的问题。为按钮创建事件过程的简单方法是在“设计”视图中右键单击按钮,然后单击“生成事件”。然后您可以将宏中的代码复制并粘贴到事件过程中,并删除宏。

我很困惑。如果单击搜索时什么都没有发生,您如何知道第二个问题的相关信息?BTB,您应该一次只问一个问题,尝试通过调试或使用MsgBox进行测试,例如MsgBox(Me.Status)因为我创建了一个宏并运行了它,然后出现了调试问题。你知道为什么事件过程没有做任何事情吗?如果你不是绝对需要一个宏,那么创建一个事件过程而不是一个宏应该可以解决你的问题。
选项显式设置了吗?谢谢你回复玲儿,当我插入你的代码并单击搜索时事件尚未触发。@user3666237,我修改了代码。请尝试我的更新,看看它是否适用于您。此外,您可能希望查看您真正需要的版本。当我单击“搜索”按钮时,什么都没有发生。您知道原因吗?@LInder谢谢,我意识到代码是有效的,但出于某种原因,我表单中的表没有响应vba command筛选器。在我的代码中,引用了我试图在表单中筛选的表。@user3666237,我猜您已将记录源属性设置为希望表单使用的表。应用筛选器将根据您在表单上设置的记录源更改显示的数据。