2016-11-21 95 views
0

我自學VBA代碼,我有一個問題。 希望能得到你的幫助。女士Access VBA日期過濾器

這裏是我的情況:

我已經15個表中的記錄,他們的日期值,如:
2016年1月31日,2016年2月29日11月30日2016年,2016年12月31日
領域名稱是[dayTo]

而且我有兩個表單,
1st Form =「F_temp」,這個表單中的文本框「date0」。
第二個表=「F_visitorRec」,此表將顯示從[dayTo]記錄

我想了一個用的OpenForm像條件:

DoCmd.OpenForm "F_visitorRec", acNormal, , "[dayTo] >= #" & Me![date0] & "#" 

但沒成功,如果我輸入2016年11月01日,它會顯示全部15條記錄。
如果我輸入2016年11月9日,它會顯示大於9月份的日期。
如果我輸入2016年11月13日的結果是正確的,那麼它可以顯示大於2016年11月13日的記錄。
我知道這個問題應該與日期格式有關,但我嘗試了很多方法但仍無法修復。

希望能得到你的幫助。

+0

什麼是你的表日期的數據類型?總是最好把日期稱爲年 - 月 - 日。 – Fionnuala

+0

謝謝!我已將字段,txt框,查詢格式設置爲yyyy/mmm/dd。但仍然無法工作。古斯塔夫的答案是工作。非常感謝 ! – Dan

回答

1

應用正確格式的字符串表達式的日期值:

DoCmd.OpenForm "F_visitorRec", acNormal, , "[dayTo] >= #" & Format(Me![date0].Value, "yyyy\/mm\/dd") & "#" 
+0

非常感謝!古斯塔夫!
但是我應該在字段中選擇哪種格式,txt框,查詢?或者讓它保持空白? – Dan

+0

我試過下面的,但爲什麼沒有工作。
Dim date0 As String date0 =格式(日期,「dd \ mmmm \ yyyy」) – Dan

+0

通常,您將_Format_屬性設置爲_Short Date_或_Long Date_。 – Gustav