访问运行时链接表查询日期格式

时间:2016-12-15 00:39:28

标签: sql date runtime access

我在Access中的链接表上执行了以下查询:

选择*来自表格WHERE DateField =#18-Dec-2016#

使用以下VBA代码创建此日期where子句:

strWHERE = strWHERE& “DateField =#”& VBA.Format(txtDate,“dd-mmm-yyyy”)& “#”

使用完整版Access 2016时,它将发送到SQL:

选择*来自表格WHERE DateField = {d 18-Dec-2016}

这个有效!但是,使用Access 2016运行时时,它将作为以下内容发送到SQL:

选择*来自表格WHERE DateField = {ts 18-Dec-2016}

它失败了。

我正在使用SQL Server Profiler来查找正在发送的确切SQL。

有什么想法吗?

编辑:

尝试将格式更改为yyyy-mm-dd

尝试将“00:00:00”添加到构建where子句的VBA代码中,这不会改变我通过探查器发送给SQL的内容。

解决:

出于某种原因,链接表查询的行为在完整版本的Access和2016 Runtime之间是不同的。

在运行时版本中,链接表中字段的数据类型用于格式化查询。因为DateField是DateTime,它将where子句作为ts传递。通过创建视图并将日期格式化为日期,这已经解决了。

0 个答案:

没有答案