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 VBA代码,用于将日期范围添加到表单以优化搜索_Ms Access_Vba - Fatal编程技术网

Ms access VBA代码,用于将日期范围添加到表单以优化搜索

Ms access VBA代码,用于将日期范围添加到表单以优化搜索,ms-access,vba,Ms Access,Vba,我已经有了一个带有类型组合下拉列表的表单,这是我正在搜索的抗体字段记录。SearchRecords按钮启动代码。 我想在表单中添加开始和结束日期,以优化搜索。我已经为StartDate和EndDate创建了日期文本框。 我现在的代码如下。我需要VB代码的帮助来获取日期范围 Private Sub SearchRecords_Click() Dim strSQL As String On Error Resume Next Combo24.SetFocus DoCm

我已经有了一个带有类型组合下拉列表的表单,这是我正在搜索的抗体字段记录。SearchRecords按钮启动代码。 我想在表单中添加开始和结束日期,以优化搜索。我已经为StartDate和EndDate创建了日期文本框。 我现在的代码如下。我需要VB代码的帮助来获取日期范围

Private Sub SearchRecords_Click()
    Dim strSQL As String
    On Error Resume Next
    Combo24.SetFocus
    DoCmd.Hourglass True
    strSQL = "SELECT * FROM tblAGV_Log WHERE [Type] = '" & Me.Combo24.Text & "' Order by Date DESC"
    Me.RecordSource = ""
    Me.RecordSource = strSQL
    DoCmd.Hourglass False
End Sub

展示比描述更容易,但我会像这样扩展您的日常工作:

Private Sub SearchRecords_Click()
    Dim strSQL As String
    Dim strWhere As String
    Dim strOp As String

    On Error Resume Next

    DoCmd.Hourglass True
    strSQL = "SELECT * FROM tblAGV_Log"

    strWhere = ""
    strOp = ""
    If Not IsNull(Me.Combo24.Value) Then
        strWhere = strWhere & strOp & "([Type] = '" & Me.Combo24.Value & "')"
        strOp = " And "
    End If
    If Not IsNull(Me.StartDate.Value) Then
        strWhere = strWhere & strOp & "([Date] >= #" & Me.StartDate.Value & "#)"
        strOp = " And "
    End If
    If Not IsNull(Me.EndDate.Value) Then
        strWhere = strWhere & strOp & "([Date] <= #" & Me.EndDate.Value & "#)"
        strOp = " And "
    End If

    If Len(strWhere) > 0 then
        strSQL = strSQL & " WHERE " & strWhere
    End If
    strSQL = strSQL & " Order by [Date] DESC"

    Me.RecordSource = strSQL
    DoCmd.Hourglass False

End Sub

这会让你离得很近。

谢谢你的帮助。我输入了这个代码并进行了测试。当我运行它时,我没有得到任何结果,表单似乎被锁定,不允许我再试一次。一旦选择下拉选择,字段将变为空白。不确定原因??我不确定这是否是问题所在,但我能看到的唯一一件事是,除了添加的日期(其中语句是括号)之外,它与原始SQL不同。如果没有@Don,它能工作吗?另外,也许要确保Combo24有一个右绑定列,这样它的.value不是[Type]的主键,而是它的名称。你是对的。你的代码很好。我被限制到错误的专栏。我改变了这一点,它正在发挥作用。谢谢你的帮助。Combo24.SetFocus有什么作用?