我在 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。我該如何解決它,有什么想法嗎?非常感謝提前
uj5u.com熱心網友回復:
您必須將這些文本日期轉換為真實日期和日期運算式,例如:
strReturn = "CDate(Replace([Month_Worked], '.', '/')) Between #" & Format(Replace(strStart, ".", "/"), "yyyy\/mm\/dd") & "# And #" & Format(Replace(strEnd, ".", "/"), "yyyy\/mm\/dd") & "#"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/497039.html
標籤:毫秒访问
上一篇:更改訪問直通查詢中的格式
