簡體   English   中英

ACCESS 2007-日期之間的表單/子表單過濾

[英]ACCESS 2007 - Form / subform filtering between dates

在ACCESS 2007中,我有一個主窗體,其中包含兩個未綁定的組合框,分別名為cmbStavOdcmbStavK ,兩者的格式均設置為“短日期”。 我有一個名為frm_qryNaklady_subform的子窗體,該子窗體基於一個查詢,該查詢的字段名為datNakladDatum (文本框名稱datNakladDatum ),格式為短日期。 我想允許用戶輸入日期范圍,並將子表單過濾為僅顯示在主表單框中輸入的日期范圍的記錄。 我在AfterUpdate事件中使用VBA代碼,例如:

Dim datRokMesiacOd As Date
Dim datRokMesiacDo As Date
Dim strFilterNaklady As String

datRokMesiacOd = DateSerial(Year(cmbStavOd), Month(cmbStavOd), 1)   'begin Date
datRokMesiacDo = DateSerial(Year(cmbStavK), Month(cmbStavK) + 1, 1) - 1 'end Date
strFilterNaklady = "[datNakladDatum] Between #" & datRokMesiacOd & "# And #" & datRokMesiacDo & "#"
With Me.frm_qryNaklady_subform.Form
    .Filter = strFilterNaklady
    .FilterOn = True
End With

例如, strFilterNaklady結果看起來像這樣: "[datNakladDatum] Between #1. 1. 2015# And #31. 12. 2015#" 通過調試代碼,我在語句中收到一條錯誤消息:

With Me.frm_qryNaklady_subform.Form
.Filter = strFilterNaklady
.FilterOn = True
End With

錯誤3709-在任何記錄中均未找到搜索關鍵字。

但是基礎查詢包含適合輸入日期范圍的大量記錄。

我整天都在使用日期過濾語法,但沒有成功。

你看到我要去哪里了嗎?

您需要正確的日期格式:

strFilterNaklady = "[datNakladDatum] Between #" & Format(datRokMesiacOd, "yyyy\/mm\/dd") & "# And #" & Format(datRokMesiacDo, "yyyy\/mm\/dd") & "#"

同樣,可以將其簡化為:

datRokMesiacDo = DateSerial(Year(cmbStavK), Month(cmbStavK) + 1, 0) 'end Date

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM