2014-10-10 56 views
0

我一直在试图创建一个搜索,用户指定的日期位于该记录的开始和结束日期之间的所有记录。我还希望用户能够通过“属性”将其拉起,除非它们保留空白。执行搜索用户输入日期落在两个日期之间

我是很新的VBA在昨天开始,这是我能想出的最新版本:

Private Sub Command4_Click() 
    Dim strFilter As String 

    strFilter = [Start_Date] <= Format(Me.RateDate, "Short Date") _ 
    And [End_Date] >= Format(Me.RateDate, "Short Date") 

    If Not IsNull(Me.Property) Then 
     strFilter = strFilter & " AND [Num_Code] = '" & Me.Property & "'" 
    End If 
    DoCmd.OpenReport "rpt_RatesAll", acViewPreview, , strFilter 
End Sub 

最近发生的错误消息返回:运行时错误“2465”:微软访问无法找到您的表达式中引用的“| 1”。

任何帮助将不胜感激!

+0

看看[this](http://www.access-programmers.co.uk/forums/showthread.php?t=184554)线程可以帮助你。提示:你有'strFilter'作为'String',但没有格式化你的输入。 – 2014-10-10 20:30:47

回答

0
strFilter = "[Start_Date] <= #" Me.RateDate & "# And [End_Date] >= #" & Me.RateDate & "#" 

应该这样做。
你有什么被视为一个文字字符串,并没有使用你想要的值。

+0

我把你的线,它给了我错误“编译错误:预期:表达”,并突出显示第一个#。 – user3105414 2014-10-10 18:53:50

+0

我刚刚编辑它。错过了一个报价。 – AVG 2014-10-10 22:22:39

+0

它在第一个Me.RateDate之前丢失了一个&,但它的工作。谢谢! – user3105414 2014-10-13 14:17:17