我是否真的必须使用DateSerial在VBA中的QueryDef中设置日期参数?

时间:2016-03-01 15:56:19

标签: vba ms-access

有没有更好的方法在MS Access中的VIEW内设置日期参数?我发现自己使用DateSerial并在其中设置整数。必须有更好的方法,使用cDate或其他东西来做到这一点。

SELECT *
FROM pay_schedule_with_run_date
WHERE payroll_number IN (SELECT max(payroll_number) FROM pay_schedule_with_run_date x WHERE x.ssTravelGenUpdateRunDate <= DateSerial(yr, mth, dy) AND x.pay_date >= DateSerial(yr, mth, dy));

MS-Access VIEW名为getSSTravelGenUpdate_payperiod_by_runDate

Set getSSTravelGenUpdate_payperiod_by_runDate = CurrentDb.QueryDefs("getSSTravelGenUpdate_payperiod_by_runDate")

todaysDate = Now()

With getSSTravelGenUpdate_payperiod_by_runDate
        .Parameters("yr").Value = 2016 ' Year(todaysDate)
        .Parameters("mth").Value = 2   ' Month(todaysDate)
        .Parameters("dy").Value = 29   ' Day(todaysDate)
End With

Set rsWhichPayPeriod = getSSTravelGenUpdate_payperiod_by_runDate.OpenRecordset

getSSTravelGenUpdate_payperiod_by_runDate VIEW内设置日期参数的代码。

1 个答案:

答案 0 :(得分:0)

您可以在查询中设置一个参数:

Parameters RunDate DateTime;
SELECT *
FROM pay_schedule_with_run_date
WHERE payroll_number IN (SELECT max(payroll_number) FROM pay_schedule_with_run_date x WHERE x.ssTravelGenUpdateRunDate <= RunDate AND x.pay_date >= RunDate);