2017-06-22 84 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