Ms access VBA代码,用于将日期范围添加到表单以优化搜索
我已经有了一个带有类型组合下拉列表的表单,这是我正在搜索的抗体字段记录。SearchRecords按钮启动代码。 我想在表单中添加开始和结束日期,以优化搜索。我已经为StartDate和EndDate创建了日期文本框。 我现在的代码如下。我需要VB代码的帮助来获取日期范围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
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有什么作用?