ms-access - 使用 DoCmd.SetParameter 的问题

标签 ms-access vba ms-access-2010

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

我的代码如下:

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 表中,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];

关于ms-access - 使用 DoCmd.SetParameter 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47932351/

相关文章:

sql - 获取每个项目的最新价格

vba - 创建压缩(或压缩)文件夹

database - 在 Microsoft Access 2010 中连接表

excel - VBA Excel WebBrowser如何在.Click之前从代码中重置ReadyState?

vba - Excel VBA 中的加速匹配程序

mysql - Access VBA,根据查询将数据导出到预先设计为接受导出数据的 xlsx 模板中

vba - 检查 Access 2010 导航子窗体是否打开

sql - SQL中如何对varchar进行排序?

sql - 使用 Union 函数创建更新查询?

java - 如何使用 Java 将 MS Access 中的数据导出为 PDF?