【发布时间】:2022-06-11 00:09:01
【问题描述】:
我在 MS Access 中有一个表单,我可以在其中使用日期范围过滤日期(“from:”和“to:”作为组合框,它们在代码中称为“cboStart”和“cboEnd”)。当你点击 Combobox 时,你会看到 02.2021、05.2021、06.2021、01.2022、02.2022、03.2022 等。它们显示了所有存在的选项(它只是显示查询中存在的值,我调用的日期来自查询)
代码是(我在 youtube 上找到的):
Private Sub cboEnd_AfterUpdate()
UpdateFilter
Me.Requery
End Sub
Private Sub cboStart_AfterUpdate()
UpdateFilter
Me.Requery
End Sub
Sub
UpdateFilter()
Dim strFilter As String
strFilter = FilterString()
If Len(strFilter) > 0 Then
Me.Filter = strFilter
Me.FilterOn = True
Else
Me.Filter = ""
Me.FilterOn = False
End If
End Sub
Function FilterString() As String
Dim strReturn As String
Dim strStart As String
Dim strEnd As String
strReturn = ""
If IsNull(Me!cboStart) Or IsNull(Me!cboEnd) Then GoTo Fn_Exit
strStart = Me!cboStart
strEnd = Me!cboEnd
strReturn = "Month_Worked Between '" & strStart & "' And '" & strEnd & "'"
Fn_Exit:
FilterString = strReturn
End Function
但我不想在组合框中显示所有年份和月份,所以我添加了新的组合框(它们在代码中称为“cmb_YearFrom”和“cmb_YearTo”表示年份,因此我逐年过滤月份选择。
为此,我编写了代码并添加到查询中 [Forms]![frmOffeneBestellung]![cmb_YearFrom], [Forms]![frmOffeneBestellung]![cmb_YearTo],所以组合框“年”作为过滤器用于月份选择
代码:
Private Sub cmb_YearTo_AfterUpdate()
cboEnd = Null
cboEnd.Requery
Me.Requery
End Sub
Private Sub cmb_YearFrom_AfterUpdate()
cboStart = Null
cboStart.Requery
Me.Requery
End Sub
现在是这样的: “年份:”、“来自:” “年份:”,“至:”
我的问题:例如,我无法从 06.2021 过滤到 01.2022。 它仅在同一年有效,例如从 05.2021 到 06.2021。 我该如何解决它,有什么想法吗? 提前非常感谢
【问题讨论】:
标签: ms-access