MS Access:使用tempvars自定义报告参数化

时间:2015-08-20 22:37:27

标签: vba ms-access access-vba report

此报告图像显示了一个报告,该报告应该打开tempVars,从表单上的几个控件设置到这些控件,这些控件会获取这些值,因此会将这些控件分配给图像中的命名变量。目前,def get_age dob = children.child_birthday now = Time.now.utc.to_date now.year - dob.year - ((now.month > dob.month || (now.month == dob.month && now.day >= dob.day)) ? 0 : 1) end helper_method :get_age 子句不起作用,某些参数不匹配或未获取应读取的变量,因此,在<%= get_age %> 条件子句中打开包含指定信息的报告。如何修改where条件以使参数起作用? (正如你所看到的,我删除了一些更简单的信息。) enter image description here

WHERE

1 个答案:

答案 0 :(得分:0)

使用VBA变量而不是TempVars,并将它们从常量WHERE字符串中取出。像这样:

Dim myDate As Date
Dim myType As String

myDate = CutoffDate
myType = Combo164

DoCmd.OpenReport "Expiring", acViewPreview, , _
  "[DuesExpire] = #" & Format(myDate, "mm\/dd\/yyyy") & "# AND [Type] = '" & myType & "'"

如果Type不是字符串而是数字,那么它只是[Type] = " & myType而没有'

在Access SQL中过滤日期需要一种特殊格式:= #mm/dd/yyyy#

如果您的区域设置的日期格式不同于mm / dd / yyyy(例如,如果您不在美国),则只需要{p> Format(myDate, "mm\/dd\/yyyy")