使用日期中的表单检索数据

时间:2016-10-12 12:49:42

标签: sql ms-access access-vba

我在Access中有一个名为' Laufzettel '它以这种方式看起来。日期是dd.mm.yyyy格式

Antragsnummer   Eingang    esigniert    Ausgang     Anlage    Policierung

   111         2.10.2016   2.10.2016   3.10.2016                3.10.2016

   222         3.10.2016   3.10.2016   3.10.2016    4.10.2016

   333         5.10.2016   6.10.2016   7.10.2016                 7.10.2016

我正在创建一个名为' 概述的表单'有两个名为 StartDate EndDate 的文本框和搜索按钮。我需要的是当我通过给出两个日期点击搜索按钮时,它应该从上面的查询中检索我的相关记录以及报告形式的所有字段。

StartDate EndDate 与查询的Eingang字段相关。因此,当我输入2.10.2016作为StartDate和5.10.2016作为EndDate时,它必须产生上述查询。为了实现这一点,我已经开始使用表单字段创建查询,当我单击搜索按钮时,表单字段又可以生成所需的报告。所以我正在尝试使用代码

SELECT Laufzettel.ANTRAGSNUMMER,       Laufzettel.Eingang, Laufzettel.esigniert, Laufzettel.Ausgang, Laufzettel.Anlage, Laufzettel.Policierung
FROM Laufzettel
 WHERE Lauzettel.Eingang BETWEEN [Forms]![overview]![StartDate] and  [Forms]![overview]![EndDate];

我收到错误 Access无法识别[Forms]![overview]![StartDate]和[Forms]![overview]![EndDate]作为有效的字段名称或表达式 < / p>

我如何实现上述目标?有人能帮助我吗?

编辑:这是我现在的工作查询。虽然它没有从EndDate值给我记录。

PARAMETERS [Forms]![overview]![start] DateTime, [Forms]![overview]![end]  DateTime;
 SELECT Laufzettel.ANTRAGSNUMMER,     Laufzettel.AEingangDatenstromZWorkflow, Laufzettel.BEingangesigniertDokumentZWorkflow, Laufzettel.CAusgangDatenstromZWorkflow, Laufzettel.DAnlageSchwebeVSL,  Laufzettel.EPolicierungVSL
   FROM Laufzettel
   WHERE (((Laufzettel.AEingangDatenstromZWorkflow) Between [Forms]! [overview]![start] And [Forms]![overview]![end]));

有人能告诉我我哪儿错了吗?

1 个答案:

答案 0 :(得分:0)

如果使用代码(VBA)构建,请尝试使用:

SQL = "SELECT Laufzettel.ANTRAGSNUMMER, Laufzettel.Eingang, Laufzettel.esigniert, Laufzettel.Ausgang, Laufzettel.Anlage, Laufzettel.Policierung " & _
"FROM Laufzettel " & _
"WHERE Lauzettel.Eingang BETWEEN #" & Format([Forms]![overview]![StartDate], "yyyy\/mm\/dd") & "# AND #" & Format([Forms]![overview]![EndDate], "yyyy\/mm\/dd") & "#"

如果&#34;日期&#34;字段确实是文本,应用 DateValue

SQL = "SELECT Laufzettel.ANTRAGSNUMMER, Laufzettel.Eingang, Laufzettel.esigniert, Laufzettel.Ausgang, Laufzettel.Anlage, Laufzettel.Policierung " & _
"FROM Laufzettel " & _
"WHERE DateValue(Lauzettel.Eingang) BETWEEN #" & Format([Forms]![overview]![StartDate], "yyyy\/mm\/dd") & "# AND #" & Format([Forms]![overview]![EndDate], "yyyy\/mm\/dd") & "#"