使用 DoCmd.SetParameter 的问题

Issue using DoCmd.SetParameter

我有一个关于链接 table 的查询,我正在尝试打开其结果。我正在使用 DoCmd.SetParameter 来设置过滤 OpenQuery 的结果。我以前在另一个 table 上使用过它,而且效果很好。但出于某种原因,我无法得到 return 任何结果。

我的代码如下:

Dim ReportDate As Date
Dim strReportDate As String

ReportDate = DateValue(Me.FromDate.Value)

strReportDate = Format(ReportDate, "mm-dd-yyyy")

DoCmd.SetParameter "Enter ShipDate", strReportDate
DoCmd.OpenQuery "TrackingDataQuery", acViewNormal, acReadOnly

(格式在那里是因为最初,我正在检查查询中的日期字段,并认为那里可能存在问题,所以我在查询中创建了一个计算字段,该字段采用该字段并执行相同的操作格式。)

真正让我困惑的是,如果我只是 运行 查询,它会询问我应有的标准,如果我输入日期(在 "mm-dd-yyyy"格式如上),它给了我正确的结果集。

sql 查询(现在)是(我也试过只用实际的 ShipDate 字段,只是使用 DateValue 转换(并调整上面的内容)。在链接 SQL table, ShipDate 是日期时间类型:

SELECT dbo_TrackingData.PackageID, dbo_TrackingData.TrackingNo,
dbo_TrackingData.ShipDate, dbo_TrackingData.weight, dbo_TrackingData.Ref1,
dbo_TrackingData.Ref2, dbo_TrackingData.Ref5,
Format(DateValue([ShipDate]),"mm-dd-yyyy") AS strShipDate
FROM dbo_TrackingData
WHERE (((Format(DateValue([ShipDate]),"mm-dd-yyyy"))=[Enter ShipDate]));

这应该有效:

Dim strReportDate As String

strReportDate = "#" & Format(Me!FromDate.Value, "yyyy\/mm\/dd") & "#"

DoCmd.SetParameter "Enter ShipDate", strReportDate
DoCmd.OpenQuery "TrackingDataQuery", acViewNormal, acReadOnly

用这个 SQL:

SELECT 
    dbo_TrackingData.PackageID, dbo_TrackingData.TrackingNo,
    dbo_TrackingData.ShipDate, dbo_TrackingData.weight, dbo_TrackingData.Ref1,
    dbo_TrackingData.Ref2, dbo_TrackingData.Ref5
FROM 
    dbo_TrackingData
WHERE
    [ShipDate] = [Enter ShipDate];