2017-06-22 104 views
0

我在用戶填寫文本框時通過VBA具有子表單過濾器,它通過構建recordource where語句來工作。按日期過濾子表單不能接受日期格式

它循環遍歷控件,但是當涉及到日期控件時,我特意將控件識別爲子窗體中單個日期字段的2個文本框(從,到)。

我遇到的問題是它在MM/DD/YY上的過濾不是DD/MM/YY,我正在嘗試的東西似乎解決了這個問題。我已經嘗試在代碼中添加格式並添加到文本框的值。也嘗試玩實際的文本框格式,但沒有任何東西似乎有所作爲,並把我的頭髮拉出來。

的代碼中的相關部分是

Dim strFilter As String 
Dim ctL As Access.Control 
For Each ctL In Me.Controls 
If ctL.Name = "Raised_For_From" Then 
If Not IsNull(Raised_For_From) Then 
strFilter = strFilter & " AND " & "Raised_For" & " > " & "#" & Me.Raised_For_From & "#" 
End If 

Else 

If ctL.Name = "Raised_For_To" Then 
If Not IsNull(Raised_For_to) Then 
strFilter = strFilter & " AND " & "Raised_For" & " < " & "#" & Me.Raised_For_to & "#" 
End If 

Else 
+1

你可以使用Gustav的['CSql()'函數]( https://開頭計算器.com/a/36494189/3820271)將變量與SQL連接起來。它返回正確的日期格式。 – Andre

回答

0

你應該總是在SQL MM/DD/YY格式的工作,從而迫使相應日期的格式:

strFilter = strFilter & " AND " & "Raised_For" & " > " & "#" & Format(Me.Raised_For_From,"MM/DD/YYYY") & "#" 

如果你沒有得到正確的結果,因爲當你插入它們時你沒有應用格式MM/DD

+0

這是我的問題,輸入醬錯了,我回去調整最初的記錄輸入強制MM/DD格式,現在它的工作正常,謝謝 – user681413