使用表单控件作为条件时数据类型不匹配

时间:2017-11-07 12:04:26

标签: ms-access

我在MS Access中有一个表单,其中有一个名为boxReferenceMonthGtis的未绑定控件,正确显示日期。

此控件控件来源属性为=[GTIS_subform].[Form]![ReferenceMonth],这是子表单中Date/Time类型的字段。

当我尝试在 SELECT 子句中的查询中使用此控件时,它显示了这个乱码 䃤。

阅读this后,我在我的SQL中添加了PARAMETERS [Forms]![Conciliacao]![boxReferenceMonthGtis] DateTime,并且 SELECT 语句开始显示正确的值。

然而,如果我尝试使用我的控件作为标准来过滤其他字段,例如:

WHERE DateSerial(Year([Departure]),Month([Departure]),1)=[Forms]![Conciliacao]![boxReferenceMonthGtis]

我被提示

  

标准表达式中的数据类型不匹配。

奇怪的是,如果我过滤字段[Departure],如:

WHERE ShippingTrack.Departure=[Forms]![Conciliacao]![boxReferenceMonthGtis]

没有错误!

我还没试过什么

相同错误(数据类型不匹配)

WHERE CDate(DateSerial(Year([Departure]),Month([Departure]),1)=[Forms]![Conciliacao]![boxReferenceMonthGtis]

WHERE CDate(DateSerial(Year([Departure]),Month([Departure]),1)=CDate([Forms]![Conciliacao]![boxReferenceMonthGtis]

WHERE CVDate(DateSerial(Year([Departure]),Month([Departure]),1)=CVDate([Forms]![Conciliacao]![boxReferenceMonthGtis]

有人知道如何使这项工作吗?

甚至更奇怪的是我在同一个数据库中有另一个查询,我可以使用WHERE DateSerial(Year([Departure]),Month([Departure]),1)=[Forms]![Conciliacao]![boxReferenceMonthGtis]而没有任何问题!

1 个答案:

答案 0 :(得分:0)

好的:

可能有些记录的离境 Null